Skip to content

Commit 2c7c82b

Browse files
authored
fix(zmodel): fix grammar ambiguity (#1433)
1 parent 296ca25 commit 2c7c82b

File tree

3 files changed

+89
-57
lines changed

3 files changed

+89
-57
lines changed

packages/language/src/generated/ast.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,16 @@ export function isReferenceTarget(item: unknown): item is ReferenceTarget {
7878
return reflection.isInstance(item, ReferenceTarget);
7979
}
8080

81-
export type RegularID = 'Any' | 'BigInt' | 'Boolean' | 'Bytes' | 'DateTime' | 'Decimal' | 'Float' | 'Int' | 'Json' | 'Null' | 'Object' | 'String' | 'Unsupported' | 'abstract' | 'attribute' | 'datasource' | 'enum' | 'import' | 'in' | 'model' | 'plugin' | 'view' | string;
81+
export type RegularID = 'abstract' | 'attribute' | 'datasource' | 'enum' | 'import' | 'in' | 'model' | 'plugin' | 'view' | string;
8282

8383
export function isRegularID(item: unknown): item is RegularID {
84-
return item === 'model' || item === 'enum' || item === 'attribute' || item === 'datasource' || item === 'plugin' || item === 'abstract' || item === 'in' || item === 'view' || item === 'import' || item === 'String' || item === 'Boolean' || item === 'Int' || item === 'BigInt' || item === 'Float' || item === 'Decimal' || item === 'DateTime' || item === 'Json' || item === 'Bytes' || item === 'Null' || item === 'Object' || item === 'Any' || item === 'Unsupported' || (typeof item === 'string' && (/[_a-zA-Z][\w_]*/.test(item)));
84+
return item === 'model' || item === 'enum' || item === 'attribute' || item === 'datasource' || item === 'plugin' || item === 'abstract' || item === 'in' || item === 'view' || item === 'import' || (typeof item === 'string' && (/[_a-zA-Z][\w_]*/.test(item)));
85+
}
86+
87+
export type RegularIDWithTypeNames = 'Any' | 'BigInt' | 'Boolean' | 'Bytes' | 'DateTime' | 'Decimal' | 'Float' | 'Int' | 'Json' | 'Null' | 'Object' | 'String' | 'Unsupported' | RegularID;
88+
89+
export function isRegularIDWithTypeNames(item: unknown): item is RegularIDWithTypeNames {
90+
return isRegularID(item) || item === 'String' || item === 'Boolean' || item === 'Int' || item === 'BigInt' || item === 'Float' || item === 'Decimal' || item === 'DateTime' || item === 'Json' || item === 'Bytes' || item === 'Null' || item === 'Object' || item === 'Any' || item === 'Unsupported';
8591
}
8692

8793
export type TypeDeclaration = DataModel | Enum;
@@ -288,7 +294,7 @@ export interface DataModelField extends AstNode {
288294
readonly $type: 'DataModelField';
289295
attributes: Array<DataModelFieldAttribute>
290296
comments: Array<string>
291-
name: RegularID
297+
name: RegularIDWithTypeNames
292298
type: DataModelFieldType
293299
}
294300

0 commit comments

Comments
 (0)