zenstack 0.1.0 → 0.1.2

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.
Files changed (55) hide show
  1. package/out/cli/index.js +4 -51
  2. package/out/cli/index.js.map +1 -1
  3. package/out/cli/package.template.json +10 -0
  4. package/out/cli/tsconfig.template.json +17 -0
  5. package/out/generator/constants.js +6 -0
  6. package/out/generator/constants.js.map +1 -0
  7. package/out/generator/index.js +76 -0
  8. package/out/generator/index.js.map +1 -0
  9. package/out/generator/next-auth/index.js +3 -3
  10. package/out/generator/package.template.json +9 -0
  11. package/out/generator/prisma/expression-writer.js +287 -0
  12. package/out/generator/prisma/expression-writer.js.map +1 -0
  13. package/out/generator/prisma/index.js +8 -182
  14. package/out/generator/prisma/index.js.map +1 -1
  15. package/out/generator/prisma/plain-expression-builder.js +69 -0
  16. package/out/generator/prisma/plain-expression-builder.js.map +1 -0
  17. package/out/generator/prisma/prisma-builder.js +1 -1
  18. package/out/generator/prisma/prisma-builder.js.map +1 -1
  19. package/out/generator/prisma/query-gard-generator.js +159 -0
  20. package/out/generator/prisma/query-gard-generator.js.map +1 -0
  21. package/out/generator/prisma/schema-generator.js +202 -0
  22. package/out/generator/prisma/schema-generator.js.map +1 -0
  23. package/out/generator/query-guard/index.js +2 -0
  24. package/out/generator/query-guard/index.js.map +1 -0
  25. package/out/generator/react-hooks/index.js +1 -1
  26. package/out/generator/react-hooks/index.js.map +1 -1
  27. package/out/generator/server/data/expression-writer.js +42 -36
  28. package/out/generator/server/data/expression-writer.js.map +1 -1
  29. package/out/generator/server/data/plain-expression-builder.js +18 -2
  30. package/out/generator/server/data/plain-expression-builder.js.map +1 -1
  31. package/out/generator/service/index.js +51 -1
  32. package/out/generator/service/index.js.map +1 -1
  33. package/out/generator/tsconfig.template.json +17 -0
  34. package/out/utils/indent-string.js +3 -19
  35. package/out/utils/indent-string.js.map +1 -1
  36. package/package.json +7 -4
  37. package/src/cli/index.ts +5 -33
  38. package/src/generator/constants.ts +2 -0
  39. package/src/generator/index.ts +59 -0
  40. package/src/generator/next-auth/index.ts +3 -3
  41. package/src/generator/package.template.json +9 -0
  42. package/src/generator/{server/data → prisma}/expression-writer.ts +65 -63
  43. package/src/generator/prisma/index.ts +10 -309
  44. package/src/generator/{server/data → prisma}/plain-expression-builder.ts +22 -3
  45. package/src/generator/prisma/prisma-builder.ts +1 -1
  46. package/src/generator/prisma/query-gard-generator.ts +208 -0
  47. package/src/generator/prisma/schema-generator.ts +295 -0
  48. package/src/generator/react-hooks/index.ts +2 -4
  49. package/src/generator/service/index.ts +54 -1
  50. package/src/generator/tsconfig.template.json +17 -0
  51. package/src/utils/indent-string.ts +3 -38
  52. package/src/generator/server/data/data-generator.ts +0 -483
  53. package/src/generator/server/function/function-generator.ts +0 -32
  54. package/src/generator/server/index.ts +0 -57
  55. package/src/generator/server/server-code-generator.ts +0 -6
