@zenstackhq/sdk 1.0.0-alpha.115 → 1.0.0-alpha.119
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/code-gen.js +2 -2
- package/code-gen.js.map +1 -1
- package/package.json +2 -2
- package/types.d.ts +3 -1
- package/types.js +2 -1
- package/types.js.map +1 -1
- package/utils.d.ts +19 -0
- package/utils.js +91 -1
- package/utils.js.map +1 -1
package/code-gen.js
CHANGED
|
@@ -70,7 +70,7 @@ function emitProject(project) {
|
|
|
70
70
|
console.error('Error compiling generated code:');
|
|
71
71
|
console.error(project.formatDiagnosticsWithColorAndContext(errors.slice(0, 10)));
|
|
72
72
|
yield project.save();
|
|
73
|
-
throw new types_1.PluginError(`Error compiling generated code`);
|
|
73
|
+
throw new types_1.PluginError('', `Error compiling generated code`);
|
|
74
74
|
}
|
|
75
75
|
const result = yield project.emit();
|
|
76
76
|
const emitErrors = result.getDiagnostics().filter((d) => d.getCategory() === ts_morph_1.DiagnosticCategory.Error);
|
|
@@ -78,7 +78,7 @@ function emitProject(project) {
|
|
|
78
78
|
console.error('Some generated code is not emitted:');
|
|
79
79
|
console.error(project.formatDiagnosticsWithColorAndContext(emitErrors.slice(0, 10)));
|
|
80
80
|
yield project.save();
|
|
81
|
-
throw new types_1.PluginError(`Error emitting generated code`);
|
|
81
|
+
throw new types_1.PluginError('', `Error emitting generated code`);
|
|
82
82
|
}
|
|
83
83
|
});
|
|
84
84
|
}
|
package/code-gen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-gen.js","sourceRoot":"","sources":["../src/code-gen.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAAgC;AAChC,uCAA8G;AAC9G,mCAAsC;AAEtC,MAAM,aAAa,GAAG;IAClB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,GAAG;IACf,cAAc,EAAE,IAAI;IACpB,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,YAAY;CACd,CAAC;AAEX,SAAe,UAAU,CAAC,UAAsB;;QAC5C,IAAI;YACA,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,kBAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC1D,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;SAC3B;QAAC,WAAM;YACJ,WAAW;SACd;IACL,CAAC;CAAA;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAyB;IACnD,OAAO,IAAI,kBAAO,CAAC;QACf,eAAe,kBACX,MAAM,EAAE,uBAAY,CAAC,MAAM,EAC3B,MAAM,EAAE,qBAAU,CAAC,QAAQ,EAC3B,eAAe,EAAE,IAAI,EACrB,WAAW,EAAE,IAAI,EACjB,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,IAAI,EAClB,aAAa,EAAE,IAAI,IAChB,OAAO,CACb;KACJ,CAAC,CAAC;AACP,CAAC;AAbD,sCAaC;AAED;;GAEG;AACH,SAAsB,WAAW,CAAC,OAAgB;;QAC9C,MAAM,OAAO,CAAC,GAAG,CACb,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAO,EAAE,EAAE,EAAE;YACtC,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAA,CAAC,CACL,CAAC;QACF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;CAAA;AAPD,kCAOC;AAED;;GAEG;AACH,SAAsB,WAAW,CAAC,OAAgB;;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,6BAAkB,CAAC,KAAK,CAAC,CAAC;QAC3G,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,oCAAoC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,mBAAW,CAAC,gCAAgC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"code-gen.js","sourceRoot":"","sources":["../src/code-gen.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,wDAAgC;AAChC,uCAA8G;AAC9G,mCAAsC;AAEtC,MAAM,aAAa,GAAG;IAClB,aAAa,EAAE,KAAK;IACpB,QAAQ,EAAE,CAAC;IACX,UAAU,EAAE,GAAG;IACf,cAAc,EAAE,IAAI;IACpB,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,IAAI;IACjB,OAAO,EAAE,KAAK;IACd,MAAM,EAAE,YAAY;CACd,CAAC;AAEX,SAAe,UAAU,CAAC,UAAsB;;QAC5C,IAAI;YACA,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;YACzC,MAAM,SAAS,GAAG,kBAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAC1D,UAAU,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACtC,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;SAC3B;QAAC,WAAM;YACJ,WAAW;SACd;IACL,CAAC;CAAA;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,OAAyB;IACnD,OAAO,IAAI,kBAAO,CAAC;QACf,eAAe,kBACX,MAAM,EAAE,uBAAY,CAAC,MAAM,EAC3B,MAAM,EAAE,qBAAU,CAAC,QAAQ,EAC3B,eAAe,EAAE,IAAI,EACrB,WAAW,EAAE,IAAI,EACjB,MAAM,EAAE,IAAI,EACZ,YAAY,EAAE,IAAI,EAClB,aAAa,EAAE,IAAI,IAChB,OAAO,CACb;KACJ,CAAC,CAAC;AACP,CAAC;AAbD,sCAaC;AAED;;GAEG;AACH,SAAsB,WAAW,CAAC,OAAgB;;QAC9C,MAAM,OAAO,CAAC,GAAG,CACb,OAAO,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAO,EAAE,EAAE,EAAE;YACtC,MAAM,UAAU,CAAC,EAAE,CAAC,CAAC;QACzB,CAAC,CAAA,CAAC,CACL,CAAC;QACF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;CAAA;AAPD,kCAOC;AAED;;GAEG;AACH,SAAsB,WAAW,CAAC,OAAgB;;QAC9C,MAAM,MAAM,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,6BAAkB,CAAC,KAAK,CAAC,CAAC;QAC3G,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACnB,OAAO,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,oCAAoC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACjF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,mBAAW,CAAC,EAAE,EAAE,gCAAgC,CAAC,CAAC;SAC/D;QAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;QAEpC,MAAM,UAAU,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,6BAAkB,CAAC,KAAK,CAAC,CAAC;QACvG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YACvB,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;YACrD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,oCAAoC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;YACrF,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,MAAM,IAAI,mBAAW,CAAC,EAAE,EAAE,+BAA+B,CAAC,CAAC;SAC9D;IACL,CAAC;CAAA;AAlBD,kCAkBC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zenstackhq/sdk",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.119",
|
|
4
4
|
"description": "ZenStack plugin development SDK",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"publishConfig": {
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
"@prisma/generator-helper": "^4.7.1",
|
|
15
15
|
"prettier": "^2.8.3",
|
|
16
16
|
"ts-morph": "^16.0.0",
|
|
17
|
-
"@zenstackhq/language": "1.0.0-alpha.
|
|
17
|
+
"@zenstackhq/language": "1.0.0-alpha.119"
|
|
18
18
|
},
|
|
19
19
|
"devDependencies": {
|
|
20
20
|
"copyfiles": "^2.4.1",
|
package/types.d.ts
CHANGED
|
@@ -10,6 +10,7 @@ export type OptionValue = string | number | boolean;
|
|
|
10
10
|
export type PluginOptions = {
|
|
11
11
|
provider?: string;
|
|
12
12
|
schemaPath: string;
|
|
13
|
+
name: string;
|
|
13
14
|
} & Record<string, OptionValue | OptionValue[]>;
|
|
14
15
|
/**
|
|
15
16
|
* Plugin entry point function definition
|
|
@@ -19,5 +20,6 @@ export type PluginFunction = (model: Model, options: PluginOptions, dmmf?: DMMF.
|
|
|
19
20
|
* Plugin error
|
|
20
21
|
*/
|
|
21
22
|
export declare class PluginError extends Error {
|
|
22
|
-
|
|
23
|
+
plugin: string;
|
|
24
|
+
constructor(plugin: string, message: string);
|
|
23
25
|
}
|
package/types.js
CHANGED
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA0BA;;GAEG;AACH,MAAa,WAAY,SAAQ,KAAK;IAClC,YAAmB,MAAc,EAAE,OAAe;QAC9C,KAAK,CAAC,OAAO,CAAC,CAAC;QADA,WAAM,GAAN,MAAM,CAAQ;IAEjC,CAAC;CACJ;AAJD,kCAIC"}
|
package/utils.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { AstNode, DataModel, DataModelAttribute, DataModelField, DataModelFieldAttribute, Enum, EnumField, Expression, Model, Reference } from '@zenstackhq/language/ast';
|
|
2
|
+
import { PluginOptions } from './types';
|
|
2
3
|
/**
|
|
3
4
|
* Gets data models that are not ignored
|
|
4
5
|
*/
|
|
@@ -13,3 +14,21 @@ export declare function hasAttribute(decl: DataModel | DataModelField | Enum | E
|
|
|
13
14
|
export declare function getAttributeArgs(attr: DataModelAttribute | DataModelFieldAttribute): Record<string, Expression>;
|
|
14
15
|
export declare function getAttributeArg(attr: DataModelAttribute | DataModelFieldAttribute, name: string): Expression | undefined;
|
|
15
16
|
export declare function getAttributeArgLiteral<T extends string | number | boolean>(attr: DataModelAttribute | DataModelFieldAttribute, name: string): T | undefined;
|
|
17
|
+
/**
|
|
18
|
+
* Gets id fields declared at the data model level
|
|
19
|
+
*/
|
|
20
|
+
export declare function getIdFields(model: DataModel): DataModelField[];
|
|
21
|
+
/**
|
|
22
|
+
* Returns if the given field is declared as an id field.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isIdField(field: DataModelField): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Returns if the given field is a relation field.
|
|
27
|
+
*/
|
|
28
|
+
export declare function isRelationshipField(field: DataModelField): boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Returns if the given field is a relation foreign key field.
|
|
31
|
+
*/
|
|
32
|
+
export declare function isForeignKeyField(field: DataModelField): boolean;
|
|
33
|
+
export declare function resolvePath(_path: string, options: PluginOptions): string;
|
|
34
|
+
export declare function requireOption<T>(options: PluginOptions, name: string): T;
|
package/utils.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getAttributeArgLiteral = exports.getAttributeArg = exports.getAttributeArgs = exports.hasAttribute = exports.getObjectLiteral = exports.getLiteralArray = exports.getArray = exports.getLiteral = exports.resolved = exports.getDataModels = void 0;
|
|
6
|
+
exports.requireOption = exports.resolvePath = exports.isForeignKeyField = exports.isRelationshipField = exports.isIdField = exports.getIdFields = exports.getAttributeArgLiteral = exports.getAttributeArg = exports.getAttributeArgs = exports.hasAttribute = exports.getObjectLiteral = exports.getLiteralArray = exports.getArray = exports.getLiteral = exports.resolved = exports.getDataModels = void 0;
|
|
4
7
|
const ast_1 = require("@zenstackhq/language/ast");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
5
9
|
/**
|
|
6
10
|
* Gets data models that are not ignored
|
|
7
11
|
*/
|
|
@@ -102,4 +106,90 @@ function getAttributeArgLiteral(attr, name) {
|
|
|
102
106
|
return undefined;
|
|
103
107
|
}
|
|
104
108
|
exports.getAttributeArgLiteral = getAttributeArgLiteral;
|
|
109
|
+
/**
|
|
110
|
+
* Gets id fields declared at the data model level
|
|
111
|
+
*/
|
|
112
|
+
function getIdFields(model) {
|
|
113
|
+
const idAttr = model.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@@id'; });
|
|
114
|
+
if (!idAttr) {
|
|
115
|
+
return [];
|
|
116
|
+
}
|
|
117
|
+
const fieldsArg = idAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
118
|
+
if (!fieldsArg || !(0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
119
|
+
return [];
|
|
120
|
+
}
|
|
121
|
+
return fieldsArg.value.items
|
|
122
|
+
.filter((item) => (0, ast_1.isReferenceExpr)(item))
|
|
123
|
+
.map((item) => resolved(item.target));
|
|
124
|
+
}
|
|
125
|
+
exports.getIdFields = getIdFields;
|
|
126
|
+
/**
|
|
127
|
+
* Returns if the given field is declared as an id field.
|
|
128
|
+
*/
|
|
129
|
+
function isIdField(field) {
|
|
130
|
+
// field-level @id attribute
|
|
131
|
+
if (field.attributes.some((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@id'; })) {
|
|
132
|
+
return true;
|
|
133
|
+
}
|
|
134
|
+
// model-level @@id attribute with a list of fields
|
|
135
|
+
const model = field.$container;
|
|
136
|
+
const modelLevelIds = getIdFields(model);
|
|
137
|
+
if (modelLevelIds.includes(field)) {
|
|
138
|
+
return true;
|
|
139
|
+
}
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
exports.isIdField = isIdField;
|
|
143
|
+
/**
|
|
144
|
+
* Returns if the given field is a relation field.
|
|
145
|
+
*/
|
|
146
|
+
function isRelationshipField(field) {
|
|
147
|
+
var _a;
|
|
148
|
+
return (0, ast_1.isDataModel)((_a = field.type.reference) === null || _a === void 0 ? void 0 : _a.ref);
|
|
149
|
+
}
|
|
150
|
+
exports.isRelationshipField = isRelationshipField;
|
|
151
|
+
/**
|
|
152
|
+
* Returns if the given field is a relation foreign key field.
|
|
153
|
+
*/
|
|
154
|
+
function isForeignKeyField(field) {
|
|
155
|
+
const model = field.$container;
|
|
156
|
+
return model.fields.some((f) => {
|
|
157
|
+
// find @relation attribute
|
|
158
|
+
const relAttr = f.attributes.find((attr) => { var _a; return ((_a = attr.decl.ref) === null || _a === void 0 ? void 0 : _a.name) === '@relation'; });
|
|
159
|
+
if (relAttr) {
|
|
160
|
+
// find "fields" arg
|
|
161
|
+
const fieldsArg = relAttr.args.find((a) => { var _a; return ((_a = a.$resolvedParam) === null || _a === void 0 ? void 0 : _a.name) === 'fields'; });
|
|
162
|
+
if (fieldsArg && (0, ast_1.isArrayExpr)(fieldsArg.value)) {
|
|
163
|
+
// find a matching field reference
|
|
164
|
+
return fieldsArg.value.items.some((item) => {
|
|
165
|
+
if ((0, ast_1.isReferenceExpr)(item)) {
|
|
166
|
+
return item.target.ref === field;
|
|
167
|
+
}
|
|
168
|
+
else {
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
return false;
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
exports.isForeignKeyField = isForeignKeyField;
|
|
178
|
+
function resolvePath(_path, options) {
|
|
179
|
+
if (path_1.default.isAbsolute(_path)) {
|
|
180
|
+
return _path;
|
|
181
|
+
}
|
|
182
|
+
else {
|
|
183
|
+
return path_1.default.join(path_1.default.dirname(options.schemaPath), _path);
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
exports.resolvePath = resolvePath;
|
|
187
|
+
function requireOption(options, name) {
|
|
188
|
+
const value = options[name];
|
|
189
|
+
if (value === undefined) {
|
|
190
|
+
throw new Error(`Plugin "${options.name}" is missing required option: ${name}`);
|
|
191
|
+
}
|
|
192
|
+
return value;
|
|
193
|
+
}
|
|
194
|
+
exports.requireOption = requireOption;
|
|
105
195
|
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|