zenstack 0.1.47 → 0.1.50
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.
- package/LICENSE.md +9 -0
- package/bin/cli +1 -1
- package/bundle/asset/logo-dark-256.png +0 -0
- package/bundle/asset/logo-dark.png +0 -0
- package/bundle/asset/logo-light-256.png +0 -0
- package/bundle/asset/logo-light.png +0 -0
- package/bundle/cli/index.js +6849 -0
- package/bundle/cli/index.js.map +7 -0
- package/bundle/extension.js +39 -0
- package/bundle/extension.js.map +7 -0
- package/bundle/language-server/main.js +6105 -0
- package/bundle/language-server/main.js.map +7 -0
- package/{out/generator → bundle/res}/package.template.json +0 -0
- package/bundle/res/stdlib.zmodel +101 -0
- package/{out/generator → bundle/res}/tsconfig.template.json +0 -0
- package/package.json +38 -14
- package/src/cli/cli-util.ts +71 -0
- package/src/cli/index.ts +182 -0
- package/src/extension.ts +76 -0
- package/src/generator/constants.ts +5 -0
- package/src/generator/index.ts +102 -0
- package/{out/generator/next-auth/index.js → src/generator/next-auth/index.ts} +49 -58
- package/src/generator/prisma/expression-writer.ts +360 -0
- package/src/generator/prisma/index.ts +35 -0
- package/src/generator/prisma/prisma-builder.ts +370 -0
- package/src/generator/prisma/query-gard-generator.ts +213 -0
- package/src/generator/prisma/schema-generator.ts +305 -0
- package/src/generator/prisma/typescript-expression-transformer.ts +108 -0
- package/src/generator/react-hooks/index.ts +184 -0
- package/src/generator/service/index.ts +110 -0
- package/src/generator/types.ts +17 -0
- package/src/generator/utils.ts +18 -0
- package/src/language-server/constants.ts +28 -0
- package/src/language-server/generated/ast.ts +616 -0
- package/{out/language-server/generated/grammar.js → src/language-server/generated/grammar.ts} +5 -8
- package/src/language-server/generated/module.ts +24 -0
- package/src/language-server/langium-ext.d.ts +10 -0
- package/src/language-server/lsp/zmodel-definition-provider.ts +87 -0
- package/src/language-server/main.ts +13 -0
- package/src/language-server/types.ts +25 -0
- package/src/language-server/validator/attribute-validator.ts +11 -0
- package/src/language-server/validator/datamodel-validator.ts +311 -0
- package/src/language-server/validator/datasource-validator.ts +102 -0
- package/src/language-server/validator/enum-validator.ts +14 -0
- package/src/language-server/validator/schema-validator.ts +31 -0
- package/src/language-server/validator/utils.ts +158 -0
- package/src/language-server/validator/zmodel-validator.ts +84 -0
- package/src/language-server/zmodel-linker.ts +446 -0
- package/src/language-server/zmodel-module.ts +136 -0
- package/src/language-server/zmodel-scope.ts +45 -0
- package/src/language-server/zmodel-workspace-manager.ts +23 -0
- package/src/language-server/zmodel.langium +197 -0
- package/{out/cli → src/res}/package.template.json +2 -3
- package/src/res/stdlib.zmodel +101 -0
- package/{out/cli → src/res}/tsconfig.template.json +1 -1
- package/src/utils/exec-utils.ts +8 -0
- package/src/utils/indent-string.ts +9 -0
- package/LICENSE +0 -21
- package/out/cli/cli-util.js +0 -64
- package/out/cli/cli-util.js.map +0 -1
- package/out/cli/generator.js +0 -1
- package/out/cli/generator.js.map +0 -1
- package/out/cli/index.js +0 -124
- package/out/cli/index.js.map +0 -1
- package/out/extension.js +0 -81
- package/out/extension.js.map +0 -1
- package/out/generator/constants.js +0 -9
- package/out/generator/constants.js.map +0 -1
- package/out/generator/data-server/index.js +0 -1
- package/out/generator/data-server/index.js.map +0 -1
- package/out/generator/index.js +0 -98
- package/out/generator/index.js.map +0 -1
- package/out/generator/next-auth/index.js.map +0 -1
- package/out/generator/prisma/expression-writer.js +0 -287
- package/out/generator/prisma/expression-writer.js.map +0 -1
- package/out/generator/prisma/index.js +0 -44
- package/out/generator/prisma/index.js.map +0 -1
- package/out/generator/prisma/plain-expression-builder.js +0 -69
- package/out/generator/prisma/plain-expression-builder.js.map +0 -1
- package/out/generator/prisma/prisma-builder.js +0 -307
- package/out/generator/prisma/prisma-builder.js.map +0 -1
- package/out/generator/prisma/query-gard-generator.js +0 -159
- package/out/generator/prisma/query-gard-generator.js.map +0 -1
- package/out/generator/prisma/schema-generator.js +0 -193
- package/out/generator/prisma/schema-generator.js.map +0 -1
- package/out/generator/query-guard/index.js +0 -2
- package/out/generator/query-guard/index.js.map +0 -1
- package/out/generator/react-hooks/index.js +0 -179
- package/out/generator/react-hooks/index.js.map +0 -1
- package/out/generator/server/data/data-generator.js +0 -376
- package/out/generator/server/data/data-generator.js.map +0 -1
- package/out/generator/server/data/expression-writer.js +0 -287
- package/out/generator/server/data/expression-writer.js.map +0 -1
- package/out/generator/server/data/plain-expression-builder.js +0 -69
- package/out/generator/server/data/plain-expression-builder.js.map +0 -1
- package/out/generator/server/data-generator.js +0 -82
- package/out/generator/server/data-generator.js.map +0 -1
- package/out/generator/server/expression-writer.js +0 -1
- package/out/generator/server/expression-writer.js.map +0 -1
- package/out/generator/server/function/function-generator.js +0 -50
- package/out/generator/server/function/function-generator.js.map +0 -1
- package/out/generator/server/function-generator.js +0 -13
- package/out/generator/server/function-generator.js.map +0 -1
- package/out/generator/server/index.js +0 -88
- package/out/generator/server/index.js.map +0 -1
- package/out/generator/server/js-expression-builder.js +0 -1
- package/out/generator/server/js-expression-builder.js.map +0 -1
- package/out/generator/server/plain-expression-builder.js +0 -1
- package/out/generator/server/plain-expression-builder.js.map +0 -1
- package/out/generator/server/server-code-generator.js +0 -3
- package/out/generator/server/server-code-generator.js.map +0 -1
- package/out/generator/server/server-code-writer.js +0 -1
- package/out/generator/server/server-code-writer.js.map +0 -1
- package/out/generator/service/index.js +0 -133
- package/out/generator/service/index.js.map +0 -1
- package/out/generator/types.js +0 -10
- package/out/generator/types.js.map +0 -1
- package/out/generator/utils.js +0 -10
- package/out/generator/utils.js.map +0 -1
- package/out/langium-ext.js +0 -3
- package/out/langium-ext.js.map +0 -1
- package/out/language-server/constants.js +0 -20
- package/out/language-server/constants.js.map +0 -1
- package/out/language-server/generated/ast.js +0 -390
- package/out/language-server/generated/ast.js.map +0 -1
- package/out/language-server/generated/grammar.js.map +0 -1
- package/out/language-server/generated/module.js +0 -23
- package/out/language-server/generated/module.js.map +0 -1
- package/out/language-server/langium-ext.js +0 -3
- package/out/language-server/langium-ext.js.map +0 -1
- package/out/language-server/main.js +0 -13
- package/out/language-server/main.js.map +0 -1
- package/out/language-server/stdlib.zmodel +0 -23
- package/out/language-server/types.js +0 -3
- package/out/language-server/types.js.map +0 -1
- package/out/language-server/validator/attribute-validator copy.js +0 -12
- package/out/language-server/validator/attribute-validator copy.js.map +0 -1
- package/out/language-server/validator/attribute-validator.js +0 -7
- package/out/language-server/validator/attribute-validator.js.map +0 -1
- package/out/language-server/validator/datamodel-validator.js +0 -199
- package/out/language-server/validator/datamodel-validator.js.map +0 -1
- package/out/language-server/validator/datasource-validator copy.js +0 -77
- package/out/language-server/validator/datasource-validator copy.js.map +0 -1
- package/out/language-server/validator/datasource-validator.js +0 -77
- package/out/language-server/validator/datasource-validator.js.map +0 -1
- package/out/language-server/validator/enum-validator.js +0 -10
- package/out/language-server/validator/enum-validator.js.map +0 -1
- package/out/language-server/validator/model-validator.js +0 -21
- package/out/language-server/validator/model-validator.js.map +0 -1
- package/out/language-server/validator/schema-validator.js +0 -21
- package/out/language-server/validator/schema-validator.js.map +0 -1
- package/out/language-server/validator/utils.js +0 -106
- package/out/language-server/validator/utils.js.map +0 -1
- package/out/language-server/validator/zmodel-validator.js +0 -52
- package/out/language-server/validator/zmodel-validator.js.map +0 -1
- package/out/language-server/zmodel-index.js +0 -11
- package/out/language-server/zmodel-index.js.map +0 -1
- package/out/language-server/zmodel-linker.js +0 -249
- package/out/language-server/zmodel-linker.js.map +0 -1
- package/out/language-server/zmodel-module.js +0 -46
- package/out/language-server/zmodel-module.js.map +0 -1
- package/out/language-server/zmodel-scope.js +0 -41
- package/out/language-server/zmodel-scope.js.map +0 -1
- package/out/language-server/zmodel-validator.js +0 -35
- package/out/language-server/zmodel-validator.js.map +0 -1
- package/out/utils/exec-utils.js +0 -9
- package/out/utils/exec-utils.js.map +0 -1
- package/out/utils/indent-string.js +0 -9
- package/out/utils/indent-string.js.map +0 -1
|
@@ -1,193 +0,0 @@
|
|
|
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 excludedAttributes = ['@@allow', '@@deny'];
|
|
22
|
-
class PrismaSchemaGenerator {
|
|
23
|
-
constructor(context) {
|
|
24
|
-
this.context = context;
|
|
25
|
-
}
|
|
26
|
-
generate() {
|
|
27
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
28
|
-
const { schema } = this.context;
|
|
29
|
-
const prisma = new prisma_builder_1.PrismaModel();
|
|
30
|
-
for (const decl of schema.declarations) {
|
|
31
|
-
switch (decl.$type) {
|
|
32
|
-
case ast_1.DataSource:
|
|
33
|
-
this.generateDataSource(prisma, decl);
|
|
34
|
-
break;
|
|
35
|
-
case ast_1.Enum:
|
|
36
|
-
this.generateEnum(prisma, decl);
|
|
37
|
-
break;
|
|
38
|
-
case ast_1.DataModel:
|
|
39
|
-
this.generateModel(prisma, decl);
|
|
40
|
-
break;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
this.generateGenerator(prisma);
|
|
44
|
-
const outFile = path_1.default.join(this.context.outDir, 'schema.prisma');
|
|
45
|
-
yield (0, promises_1.writeFile)(outFile, prisma.toString());
|
|
46
|
-
return outFile;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
generateDataSource(prisma, dataSource) {
|
|
50
|
-
let provider = undefined;
|
|
51
|
-
let url = undefined;
|
|
52
|
-
let shadowDatabaseUrl = undefined;
|
|
53
|
-
for (const f of dataSource.fields) {
|
|
54
|
-
switch (f.name) {
|
|
55
|
-
case 'provider': {
|
|
56
|
-
if (this.isStringLiteral(f.value)) {
|
|
57
|
-
provider = f.value.value;
|
|
58
|
-
}
|
|
59
|
-
else {
|
|
60
|
-
throw new types_1.GeneratorError('Datasource provider must be set to a string');
|
|
61
|
-
}
|
|
62
|
-
break;
|
|
63
|
-
}
|
|
64
|
-
case 'url': {
|
|
65
|
-
const r = this.extractDataSourceUrl(f.value);
|
|
66
|
-
if (!r) {
|
|
67
|
-
throw new types_1.GeneratorError('Invalid value for datasource url');
|
|
68
|
-
}
|
|
69
|
-
url = r;
|
|
70
|
-
break;
|
|
71
|
-
}
|
|
72
|
-
case 'shadowDatabaseUrl': {
|
|
73
|
-
const r = this.extractDataSourceUrl(f.value);
|
|
74
|
-
if (!r) {
|
|
75
|
-
throw new types_1.GeneratorError('Invalid value for datasource url');
|
|
76
|
-
}
|
|
77
|
-
shadowDatabaseUrl = r;
|
|
78
|
-
break;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
if (!provider) {
|
|
83
|
-
throw new types_1.GeneratorError('Datasource is missing "provider" field');
|
|
84
|
-
}
|
|
85
|
-
if (!url) {
|
|
86
|
-
throw new types_1.GeneratorError('Datasource is missing "url" field');
|
|
87
|
-
}
|
|
88
|
-
prisma.addDataSource(dataSource.name, provider, url, shadowDatabaseUrl);
|
|
89
|
-
}
|
|
90
|
-
extractDataSourceUrl(fieldValue) {
|
|
91
|
-
var _a;
|
|
92
|
-
if (this.isStringLiteral(fieldValue)) {
|
|
93
|
-
return new prisma_builder_1.DataSourceUrl(fieldValue.value, false);
|
|
94
|
-
}
|
|
95
|
-
else if ((0, ast_1.isInvocationExpr)(fieldValue) &&
|
|
96
|
-
((_a = fieldValue.function.ref) === null || _a === void 0 ? void 0 : _a.name) === 'env' &&
|
|
97
|
-
fieldValue.args.length === 1 &&
|
|
98
|
-
this.isStringLiteral(fieldValue.args[0].value)) {
|
|
99
|
-
return new prisma_builder_1.DataSourceUrl(fieldValue.args[0].value.value, true);
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
generateGenerator(prisma) {
|
|
106
|
-
prisma.addGenerator('client', 'prisma-client-js', path_1.default.join('../', this.context.generatedCodeDir, '.prisma'), [
|
|
107
|
-
'fieldReference',
|
|
108
|
-
'interactiveTransactions',
|
|
109
|
-
'referentialIntegrity',
|
|
110
|
-
]);
|
|
111
|
-
}
|
|
112
|
-
generateModel(prisma, decl) {
|
|
113
|
-
const model = prisma.addModel(decl.name);
|
|
114
|
-
for (const field of decl.fields) {
|
|
115
|
-
this.generateModelField(model, field);
|
|
116
|
-
}
|
|
117
|
-
// add an "zenstack_guard" field for dealing with pure auth() related conditions
|
|
118
|
-
model.addField(constants_1.GUARD_FIELD_NAME, 'Boolean', [
|
|
119
|
-
new prisma_builder_1.FieldAttribute('@default', [
|
|
120
|
-
new prisma_builder_1.AttributeArg(undefined, new prisma_builder_1.AttributeArgValue('Boolean', true)),
|
|
121
|
-
]),
|
|
122
|
-
]);
|
|
123
|
-
// add an "zenstack_transaction" field for tracking records created/updated with nested writes
|
|
124
|
-
model.addField(constants_1.TRANSACTION_FIELD_NAME, 'String?');
|
|
125
|
-
for (const attr of decl.attributes.filter((attr) => { var _a; return !excludedAttributes.includes((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name); })) {
|
|
126
|
-
this.generateModelAttribute(model, attr);
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
generateModelField(model, field) {
|
|
130
|
-
var _a, _b;
|
|
131
|
-
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);
|
|
132
|
-
const attributes = field.attributes
|
|
133
|
-
.filter((attr) => { var _a; return !excludedAttributes.includes((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name); })
|
|
134
|
-
.map((attr) => this.makeFieldAttribute(attr));
|
|
135
|
-
model.addField(field.name, type, attributes);
|
|
136
|
-
}
|
|
137
|
-
makeFieldAttribute(attr) {
|
|
138
|
-
var _a;
|
|
139
|
-
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)));
|
|
140
|
-
}
|
|
141
|
-
makeAttributeArg(arg) {
|
|
142
|
-
return new prisma_builder_1.AttributeArg(arg.name, this.makeAttributeArgValue(arg.value));
|
|
143
|
-
}
|
|
144
|
-
makeAttributeArgValue(node) {
|
|
145
|
-
var _a;
|
|
146
|
-
if ((0, ast_1.isLiteralExpr)(node)) {
|
|
147
|
-
switch (typeof node.value) {
|
|
148
|
-
case 'string':
|
|
149
|
-
return new prisma_builder_1.AttributeArgValue('String', node.value);
|
|
150
|
-
case 'number':
|
|
151
|
-
return new prisma_builder_1.AttributeArgValue('Number', node.value);
|
|
152
|
-
case 'boolean':
|
|
153
|
-
return new prisma_builder_1.AttributeArgValue('Boolean', node.value);
|
|
154
|
-
default:
|
|
155
|
-
throw new types_1.GeneratorError(`Unexpected literal type: ${typeof node.value}`);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
else if ((0, ast_1.isArrayExpr)(node)) {
|
|
159
|
-
return new prisma_builder_1.AttributeArgValue('Array', new Array(...node.items.map((item) => this.makeAttributeArgValue(item))));
|
|
160
|
-
}
|
|
161
|
-
else if ((0, ast_1.isReferenceExpr)(node)) {
|
|
162
|
-
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))));
|
|
163
|
-
}
|
|
164
|
-
else if ((0, ast_1.isInvocationExpr)(node)) {
|
|
165
|
-
// invocation
|
|
166
|
-
return new prisma_builder_1.AttributeArgValue('FunctionCall', this.makeFunctionCall(node));
|
|
167
|
-
}
|
|
168
|
-
else {
|
|
169
|
-
throw new types_1.GeneratorError(`Unsupported attribute argument expression type: ${node.$type}`);
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
makeFunctionCall(node) {
|
|
173
|
-
var _a;
|
|
174
|
-
return new prisma_builder_1.FunctionCall((_a = node.function.ref) === null || _a === void 0 ? void 0 : _a.name, node.args.map((arg) => {
|
|
175
|
-
if (!(0, ast_1.isLiteralExpr)(arg.value)) {
|
|
176
|
-
throw new types_1.GeneratorError('Function call argument must be literal');
|
|
177
|
-
}
|
|
178
|
-
return new prisma_builder_1.FunctionCallArg(arg.name, arg.value.value);
|
|
179
|
-
}));
|
|
180
|
-
}
|
|
181
|
-
generateModelAttribute(model, attr) {
|
|
182
|
-
var _a;
|
|
183
|
-
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))));
|
|
184
|
-
}
|
|
185
|
-
generateEnum(prisma, decl) {
|
|
186
|
-
prisma.addEnum(decl.name, decl.fields.map((f) => f.name));
|
|
187
|
-
}
|
|
188
|
-
isStringLiteral(node) {
|
|
189
|
-
return (0, ast_1.isLiteralExpr)(node) && typeof node.value === 'string';
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
exports.default = PrismaSchemaGenerator;
|
|
193
|
-
//# sourceMappingURL=schema-generator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/generator/prisma/schema-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/query-guard/index.ts"],"names":[],"mappings":""}
|
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
26
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
27
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
28
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
29
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
30
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
31
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
32
|
-
});
|
|
33
|
-
};
|
|
34
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
-
};
|
|
37
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
-
const ts_morph_1 = require("ts-morph");
|
|
39
|
-
const path = __importStar(require("path"));
|
|
40
|
-
const change_case_1 = require("change-case");
|
|
41
|
-
const colors_1 = __importDefault(require("colors"));
|
|
42
|
-
const utils_1 = require("../utils");
|
|
43
|
-
const constants_1 = require("../constants");
|
|
44
|
-
class ReactHooksGenerator {
|
|
45
|
-
generate(context) {
|
|
46
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
47
|
-
const project = new ts_morph_1.Project();
|
|
48
|
-
const models = (0, utils_1.extractDataModelsWithAllowRules)(context.schema);
|
|
49
|
-
this.generateIndex(project, context, models);
|
|
50
|
-
models.forEach((d) => this.generateModelHooks(project, context, d));
|
|
51
|
-
yield project.save();
|
|
52
|
-
console.log(colors_1.default.blue(' ✔️ React hooks generated'));
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
|
-
generateModelHooks(project, context, model) {
|
|
56
|
-
const fileName = (0, change_case_1.paramCase)(model.name);
|
|
57
|
-
const sf = project.createSourceFile(path.join(context.generatedCodeDir, `src/hooks/${fileName}.ts`), undefined, { overwrite: true });
|
|
58
|
-
sf.addImportDeclaration({
|
|
59
|
-
namedImports: [{ name: 'Prisma', alias: 'P' }, model.name],
|
|
60
|
-
isTypeOnly: true,
|
|
61
|
-
moduleSpecifier: '../../.prisma',
|
|
62
|
-
});
|
|
63
|
-
sf.addStatements(`import { request } from '${constants_1.INTERNAL_PACKAGE}';`);
|
|
64
|
-
sf.addStatements(`import { type SWRResponse } from 'swr'`);
|
|
65
|
-
sf.addStatements(`const endpoint = '/api/${constants_1.API_ROUTE_NAME}/data/${model.name}';`);
|
|
66
|
-
const useFuncBody = sf
|
|
67
|
-
.addFunction({
|
|
68
|
-
name: `use${model.name}`,
|
|
69
|
-
isExported: true,
|
|
70
|
-
})
|
|
71
|
-
.addBody();
|
|
72
|
-
useFuncBody.addStatements(['const mutate = request.getMutate();']);
|
|
73
|
-
// create
|
|
74
|
-
useFuncBody
|
|
75
|
-
.addFunction({
|
|
76
|
-
name: 'create',
|
|
77
|
-
isAsync: true,
|
|
78
|
-
typeParameters: [`T extends P.${model.name}CreateArgs`],
|
|
79
|
-
parameters: [
|
|
80
|
-
{ name: 'args', type: `P.${model.name}CreateArgs` },
|
|
81
|
-
],
|
|
82
|
-
})
|
|
83
|
-
.addBody()
|
|
84
|
-
.addStatements([
|
|
85
|
-
`return request.post<P.${model.name}CreateArgs, P.CheckSelect<T, ${model.name}, P.${model.name}GetPayload<T>>>(endpoint, args, mutate);`,
|
|
86
|
-
]);
|
|
87
|
-
// find
|
|
88
|
-
useFuncBody
|
|
89
|
-
.addFunction({
|
|
90
|
-
name: 'find',
|
|
91
|
-
typeParameters: [`T extends P.${model.name}FindManyArgs`],
|
|
92
|
-
returnType: `SWRResponse<P.CheckSelect<T, ${model.name}[], P.${model.name}GetPayload<T, keyof T>[]>, any>`,
|
|
93
|
-
parameters: [
|
|
94
|
-
{
|
|
95
|
-
name: 'args?',
|
|
96
|
-
type: `P.SelectSubset<T, P.${model.name}FindManyArgs>`,
|
|
97
|
-
},
|
|
98
|
-
],
|
|
99
|
-
})
|
|
100
|
-
.addBody()
|
|
101
|
-
.addStatements([
|
|
102
|
-
`return request.get<P.CheckSelect<T, Array<${model.name}>, Array<P.${model.name}GetPayload<T>>>>(endpoint, args);`,
|
|
103
|
-
]);
|
|
104
|
-
// get
|
|
105
|
-
useFuncBody
|
|
106
|
-
.addFunction({
|
|
107
|
-
name: 'get',
|
|
108
|
-
typeParameters: [
|
|
109
|
-
`T extends P.Subset<P.${model.name}FindFirstArgs, 'select' | 'include'>`,
|
|
110
|
-
],
|
|
111
|
-
returnType: `SWRResponse<P.CheckSelect<T, ${model.name}, P.${model.name}GetPayload<T, keyof T>>, any>`,
|
|
112
|
-
parameters: [
|
|
113
|
-
{
|
|
114
|
-
name: 'id',
|
|
115
|
-
type: 'String',
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
name: 'args?',
|
|
119
|
-
type: `P.SelectSubset<T, P.Subset<P.${model.name}FindFirstArgs, 'select' | 'include'>>`,
|
|
120
|
-
},
|
|
121
|
-
],
|
|
122
|
-
})
|
|
123
|
-
.addBody()
|
|
124
|
-
.addStatements([
|
|
125
|
-
`return request.get<P.CheckSelect<T, ${model.name}, P.${model.name}GetPayload<T>>>(id ? \`\${endpoint}/\${id}\`: null, args);`,
|
|
126
|
-
]);
|
|
127
|
-
// update
|
|
128
|
-
useFuncBody
|
|
129
|
-
.addFunction({
|
|
130
|
-
name: 'update',
|
|
131
|
-
isAsync: true,
|
|
132
|
-
typeParameters: [
|
|
133
|
-
`T extends Omit<P.${model.name}UpdateArgs, 'where'>`,
|
|
134
|
-
],
|
|
135
|
-
parameters: [
|
|
136
|
-
{ name: 'id', type: 'String' },
|
|
137
|
-
{
|
|
138
|
-
name: 'args',
|
|
139
|
-
type: `Omit<P.${model.name}UpdateArgs, 'where'>`,
|
|
140
|
-
},
|
|
141
|
-
],
|
|
142
|
-
})
|
|
143
|
-
.addBody()
|
|
144
|
-
.addStatements([
|
|
145
|
-
`return request.put<Omit<P.${model.name}UpdateArgs, 'where'>, P.CheckSelect<T, ${model.name}, P.${model.name}GetPayload<T>>>(\`\${endpoint}/\${id}\`, args, mutate);`,
|
|
146
|
-
]);
|
|
147
|
-
// del
|
|
148
|
-
useFuncBody
|
|
149
|
-
.addFunction({
|
|
150
|
-
name: 'del',
|
|
151
|
-
isAsync: true,
|
|
152
|
-
typeParameters: [
|
|
153
|
-
`T extends Omit<P.${model.name}DeleteArgs, 'where'>`,
|
|
154
|
-
],
|
|
155
|
-
parameters: [
|
|
156
|
-
{ name: 'id', type: 'String' },
|
|
157
|
-
{
|
|
158
|
-
name: 'args?',
|
|
159
|
-
type: `Omit<P.${model.name}DeleteArgs, 'where'>`,
|
|
160
|
-
},
|
|
161
|
-
],
|
|
162
|
-
})
|
|
163
|
-
.addBody()
|
|
164
|
-
.addStatements([
|
|
165
|
-
`return request.del<P.CheckSelect<T, ${model.name}, P.${model.name}GetPayload<T>>>(\`\${endpoint}/\${id}\`, args, mutate);`,
|
|
166
|
-
]);
|
|
167
|
-
useFuncBody.addStatements([
|
|
168
|
-
'return { create, find, get, update, del };',
|
|
169
|
-
]);
|
|
170
|
-
sf.formatText();
|
|
171
|
-
}
|
|
172
|
-
generateIndex(project, context, models) {
|
|
173
|
-
const sf = project.createSourceFile(path.join(context.generatedCodeDir, 'src/hooks/index.ts'), undefined, { overwrite: true });
|
|
174
|
-
sf.addStatements(models.map((d) => `export * from './${(0, change_case_1.paramCase)(d.name)}';`));
|
|
175
|
-
sf.formatText();
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
exports.default = ReactHooksGenerator;
|
|
179
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/generator/react-hooks/index.ts"],"names":[],"mappings":"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"}
|