@@ -0,0 +1,202 @@
1
+ "use strict";
2
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
+ return new (P || (P = Promise))(function (resolve, reject) {
5
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
9
+ });
10
+ };
11
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const ast_1 = require("../../language-server/generated/ast");
16
+ const promises_1 = require("fs/promises");
17
+ const path_1 = __importDefault(require("path"));
18
+ const constants_1 = require("../constants");
19
+ const types_1 = require("../types");
20
+ const prisma_builder_1 = require("./prisma-builder");
21
+ const supportedProviders = ['postgresql', 'mysql', 'sqlite', 'sqlserver'];
22
+ const supportedAttrbutes = [
23
+ 'id',
24
+ 'index',
25
+ 'relation',
26
+ 'default',
27
+ 'createdAt',
28
+ 'updatedAt',
29
+ 'unique',
30
+ ];
31
+ class PrismaSchemaGenerator {
32
+ constructor(context) {
33
+ this.context = context;
34
+ }
35
+ generate() {
36
+ return __awaiter(this, void 0, void 0, function* () {
37
+ const { schema } = this.context;
38
+ const prisma = new prisma_builder_1.PrismaModel();
39
+ for (const decl of schema.declarations) {
40
+ switch (decl.$type) {
41
+ case ast_1.DataSource:
42
+ this.generateDataSource(prisma, decl);
43
+ break;
44
+ case ast_1.Enum:
45
+ this.generateEnum(prisma, decl);
46
+ break;
47
+ case ast_1.DataModel:
48
+ this.generateModel(prisma, decl);
49
+ break;
50
+ }
51
+ }
52
+ this.generateGenerator(prisma);
53
+ const outFile = path_1.default.join(this.context.outDir, 'schema.prisma');
54
+ yield (0, promises_1.writeFile)(outFile, prisma.toString());
55
+ return outFile;
56
+ });
57
+ }
58
+ generateDataSource(prisma, dataSource) {
59
+ let provider = undefined;
60
+ let url = undefined;
61
+ let shadowDatabaseUrl = undefined;
62
+ for (const f of dataSource.fields) {
63
+ switch (f.name) {
64
+ case 'provider': {
65
+ if (this.isStringLiteral(f.value)) {
66
+ provider = f.value.value;
67
+ }
68
+ else {
69
+ throw new types_1.GeneratorError('Datasource provider must be set to a string');
70
+ }
71
+ if (!supportedProviders.includes(provider)) {
72
+ throw new types_1.GeneratorError(`Provider ${provider} is not supported. Supported providers: ${supportedProviders.join(', ')}`);
73
+ }
74
+ break;
75
+ }
76
+ case 'url': {
77
+ const r = this.extractDataSourceUrl(f.value);
78
+ if (!r) {
79
+ throw new types_1.GeneratorError('Invalid value for datasource url');
80
+ }
81
+ url = r;
82
+ break;
83
+ }
84
+ case 'shadowDatabaseUrl': {
85
+ const r = this.extractDataSourceUrl(f.value);
86
+ if (!r) {
87
+ throw new types_1.GeneratorError('Invalid value for datasource url');
88
+ }
89
+ shadowDatabaseUrl = r;
90
+ break;
91
+ }
92
+ }
93
+ }
94
+ if (!provider) {
95
+ throw new types_1.GeneratorError('Datasource is missing "provider" field');
96
+ }
97
+ if (!url) {
98
+ throw new types_1.GeneratorError('Datasource is missing "url" field');
99
+ }
100
+ prisma.addDataSource(dataSource.name, provider, url, shadowDatabaseUrl);
101
+ }
102
+ extractDataSourceUrl(fieldValue) {
103
+ var _a;
104
+ if (this.isStringLiteral(fieldValue)) {
105
+ return new prisma_builder_1.DataSourceUrl(fieldValue.value, false);
106
+ }
107
+ else if ((0, ast_1.isInvocationExpr)(fieldValue) &&
108
+ ((_a = fieldValue.function.ref) === null || _a === void 0 ? void 0 : _a.name) === 'env' &&
109
+ fieldValue.args.length === 1 &&
110
+ this.isStringLiteral(fieldValue.args[0].value)) {
111
+ return new prisma_builder_1.DataSourceUrl(fieldValue.args[0].value.value, true);
112
+ }
113
+ else {
114
+ return null;
115
+ }
116
+ }
117
+ generateGenerator(prisma) {
118
+ prisma.addGenerator('client', 'prisma-client-js', '.prisma', [
119
+ 'fieldReference',
120
+ 'interactiveTransactions',
121
+ ]);
122
+ }
123
+ generateModel(prisma, decl) {
124
+ const model = prisma.addModel(decl.name);
125
+ for (const field of decl.fields) {
126
+ this.generateModelField(model, field);
127
+ }
128
+ // add an "zenstack_guard" field for dealing with pure auth() related conditions
129
+ model.addField(constants_1.GUARD_FIELD_NAME, 'Boolean', [
130
+ new prisma_builder_1.FieldAttribute('default', [
131
+ new prisma_builder_1.AttributeArg(undefined, new prisma_builder_1.AttributeArgValue('Boolean', true)),
132
+ ]),
133
+ ]);
134
+ for (const attr of decl.attributes.filter((attr) => { var _a; return supportedAttrbutes.includes((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name); })) {
135
+ this.generateModelAttribute(model, attr);
136
+ }
137
+ }
138
+ generateModelField(model, field) {
139
+ var _a, _b;
140
+ const type = new prisma_builder_1.ModelFieldType((field.type.type || ((_b = (_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref) === null || _b === void 0 ? void 0 : _b.name)), field.type.array, field.type.optional);
141
+ const attributes = field.attributes
142
+ .filter((attr) => { var _a; return supportedAttrbutes.includes((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name); })
143
+ .map((attr) => this.makeFieldAttribute(attr));
144
+ model.addField(field.name, type, attributes);
145
+ }
146
+ makeFieldAttribute(attr) {
147
+ var _a;
148
+ return new prisma_builder_1.FieldAttribute((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name, attr.args.map((arg) => this.makeAttributeArg(arg)));
149
+ }
150
+ makeAttributeArg(arg) {
151
+ return new prisma_builder_1.AttributeArg(arg.name, this.makeAttributeArgValue(arg.value));
152
+ }
153
+ makeAttributeArgValue(node) {
154
+ var _a;
155
+ if ((0, ast_1.isLiteralExpr)(node)) {
156
+ switch (typeof node.value) {
157
+ case 'string':
158
+ return new prisma_builder_1.AttributeArgValue('String', node.value);
159
+ case 'number':
160
+ return new prisma_builder_1.AttributeArgValue('Number', node.value);
161
+ case 'boolean':
162
+ return new prisma_builder_1.AttributeArgValue('Boolean', node.value);
163
+ default:
164
+ throw new types_1.GeneratorError(`Unexpected literal type: ${typeof node.value}`);
165
+ }
166
+ }
167
+ else if ((0, ast_1.isArrayExpr)(node)) {
168
+ return new prisma_builder_1.AttributeArgValue('Array', new Array(...node.items.map((item) => this.makeAttributeArgValue(item))));
169
+ }
170
+ else if ((0, ast_1.isReferenceExpr)(node)) {
171
+ return new prisma_builder_1.AttributeArgValue('FieldReference', new prisma_builder_1.FieldReference((_a = node.target.ref) === null || _a === void 0 ? void 0 : _a.name, node.args.map((arg) => new prisma_builder_1.FieldReferenceArg(arg.name, arg.value))));
172
+ }
173
+ else if ((0, ast_1.isInvocationExpr)(node)) {
174
+ // invocation
175
+ return new prisma_builder_1.AttributeArgValue('FunctionCall', this.makeFunctionCall(node));
176
+ }
177
+ else {
178
+ throw new types_1.GeneratorError(`Unsupported attribute argument expression type: ${node.$type}`);
179
+ }
180
+ }
181
+ makeFunctionCall(node) {
182
+ var _a;
183
+ return new prisma_builder_1.FunctionCall((_a = node.function.ref) === null || _a === void 0 ? void 0 : _a.name, node.args.map((arg) => {
184
+ if (!(0, ast_1.isLiteralExpr)(arg.value)) {
185
+ throw new types_1.GeneratorError('Function call argument must be literal');
186
+ }
187
+ return new prisma_builder_1.FunctionCallArg(arg.name, arg.value.value);
188
+ }));
189
+ }
190
+ generateModelAttribute(model, attr) {
191
+ var _a;
192
+ model.attributes.push(new prisma_builder_1.ModelAttribute((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name, attr.args.map((arg) => this.makeAttributeArg(arg))));
193
+ }
194
+ generateEnum(prisma, decl) {
195
+ prisma.addEnum(decl.name, decl.fields.map((f) => f.name));
196
+ }
197
+ isStringLiteral(node) {
198
+ return (0, ast_1.isLiteralExpr)(node) && typeof node.value === 'string';
199
+ }
200
+ }
201
+ exports.default = PrismaSchemaGenerator;
202
+ //# sourceMappingURL=schema-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/generator/prisma/schema-generator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/query-guard/index.ts"],"names":[],"mappings":""}
@@ -142,7 +142,7 @@ class ReactHooksGenerator {
142
142
  moduleSpecifier: '../.prisma',
143
143
  });
144
144
  sf.addStatements([`import * as request from './request';`]);
145
- sf.addStatements(`const endpoint = '/api/zen/data/${(0, change_case_1.camelCase)(model.name)}';`);
145
+ sf.addStatements(`const endpoint = '/api/zen/data/${model.name}';`);
146
146
  const useFuncBody = sf
147
147
  .addFunction({
148
148
  name: `use${model.name}`,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/react-hooks/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/react-hooks/index.ts"],"names":[],"mappings":"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"}
@@ -30,17 +30,15 @@ class ExpressionWriter {
30
30
  case ast_1.MemberAccessExpr:
31
31
  this.writeMemberAccess(expr);
32
32
  break;
33
- case ast_1.ThisExpr:
34
- throw new Error('Not implemented');
35
33
  default:
36
34
  throw new Error(`Not implemented: ${expr.$type}`);
37
35
  }
38
36
  };
39
- this.writer.block(_write);
37
+ this.block(_write);
40
38
  }
41
39
  writeReference(expr) {
42
40
  if ((0, ast_1.isEnumField)(expr.target.ref)) {
43
- throw new Error('Not implemented');
41
+ throw new Error('We should never get here');
44
42
  }
45
43
  else {
46
44
  this.writer.write(`${expr.target.ref.name}: true`);
@@ -48,7 +46,7 @@ class ExpressionWriter {
48
46
  }
49
47
  writeMemberAccess(expr) {
50
48
  this.writeFieldCondition(expr.operand, () => {
51
- this.writer.block(() => {
49
+ this.block(() => {
52
50
  var _a;
53
51
  this.writer.write(`${(_a = expr.member.ref) === null || _a === void 0 ? void 0 : _a.name}: true`);
54
52
  });
@@ -90,13 +88,17 @@ class ExpressionWriter {
90
88
  this.write(expr.right);
91
89
  }, operator === '?' ? 'some' : operator === '!' ? 'every' : 'none');
92
90
  }
93
- isFieldRef(expr) {
94
- if ((0, ast_1.isReferenceExpr)(expr) && (0, ast_1.isDataModelField)(expr.target.ref)) {
91
+ isFieldAccess(expr) {
92
+ if ((0, ast_1.isThisExpr)(expr)) {
95
93
  return true;
96
94
  }
97
- else {
98
- return false;
95
+ if ((0, ast_1.isMemberAccessExpr)(expr)) {
96
+ return this.isFieldAccess(expr.operand);
97
+ }
98
+ if ((0, ast_1.isReferenceExpr)(expr) && (0, ast_1.isDataModelField)(expr.target.ref)) {
99
+ return true;
99
100
  }
101
+ return false;
100
102
  }
101
103
  guard(write) {
102
104
  this.writer.write(`${AUX_GUARD_FIELD}: `);
@@ -106,10 +108,8 @@ class ExpressionWriter {
106
108
  this.writer.write(this.plainExprBuilder.build(expr));
107
109
  }
108
110
  writeComparison(expr, operator) {
109
- var _a;
110
- const leftIsFieldAccess = this.isFieldRef(expr.left) || this.isRelationFieldAccess(expr.left);
111
- const rightIsFieldAccess = this.isFieldRef(expr.right) ||
112
- this.isRelationFieldAccess(expr.right);
111
+ const leftIsFieldAccess = this.isFieldAccess(expr.left);
112
+ const rightIsFieldAccess = this.isFieldAccess(expr.right);
113
113
  if (leftIsFieldAccess && rightIsFieldAccess) {
114
114
  throw new types_1.GeneratorError(`Comparison between fields are not supported yet`);
115
115
  }
@@ -133,13 +133,12 @@ class ExpressionWriter {
133
133
  operand = expr.left;
134
134
  operator = this.negateOperator(operator);
135
135
  }
136
- const type = (_a = fieldAccess.$resolvedType) === null || _a === void 0 ? void 0 : _a.decl;
137
136
  this.writeFieldCondition(fieldAccess, () => {
138
- this.writer.block(() => {
139
- if ((0, ast_1.isDataModel)(type)) {
137
+ this.block(() => {
138
+ if (this.isModelTyped(fieldAccess)) {
140
139
  // comparing with an object, conver to "id" comparison instead
141
140
  this.writer.write('id: ');
142
- this.writer.block(() => {
141
+ this.block(() => {
143
142
  this.writeOperator(operator, () => {
144
143
  this.plain(operand);
145
144
  this.writer.write('?.id');
@@ -151,14 +150,17 @@ class ExpressionWriter {
151
150
  this.plain(operand);
152
151
  });
153
152
  }
154
- });
153
+ },
154
+ // "this" expression is compiled away (to .id access), so we should
155
+ // avoid generating a new layer
156
+ !(0, ast_1.isThisExpr)(fieldAccess));
155
157
  }, 'is');
156
158
  }
157
159
  writeOperator(operator, writeOperand) {
158
160
  if (operator === '!=') {
159
161
  // wrap a 'not'
160
162
  this.writer.write('not: ');
161
- this.writer.block(() => {
163
+ this.block(() => {
162
164
  this.writeOperator('==', writeOperand);
163
165
  });
164
166
  }
@@ -171,7 +173,12 @@ class ExpressionWriter {
171
173
  var _a, _b;
172
174
  let selector;
173
175
  let operand;
174
- if ((0, ast_1.isReferenceExpr)(fieldAccess)) {
176
+ if ((0, ast_1.isThisExpr)(fieldAccess)) {
177
+ // pass on
178
+ writeCondition();
179
+ return;
180
+ }
181
+ else if ((0, ast_1.isReferenceExpr)(fieldAccess)) {
175
182
  selector = (_a = fieldAccess.target.ref) === null || _a === void 0 ? void 0 : _a.name;
176
183
  }
177
184
  else if ((0, ast_1.isMemberAccessExpr)(fieldAccess)) {
@@ -184,11 +191,11 @@ class ExpressionWriter {
184
191
  if (operand) {
185
192
  // member access expression
186
193
  this.writeFieldCondition(operand, () => {
187
- this.writer.block(() => {
194
+ this.block(() => {
188
195
  this.writer.write(selector + ': ');
189
196
  if (this.isModelTyped(fieldAccess)) {
190
197
  // expression is resolved to a model, generate relation query
191
- this.writer.block(() => {
198
+ this.block(() => {
192
199
  this.writer.write(`${relationOp}: `);
193
200
  writeCondition();
194
201
  });
@@ -197,13 +204,16 @@ class ExpressionWriter {
197
204
  // generate plain query
198
205
  writeCondition();
199
206
  }
200
- });
207
+ },
208
+ // if operand is "this", it doesn't really generate a new layer of query,
209
+ // so we should avoid generating a new block
210
+ !(0, ast_1.isThisExpr)(operand));
201
211
  }, 'is');
202
212
  }
203
213
  else if (this.isModelTyped(fieldAccess)) {
204
214
  // reference resolved to a model, generate relation query
205
215
  this.writer.write(selector + ': ');
206
- this.writer.block(() => {
216
+ this.block(() => {
207
217
  this.writer.write(`${relationOp}: `);
208
218
  writeCondition();
209
219
  });
@@ -214,22 +224,18 @@ class ExpressionWriter {
214
224
  writeCondition();
215
225
  }
216
226
  }
227
+ block(write, condition = true) {
228
+ if (condition) {
229
+ this.writer.block(write);
230
+ }
231
+ else {
232
+ write();
233
+ }
234
+ }
217
235
  isModelTyped(expr) {
218
236
  var _a;
219
237
  return (0, ast_1.isDataModel)((_a = expr.$resolvedType) === null || _a === void 0 ? void 0 : _a.decl);
220
238
  }
221
- isRelationFieldAccess(expr) {
222
- if ((0, ast_1.isMemberAccessExpr)(expr)) {
223
- return this.isRelationFieldAccess(expr.operand);
224
- }
225
- if ((0, ast_1.isReferenceExpr)(expr) &&
226
- (0, ast_1.isDataModelField)(expr.target.ref) &&
227
- expr.target.ref.type.reference &&
228
- (0, ast_1.isDataModel)(expr.target.ref.type.reference.ref)) {
229
- return true;
230
- }
231
- return false;
232
- }
233
239
  mapOperator(operator) {
234
240
  switch (operator) {
235
241
  case '==':
@@ -1 +1 @@
1
- {"version":3,"file":"expression-writer.js","sourceRoot":"","sources":["../../../../src/generator/server/data/expression-writer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"expression-writer.js","sourceRoot":"","sources":["../../../../src/generator/server/data/expression-writer.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ class PlainExpressionBuilder {
11
11
  return this.array(expr);
12
12
  case ast_1.NullExpr:
13
13
  return this.null();
14
+ case ast_1.ThisExpr:
15
+ return this.this(expr);
14
16
  case ast_1.ReferenceExpr:
15
17
  return this.reference(expr);
16
18
  case ast_1.InvocationExpr:
@@ -21,8 +23,17 @@ class PlainExpressionBuilder {
21
23
  throw new types_1.GeneratorError(`Unsupported expression type: ${expr.$type}`);
22
24
  }
23
25
  }
26
+ this(expr) {
27
+ // "this" is mapped to id comparison
28
+ return 'id';
29
+ }
24
30
  memberAccess(expr) {
25
- return `${this.build(expr.operand)}?.${expr.member.ref.name}`;
31
+ if ((0, ast_1.isThisExpr)(expr.operand)) {
32
+ return expr.member.ref.name;
33
+ }
34
+ else {
35
+ return `${this.build(expr.operand)}?.${expr.member.ref.name}`;
36
+ }
26
37
  }
27
38
  invocation(expr) {
28
39
  var _a, _b;
@@ -32,7 +43,12 @@ class PlainExpressionBuilder {
32
43
  return 'user';
33
44
  }
34
45
  reference(expr) {
35
- return expr.target.ref.name;
46
+ if ((0, ast_1.isEnumField)(expr.target.ref)) {
47
+ return `${expr.target.ref.$container.name}.${expr.target.ref.name}`;
48
+ }
49
+ else {
50
+ return expr.target.ref.name;
51
+ }
36
52
  }
37
53
  null() {
38
54
  return 'null';
@@ -1 +1 @@
1
- {"version":3,"file":"plain-expression-builder.js","sourceRoot":"","sources":["../../../../src/generator/server/data/plain-expression-builder.ts"],"names":[],"mappings":";;AAAA,uCAA6C;AAC7C,6CAQ6B;AAE7B,MAAqB,sBAAsB;IACvC,KAAK,CAAC,IAAgB;QAClB,QAAQ,IAAI,CAAC,KAAK,EAAE;YAChB,KAAK,iBAAW;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAmB,CAAC,CAAC;YAE7C,KAAK,eAAS;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAiB,CAAC,CAAC;YAEzC,KAAK,cAAQ;gBACT,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YAEvB,KAAK,mBAAa;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAqB,CAAC,CAAC;YAEjD,KAAK,oBAAc;gBACf,OAAO,IAAI,CAAC,UAAU,CAAC,IAAsB,CAAC,CAAC;YAEnD,KAAK,sBAAgB;gBACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAwB,CAAC,CAAC;YAEvD;gBACI,MAAM,IAAI,sBAAc,CACpB,gCAAgC,IAAI,CAAC,KAAK,EAAE,CAC/C,CAAC;SACT;IACL,CAAC;IAEO,YAAY,CAAC,IAAsB;QACvC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,IAAI,EAAE,CAAC;IACnE,CAAC;IAEO,UAAU,CAAC,IAAoB;;QACnC,IAAI,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,IAAI,MAAK,MAAM,EAAE;YACpC,MAAM,IAAI,sBAAc,CACpB,yCAAyC,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,IAAI,EAAE,CACrE,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,SAAS,CAAC,IAAmB;QACjC,OAAO,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,IAAI,CAAC;IACjC,CAAC;IAEO,IAAI;QACR,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,IAAe;QACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACxE,CAAC;IAEO,OAAO,CAAC,IAAiB;QAC7B,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChC,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;SAC5B;aAAM;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SAChC;IACL,CAAC;CACJ;AA5DD,yCA4DC"}
1
+ {"version":3,"file":"plain-expression-builder.js","sourceRoot":"","sources":["../../../../src/generator/server/data/plain-expression-builder.ts"],"names":[],"mappings":";;AAAA,uCAA6C;AAC7C,6CAW6B;AAE7B,MAAqB,sBAAsB;IACvC,KAAK,CAAC,IAAgB;QAClB,QAAQ,IAAI,CAAC,KAAK,EAAE;YAChB,KAAK,iBAAW;gBACZ,OAAO,IAAI,CAAC,OAAO,CAAC,IAAmB,CAAC,CAAC;YAE7C,KAAK,eAAS;gBACV,OAAO,IAAI,CAAC,KAAK,CAAC,IAAiB,CAAC,CAAC;YAEzC,KAAK,cAAQ;gBACT,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YAEvB,KAAK,cAAQ;gBACT,OAAO,IAAI,CAAC,IAAI,CAAC,IAAgB,CAAC,CAAC;YAEvC,KAAK,mBAAa;gBACd,OAAO,IAAI,CAAC,SAAS,CAAC,IAAqB,CAAC,CAAC;YAEjD,KAAK,oBAAc;gBACf,OAAO,IAAI,CAAC,UAAU,CAAC,IAAsB,CAAC,CAAC;YAEnD,KAAK,sBAAgB;gBACjB,OAAO,IAAI,CAAC,YAAY,CAAC,IAAwB,CAAC,CAAC;YAEvD;gBACI,MAAM,IAAI,sBAAc,CACpB,gCAAgC,IAAI,CAAC,KAAK,EAAE,CAC/C,CAAC;SACT;IACL,CAAC;IAEO,IAAI,CAAC,IAAc;QACvB,oCAAoC;QACpC,OAAO,IAAI,CAAC;IAChB,CAAC;IAEO,YAAY,CAAC,IAAsB;QACvC,IAAI,IAAA,gBAAU,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE;YAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,IAAI,CAAC;SAChC;aAAM;YACH,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,IAAI,EAAE,CAAC;SAClE;IACL,CAAC;IAEO,UAAU,CAAC,IAAoB;;QACnC,IAAI,CAAA,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,IAAI,MAAK,MAAM,EAAE;YACpC,MAAM,IAAI,sBAAc,CACpB,yCAAyC,MAAA,IAAI,CAAC,QAAQ,CAAC,GAAG,0CAAE,IAAI,EAAE,CACrE,CAAC;SACL;QACD,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,SAAS,CAAC,IAAmB;QACjC,IAAI,IAAA,iBAAW,EAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YAC9B,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;SACvE;aAAM;YACH,OAAO,IAAI,CAAC,MAAM,CAAC,GAAI,CAAC,IAAI,CAAC;SAChC;IACL,CAAC;IAEO,IAAI;QACR,OAAO,MAAM,CAAC;IAClB,CAAC;IAEO,KAAK,CAAC,IAAe;QACzB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACxE,CAAC;IAEO,OAAO,CAAC,IAAiB;QAC7B,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ,EAAE;YAChC,OAAO,IAAI,IAAI,CAAC,KAAK,GAAG,CAAC;SAC5B;aAAM;YACH,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;SAChC;IACL,CAAC;CACJ;AA5ED,yCA4EC"}
@@ -38,18 +38,25 @@ Object.defineProperty(exports, "__esModule", { value: true });
38
38
  const ts_morph_1 = require("ts-morph");
39
39
  const path = __importStar(require("path"));
40
40
  const colors_1 = __importDefault(require("colors"));
41
+ const constants_1 = require("../constants");
41
42
  class ServiceGenerator {
42
43
  generate(context) {
43
44
  return __awaiter(this, void 0, void 0, function* () {
44
45
  const project = new ts_morph_1.Project();
45
- const sf = project.createSourceFile(path.join(context.outDir, 'service.ts'), undefined, { overwrite: true });
46
+ const sf = project.createSourceFile(path.join(context.outDir, 'index.ts'), undefined, { overwrite: true });
46
47
  sf.addImportDeclaration({
47
48
  namedImports: ['PrismaClient'],
48
49
  moduleSpecifier: './.prisma',
49
50
  });
51
+ sf.addImportDeclaration({
52
+ namedImports: ['Service', 'PolicyOperationKind', 'QueryContext'],
53
+ moduleSpecifier: constants_1.RUNTIME_PACKAGE,
54
+ isTypeOnly: true,
55
+ });
50
56
  const cls = sf.addClass({
51
57
  name: 'ZenStackService',
52
58
  isExported: true,
59
+ implements: ['Service<PrismaClient>'],
53
60
  });
54
61
  cls.addMember({
55
62
  kind: ts_morph_1.StructureKind.Property,
@@ -61,6 +68,49 @@ class ServiceGenerator {
61
68
  })
62
69
  .addBody()
63
70
  .setBodyText('return this._prisma;');
71
+ cls
72
+ .addMethod({
73
+ name: 'resolveField',
74
+ isAsync: true,
75
+ parameters: [
76
+ {
77
+ name: 'model',
78
+ type: 'string',
79
+ },
80
+ {
81
+ name: 'field',
82
+ type: 'string',
83
+ },
84
+ ],
85
+ })
86
+ .addBody().setBodyText(`
87
+ const module: any = await import('./query/guard');
88
+ return module._fieldMapping?.[model]?.[field];
89
+ `);
90
+ cls
91
+ .addMethod({
92
+ name: 'buildQueryGuard',
93
+ isAsync: true,
94
+ parameters: [
95
+ {
96
+ name: 'model',
97
+ type: 'string',
98
+ },
99
+ {
100
+ name: 'operation',
101
+ type: 'PolicyOperationKind',
102
+ },
103
+ {
104
+ name: 'context',
105
+ type: 'QueryContext',
106
+ },
107
+ ],
108
+ })
109
+ .addBody().setBodyText(`
110
+ const module: any = await import('./query/guard');
111
+ const provider: (context: QueryContext) => any = module[model+ '_' + operation];
112
+ return provider(context);
113
+ `);
64
114
  sf.addStatements(['export default new ZenStackService();']);
65
115
  sf.formatText();
66
116
  yield project.save();
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAkD;AAClD,2CAA6B;AAC7B,oDAA4B;AAE5B,MAAqB,gBAAgB;IAC3B,QAAQ,CAAC,OAAgB;;YAC3B,MAAM,OAAO,GAAG,IAAI,kBAAO,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,CAAC,EACvC,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACtB,CAAC;YAEF,EAAE,CAAC,oBAAoB,CAAC;gBACpB,YAAY,EAAE,CAAC,cAAc,CAAC;gBAC9B,eAAe,EAAE,WAAW;aAC/B,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;gBACpB,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YACH,GAAG,CAAC,SAAS,CAAC;gBACV,IAAI,EAAE,wBAAa,CAAC,QAAQ;gBAC5B,IAAI,EAAE,0BAA0B;gBAChC,WAAW,EAAE,oBAAoB;aACpC,CAAC,CAAC;YAEH,GAAG,CAAC,cAAc,CAAC;gBACf,IAAI,EAAE,IAAI;aACb,CAAC;iBACG,OAAO,EAAE;iBACT,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAEzC,EAAE,CAAC,aAAa,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAE5D,EAAE,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,gBAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAChE,CAAC;KAAA;CACJ;AArCD,mCAqCC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/service/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,uCAAkD;AAClD,2CAA6B;AAC7B,oDAA4B;AAC5B,4CAA+C;AAE/C,MAAqB,gBAAgB;IAC3B,QAAQ,CAAC,OAAgB;;YAC3B,MAAM,OAAO,GAAG,IAAI,kBAAO,EAAE,CAAC;YAC9B,MAAM,EAAE,GAAG,OAAO,CAAC,gBAAgB,CAC/B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,EACrC,SAAS,EACT,EAAE,SAAS,EAAE,IAAI,EAAE,CACtB,CAAC;YAEF,EAAE,CAAC,oBAAoB,CAAC;gBACpB,YAAY,EAAE,CAAC,cAAc,CAAC;gBAC9B,eAAe,EAAE,WAAW;aAC/B,CAAC,CAAC;YAEH,EAAE,CAAC,oBAAoB,CAAC;gBACpB,YAAY,EAAE,CAAC,SAAS,EAAE,qBAAqB,EAAE,cAAc,CAAC;gBAChE,eAAe,EAAE,2BAAe;gBAChC,UAAU,EAAE,IAAI;aACnB,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,CAAC;gBACpB,IAAI,EAAE,iBAAiB;gBACvB,UAAU,EAAE,IAAI;gBAChB,UAAU,EAAE,CAAC,uBAAuB,CAAC;aACxC,CAAC,CAAC;YACH,GAAG,CAAC,SAAS,CAAC;gBACV,IAAI,EAAE,wBAAa,CAAC,QAAQ;gBAC5B,IAAI,EAAE,0BAA0B;gBAChC,WAAW,EAAE,oBAAoB;aACpC,CAAC,CAAC;YAEH,GAAG,CAAC,cAAc,CAAC;gBACf,IAAI,EAAE,IAAI;aACb,CAAC;iBACG,OAAO,EAAE;iBACT,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAEzC,GAAG;iBACE,SAAS,CAAC;gBACP,IAAI,EAAE,cAAc;gBACpB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE;oBACR;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;qBACjB;oBACD;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;qBACjB;iBACJ;aACJ,CAAC;iBACD,OAAO,EAAE,CAAC,WAAW,CAAC;;;aAGtB,CAAC,CAAC;YAEP,GAAG;iBACE,SAAS,CAAC;gBACP,IAAI,EAAE,iBAAiB;gBACvB,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE;oBACR;wBACI,IAAI,EAAE,OAAO;wBACb,IAAI,EAAE,QAAQ;qBACjB;oBACD;wBACI,IAAI,EAAE,WAAW;wBACjB,IAAI,EAAE,qBAAqB;qBAC9B;oBACD;wBACI,IAAI,EAAE,SAAS;wBACf,IAAI,EAAE,cAAc;qBACvB;iBACJ;aACJ,CAAC;iBACD,OAAO,EAAE,CAAC,WAAW,CAAC;;;;aAItB,CAAC,CAAC;YAEP,EAAE,CAAC,aAAa,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAAC;YAE5D,EAAE,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YAErB,OAAO,CAAC,GAAG,CAAC,gBAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,CAAC,CAAC;QAChE,CAAC;KAAA;CACJ;AAzFD,mCAyFC"}
@@ -0,0 +1,17 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES6",
4
+ "module": "CommonJS",
5
+ "lib": ["ESNext", "DOM"],
6
+ "sourceMap": true,
7
+ "outDir": ".",
8
+ "strict": true,
9
+ "moduleResolution": "node",
10
+ "esModuleInterop": true,
11
+ "skipLibCheck": true,
12
+ "declaration": true,
13
+ "resolveJsonModule": true
14
+ },
15
+ "include": ["**/*.ts"],
16
+ "exclude": ["node_modules", ".prisma"]
17
+ }