zenstack 1.2.2 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const ast_1 = require("@zenstackhq/language/ast");
4
- const sdk_1 = require("@zenstackhq/sdk");
5
- class ZModelCodeGenerator {
6
- constructor(options) {
7
- var _a, _b;
8
- this.options = {
9
- binaryExprNumberOfSpaces: (_a = options === null || options === void 0 ? void 0 : options.binaryExprNumberOfSpaces) !== null && _a !== void 0 ? _a : 1,
10
- unaryExprNumberOfSpaces: (_b = options === null || options === void 0 ? void 0 : options.unaryExprNumberOfSpaces) !== null && _b !== void 0 ? _b : 0,
11
- };
12
- }
13
- generateAttribute(ast) {
14
- const args = ast.args.length ? `(${ast.args.map((x) => this.generateAttributeArg(x)).join(', ')})` : '';
15
- return `${(0, sdk_1.resolved)(ast.decl).name}${args}`;
16
- }
17
- generateAttributeArg(ast) {
18
- if (ast.name) {
19
- return `${ast.name}: ${this.generateExpression(ast.value)}`;
20
- }
21
- else {
22
- return this.generateExpression(ast.value);
23
- }
24
- }
25
- generateExpression(ast) {
26
- switch (ast.$type) {
27
- case ast_1.StringLiteral:
28
- case ast_1.NumberLiteral:
29
- case ast_1.BooleanLiteral:
30
- return this.generateLiteralExpr(ast);
31
- case ast_1.UnaryExpr:
32
- return this.generateUnaryExpr(ast);
33
- case ast_1.ArrayExpr:
34
- return this.generateArrayExpr(ast);
35
- case ast_1.BinaryExpr:
36
- return this.generateBinaryExpr(ast);
37
- case ast_1.ReferenceExpr:
38
- return this.generateReferenceExpr(ast);
39
- case ast_1.MemberAccessExpr:
40
- return this.generateMemberExpr(ast);
41
- case ast_1.InvocationExpr:
42
- return this.generateInvocationExpr(ast);
43
- case ast_1.ObjectExpr:
44
- return this.generateObjectExpr(ast);
45
- case ast_1.NullExpr:
46
- case ast_1.ThisExpr:
47
- return ast.value;
48
- default:
49
- throw new Error(`Not implemented: ${ast}`);
50
- }
51
- }
52
- generateObjectExpr(ast) {
53
- return `{ ${ast.fields.map((field) => this.generateObjectField(field)).join(', ')} }`;
54
- }
55
- generateObjectField(field) {
56
- return `${field.name}: ${this.generateExpression(field.value)}`;
57
- }
58
- generateArrayExpr(ast) {
59
- return `[${ast.items.map((item) => this.generateExpression(item)).join(', ')}]`;
60
- }
61
- generateLiteralExpr(ast) {
62
- return ast.$type === ast_1.StringLiteral ? `'${ast.value}'` : ast.value.toString();
63
- }
64
- generateUnaryExpr(ast) {
65
- return `${ast.operator}${this.unaryExprSpace}${this.generateExpression(ast.operand)}`;
66
- }
67
- generateBinaryExpr(ast) {
68
- const operator = ast.operator;
69
- const isCollectionPredicate = this.isCollectionPredicateOperator(operator);
70
- const rightExpr = this.generateExpression(ast.right);
71
- const { left: isLeftParenthesis, right: isRightParenthesis } = this.isParenthesesNeededForBinaryExpr(ast);
72
- return `${isLeftParenthesis ? '(' : ''}${this.generateExpression(ast.left)}${isLeftParenthesis ? ')' : ''}${this.binaryExprSpace}${operator}${this.binaryExprSpace}${isRightParenthesis ? '(' : ''}${isCollectionPredicate ? `[${rightExpr}]` : rightExpr}${isRightParenthesis ? ')' : ''}`;
73
- }
74
- generateReferenceExpr(ast) {
75
- var _a;
76
- const args = ast.args.length ? `(${ast.args.map((x) => this.generateReferenceArg(x)).join(', ')})` : '';
77
- return `${(_a = ast.target.ref) === null || _a === void 0 ? void 0 : _a.name}${args}`;
78
- }
79
- generateReferenceArg(ast) {
80
- return `${ast.name}:${ast.value}`;
81
- }
82
- generateMemberExpr(ast) {
83
- var _a;
84
- return `${this.generateExpression(ast.operand)}.${(_a = ast.member.ref) === null || _a === void 0 ? void 0 : _a.name}`;
85
- }
86
- generateInvocationExpr(ast) {
87
- var _a;
88
- return `${(_a = ast.function.ref) === null || _a === void 0 ? void 0 : _a.name}(${ast.args.map((x) => this.generateArgument(x)).join(', ')})`;
89
- }
90
- generateArgument(ast) {
91
- return `${ast.name && ':'} ${this.generateExpression(ast.value)}`;
92
- }
93
- get binaryExprSpace() {
94
- return ' '.repeat(this.options.binaryExprNumberOfSpaces);
95
- }
96
- get unaryExprSpace() {
97
- return ' '.repeat(this.options.unaryExprNumberOfSpaces);
98
- }
99
- isParenthesesNeededForBinaryExpr(ast) {
100
- const result = { left: false, right: false };
101
- const operator = ast.operator;
102
- const isCollectionPredicate = this.isCollectionPredicateOperator(operator);
103
- const currentPriority = ast_1.BinaryExprOperatorPriority[operator];
104
- if (ast.left.$type === ast_1.BinaryExpr &&
105
- ast_1.BinaryExprOperatorPriority[ast.left['operator']] < currentPriority) {
106
- result.left = true;
107
- }
108
- /**
109
- * 1 collection predicate operator has [] around the right operand, no need to add parenthesis.
110
- * 2 grammar is left associative, so if the right operand has the same priority still need to add parenthesis.
111
- **/
112
- if (!isCollectionPredicate &&
113
- ast.right.$type === ast_1.BinaryExpr &&
114
- ast_1.BinaryExprOperatorPriority[ast.right['operator']] <= currentPriority) {
115
- result.right = true;
116
- }
117
- return result;
118
- }
119
- isCollectionPredicateOperator(op) {
120
- return ['?', '!', '^'].includes(op);
121
- }
122
- }
123
- exports.default = ZModelCodeGenerator;
124
- //# sourceMappingURL=zmodel-code-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"zmodel-code-generator.js","sourceRoot":"","sources":["../../../src/plugins/prisma/zmodel-code-generator.ts"],"names":[],"mappings":"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"}