@servicenow/sdk-build-core 2.0.1 → 2.1.0
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/dist/Keys.d.ts +7 -5
- package/dist/Keys.js +24 -39
- package/dist/Keys.js.map +1 -1
- package/dist/XML.d.ts +6 -6
- package/dist/XML.js +10 -20
- package/dist/XML.js.map +1 -1
- package/dist/plugins/Context.d.ts +3 -13
- package/dist/plugins/Plugin.d.ts +3 -3
- package/dist/plugins/Plugin.js.map +1 -1
- package/dist/plugins/behaviors/Composer.d.ts +2 -2
- package/dist/plugins/behaviors/Serializer.d.ts +1 -1
- package/dist/plugins/behaviors/extractors/Data.d.ts +14 -11
- package/dist/plugins/behaviors/extractors/Data.js +41 -6
- package/dist/plugins/behaviors/extractors/Data.js.map +1 -1
- package/dist/plugins/behaviors/extractors/Extractors.d.ts +25 -3
- package/dist/plugins/util/CallExpression.d.ts +0 -1
- package/dist/plugins/util/CallExpression.js +16 -9
- package/dist/plugins/util/CallExpression.js.map +1 -1
- package/dist/plugins/util/CodeTransformation.d.ts +1 -0
- package/dist/plugins/util/CodeTransformation.js +92 -9
- package/dist/plugins/util/CodeTransformation.js.map +1 -1
- package/dist/plugins/util/ConfigurationFunction.js +1 -1
- package/dist/plugins/util/ConfigurationFunction.js.map +1 -1
- package/dist/util/Scope.d.ts +1 -0
- package/dist/util/Scope.js +7 -0
- package/dist/util/Scope.js.map +1 -0
- package/dist/util/index.d.ts +1 -0
- package/dist/util/index.js +1 -0
- package/dist/util/index.js.map +1 -1
- package/package.json +5 -4
- package/src/Keys.ts +31 -47
- package/src/XML.ts +12 -23
- package/src/plugins/Context.ts +3 -16
- package/src/plugins/Plugin.ts +42 -10
- package/src/plugins/behaviors/Composer.ts +2 -2
- package/src/plugins/behaviors/Serializer.ts +1 -1
- package/src/plugins/behaviors/extractors/Data.ts +78 -14
- package/src/plugins/behaviors/extractors/Extractors.ts +20 -4
- package/src/plugins/util/CallExpression.ts +27 -20
- package/src/plugins/util/CodeTransformation.ts +104 -8
- package/src/plugins/util/ConfigurationFunction.ts +1 -1
- package/src/util/Scope.ts +3 -0
- package/src/util/index.ts +1 -0
package/dist/Keys.d.ts
CHANGED
|
@@ -3,27 +3,29 @@ import { Context } from './plugins';
|
|
|
3
3
|
export declare const KEYS_MODULE = "@servicenow/sdk/global";
|
|
4
4
|
export declare const KEYS_FILE_NAME = "keys.ts";
|
|
5
5
|
export declare class Keys implements Now.Internal.KeysRegistry {
|
|
6
|
+
private readonly file;
|
|
6
7
|
private readonly keys;
|
|
7
8
|
private readonly usedIds;
|
|
8
9
|
constructor(context: Context);
|
|
9
10
|
private static parseKeysFile;
|
|
10
11
|
private static getKeysFile;
|
|
11
12
|
static getKeysFilePath(context: Context): string;
|
|
12
|
-
private static createKeysFile;
|
|
13
|
-
private static ensureGlobalImport;
|
|
14
13
|
private static getOrCreateKeysInterface;
|
|
15
14
|
private use;
|
|
16
|
-
get explicit(): Record<string | number, Now.Internal.ExplicitKey
|
|
15
|
+
get explicit(): Record<string | number, Now.Internal.ExplicitKey<string>>;
|
|
17
16
|
get composite(): Now.Internal.CompositeKey[];
|
|
18
17
|
get deleted(): Record<string, string[]>;
|
|
18
|
+
getSourceFile(): SourceFile;
|
|
19
19
|
getNextAvailableExplicitKey(): string;
|
|
20
|
+
explicitKeyExists(key: string | number): boolean;
|
|
20
21
|
findExplicitKeyById(id: string): string | undefined;
|
|
21
22
|
registerExplicitId(table: string, key: string | number, sysIdOverride?: string): string;
|
|
22
23
|
registerCompositeId(table: string, key: Record<string, string | number>, sysIdOverride?: string): string;
|
|
23
24
|
getUsedExplicitIds(): {
|
|
24
|
-
[k: string]: Now.Internal.ExplicitKey
|
|
25
|
+
[k: string]: Now.Internal.ExplicitKey<string>;
|
|
25
26
|
};
|
|
26
27
|
getUsedCompositeIds(): Now.Internal.CompositeKey[];
|
|
27
28
|
getDeletedAndUnusedIds(): Record<string, string[]>;
|
|
28
|
-
|
|
29
|
+
format(formatter?: (file: SourceFile) => Promise<any>): Promise<void>;
|
|
30
|
+
updateSourceFile(): void;
|
|
29
31
|
}
|
package/dist/Keys.js
CHANGED
|
@@ -30,7 +30,6 @@ const TypeScript_1 = require("./TypeScript");
|
|
|
30
30
|
const GUID_1 = require("./GUID");
|
|
31
31
|
const z = __importStar(require("zod"));
|
|
32
32
|
const _ = __importStar(require("lodash"));
|
|
33
|
-
const sdk_project_1 = require("@servicenow/sdk-project");
|
|
34
33
|
exports.KEYS_MODULE = '@servicenow/sdk/global';
|
|
35
34
|
exports.KEYS_FILE_NAME = 'keys.ts';
|
|
36
35
|
const KeysSchema = z.object({
|
|
@@ -50,16 +49,14 @@ const KeysSchema = z.object({
|
|
|
50
49
|
deleted: z.record(z.array(z.string())).default({}),
|
|
51
50
|
});
|
|
52
51
|
class Keys {
|
|
52
|
+
file;
|
|
53
53
|
keys;
|
|
54
54
|
usedIds = new Set();
|
|
55
55
|
constructor(context) {
|
|
56
|
-
this.
|
|
56
|
+
this.file = Keys.getKeysFile(context);
|
|
57
|
+
this.keys = Keys.parseKeysFile(this.file);
|
|
57
58
|
}
|
|
58
|
-
static parseKeysFile(
|
|
59
|
-
const keysFile = Keys.getKeysFile(context);
|
|
60
|
-
if (!keysFile) {
|
|
61
|
-
return undefined;
|
|
62
|
-
}
|
|
59
|
+
static parseKeysFile(keysFile) {
|
|
63
60
|
const keysInterface = Keys.getOrCreateKeysInterface(keysFile);
|
|
64
61
|
return KeysSchema.parse((0, TypeScript_1.parseType)(keysInterface.getType(), keysInterface, (unparsableType) => {
|
|
65
62
|
if (unparsableType.isArray()) {
|
|
@@ -72,32 +69,20 @@ class Keys {
|
|
|
72
69
|
}
|
|
73
70
|
static getKeysFile(context) {
|
|
74
71
|
const keysFilePath = Keys.getKeysFilePath(context);
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
72
|
+
const keysFile = context.compiler.addSourceFileAtPathIfExists(keysFilePath) ??
|
|
73
|
+
context.compiler.createSourceFile(keysFilePath, '', {
|
|
74
|
+
overwrite: true,
|
|
75
|
+
scriptKind: ts_morph_1.ScriptKind.TS,
|
|
76
|
+
});
|
|
77
|
+
// Add global import if not already present
|
|
78
|
+
if (!keysFile.getImportDeclaration((i) => i.getModuleSpecifierValue() === exports.KEYS_MODULE)) {
|
|
79
|
+
keysFile.addImportDeclaration({ moduleSpecifier: exports.KEYS_MODULE });
|
|
82
80
|
}
|
|
83
|
-
return
|
|
81
|
+
return keysFile;
|
|
84
82
|
}
|
|
85
83
|
static getKeysFilePath(context) {
|
|
86
84
|
return path.resolve(context.app.rootDir, context.app.config.generatedDir, exports.KEYS_FILE_NAME);
|
|
87
85
|
}
|
|
88
|
-
static createKeysFile(context) {
|
|
89
|
-
const keysFilePath = Keys.getKeysFilePath(context);
|
|
90
|
-
const parentDir = path.dirname(keysFilePath);
|
|
91
|
-
context.fs.mkdirSync(parentDir, { recursive: true });
|
|
92
|
-
const keysFile = context.compiler.createSourceFile(keysFilePath, '', {});
|
|
93
|
-
Keys.ensureGlobalImport(keysFile);
|
|
94
|
-
return keysFile;
|
|
95
|
-
}
|
|
96
|
-
static ensureGlobalImport(keysFile) {
|
|
97
|
-
if (!keysFile.getImportDeclaration((i) => i.getModuleSpecifierValue() === exports.KEYS_MODULE)) {
|
|
98
|
-
keysFile.addImportDeclaration({ moduleSpecifier: exports.KEYS_MODULE });
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
86
|
static getOrCreateKeysInterface(keysFile) {
|
|
102
87
|
const declareGlobal = keysFile.getModule('global') ??
|
|
103
88
|
keysFile.addModule({
|
|
@@ -135,6 +120,9 @@ class Keys {
|
|
|
135
120
|
get deleted() {
|
|
136
121
|
return this.keys.deleted;
|
|
137
122
|
}
|
|
123
|
+
getSourceFile() {
|
|
124
|
+
return this.file;
|
|
125
|
+
}
|
|
138
126
|
getNextAvailableExplicitKey() {
|
|
139
127
|
for (let i = 0;; i++) {
|
|
140
128
|
const key = `generated${i}`;
|
|
@@ -143,6 +131,9 @@ class Keys {
|
|
|
143
131
|
}
|
|
144
132
|
}
|
|
145
133
|
}
|
|
134
|
+
explicitKeyExists(key) {
|
|
135
|
+
return !!this.explicit[key];
|
|
136
|
+
}
|
|
146
137
|
findExplicitKeyById(id) {
|
|
147
138
|
return Object.entries(this.explicit).find(([, v]) => v.id === id)?.[0];
|
|
148
139
|
}
|
|
@@ -163,18 +154,12 @@ class Keys {
|
|
|
163
154
|
}
|
|
164
155
|
const existing = this.explicit[key];
|
|
165
156
|
if (existing) {
|
|
166
|
-
if (existing.table !== table) {
|
|
167
|
-
throw `Explicit key '${key}' is already registered for table '${existing.table}', cannot register for table '${table}'`;
|
|
168
|
-
}
|
|
169
157
|
return this.use(existing.id);
|
|
170
158
|
}
|
|
171
159
|
if (sysIdOverride) {
|
|
172
160
|
const existingKey = this.findExplicitKeyById(sysIdOverride);
|
|
173
161
|
if (existingKey) {
|
|
174
162
|
const existingWithSysId = this.explicit[existingKey];
|
|
175
|
-
if (existingWithSysId.table !== table) {
|
|
176
|
-
throw `ID '${sysIdOverride}' is already registered for table '${existingWithSysId.table}', cannot register for table '${table}'`;
|
|
177
|
-
}
|
|
178
163
|
if (existingKey !== key) {
|
|
179
164
|
throw `ID '${sysIdOverride}' is already registered for key '${existingKey}', cannot register for key '${key}'`;
|
|
180
165
|
}
|
|
@@ -223,7 +208,10 @@ class Keys {
|
|
|
223
208
|
return deletedIds;
|
|
224
209
|
}, {});
|
|
225
210
|
}
|
|
226
|
-
async
|
|
211
|
+
async format(formatter) {
|
|
212
|
+
await formatter?.(this.file);
|
|
213
|
+
}
|
|
214
|
+
updateSourceFile() {
|
|
227
215
|
const newProperties = [];
|
|
228
216
|
const usedExplicitIds = this.getUsedExplicitIds();
|
|
229
217
|
const usedCompositeIds = this.getUsedCompositeIds();
|
|
@@ -246,12 +234,9 @@ class Keys {
|
|
|
246
234
|
type: JSON.stringify(deletedOrUnusedIds, undefined, 4),
|
|
247
235
|
});
|
|
248
236
|
}
|
|
249
|
-
const
|
|
250
|
-
const keysInterface = Keys.getOrCreateKeysInterface(keysFile);
|
|
237
|
+
const keysInterface = Keys.getOrCreateKeysInterface(this.file);
|
|
251
238
|
keysInterface.getProperties().forEach((p) => p.remove());
|
|
252
239
|
keysInterface.addProperties(newProperties);
|
|
253
|
-
await formatter?.(keysFile);
|
|
254
|
-
keysFile.saveSync();
|
|
255
240
|
}
|
|
256
241
|
}
|
|
257
242
|
exports.Keys = Keys;
|
package/dist/Keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Keys.js","sourceRoot":"","sources":["../src/Keys.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"Keys.js","sourceRoot":"","sources":["../src/Keys.ts"],"names":[],"mappings":"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"}
|
package/dist/XML.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { Action, type Context } from './plugins';
|
|
2
|
-
import {
|
|
2
|
+
import type { XMLBuilder } from 'xmlbuilder2/lib/interfaces';
|
|
3
3
|
export type XmlValue = string | number | boolean;
|
|
4
4
|
export declare function isValidXmlValue(value: unknown): value is XmlValue;
|
|
5
5
|
export declare function unloadBuilder(context: Context): {
|
|
6
|
-
xml:
|
|
7
|
-
end: () =>
|
|
6
|
+
xml: XMLBuilder;
|
|
7
|
+
end: () => string;
|
|
8
8
|
record: (tableName: string, id: string | number, action?: Action) => {
|
|
9
9
|
fields(fields: Record<string, XmlValue>): void;
|
|
10
10
|
field(columnName: string, value: unknown, attributes?: Record<string, string>): {
|
|
11
11
|
choices(_choices: unknown): void;
|
|
12
12
|
};
|
|
13
|
-
addSysScope(context: Context):
|
|
13
|
+
addSysScope(context: Context): XMLBuilder;
|
|
14
14
|
};
|
|
15
15
|
};
|
|
16
|
-
export declare function recordXml(xml:
|
|
16
|
+
export declare function recordXml(xml: XMLBuilder, tableName: string, id: string | number, options?: {
|
|
17
17
|
attr?: Record<string, string>;
|
|
18
18
|
excludeScopeElement?: boolean;
|
|
19
19
|
}): {
|
|
@@ -21,5 +21,5 @@ export declare function recordXml(xml: XMLJsonElement, tableName: string, id: st
|
|
|
21
21
|
field(columnName: string, value: unknown, attributes?: Record<string, string>): {
|
|
22
22
|
choices(_choices: unknown): void;
|
|
23
23
|
};
|
|
24
|
-
addSysScope(context: Context):
|
|
24
|
+
addSysScope(context: Context): XMLBuilder;
|
|
25
25
|
};
|
package/dist/XML.js
CHANGED
|
@@ -4,23 +4,13 @@ exports.isValidXmlValue = isValidXmlValue;
|
|
|
4
4
|
exports.unloadBuilder = unloadBuilder;
|
|
5
5
|
exports.recordXml = recordXml;
|
|
6
6
|
const sdk_metrics_1 = require("@servicenow/sdk-metrics");
|
|
7
|
-
const
|
|
8
|
-
const XMLJsonBuilder_1 = require("./util/XMLJsonBuilder");
|
|
7
|
+
const xmlbuilder2_1 = require("xmlbuilder2");
|
|
9
8
|
function isValidXmlValue(value) {
|
|
10
9
|
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean';
|
|
11
10
|
}
|
|
12
11
|
function unloadBuilder(context) {
|
|
13
|
-
const
|
|
14
|
-
const
|
|
15
|
-
const end = () => new fast_xml_parser_1.XMLBuilder({
|
|
16
|
-
ignoreAttributes: false,
|
|
17
|
-
format: true,
|
|
18
|
-
suppressBooleanAttributes: false,
|
|
19
|
-
suppressEmptyNode: true,
|
|
20
|
-
cdataPropName: '__cdata',
|
|
21
|
-
})
|
|
22
|
-
.build(builder.buildJsonObj())
|
|
23
|
-
.trim();
|
|
12
|
+
const xml = (0, xmlbuilder2_1.create)({ version: '1.0' }).ele('record_update');
|
|
13
|
+
const end = () => xml.end({ prettyPrint: true });
|
|
24
14
|
// Root Builder
|
|
25
15
|
return {
|
|
26
16
|
xml,
|
|
@@ -33,8 +23,8 @@ function unloadBuilder(context) {
|
|
|
33
23
|
};
|
|
34
24
|
}
|
|
35
25
|
function recordXml(xml, tableName, id, options = {}) {
|
|
36
|
-
const recordXml = xml.
|
|
37
|
-
recordXml.
|
|
26
|
+
const recordXml = xml.ele(tableName, options.attr || { action: 'INSERT_OR_UPDATE' });
|
|
27
|
+
recordXml.ele('sys_id', undefined).txt(`${id}`);
|
|
38
28
|
// Record Builder
|
|
39
29
|
return {
|
|
40
30
|
fields(fields) {
|
|
@@ -50,10 +40,10 @@ function recordXml(xml, tableName, id, options = {}) {
|
|
|
50
40
|
}
|
|
51
41
|
let fieldXml;
|
|
52
42
|
if (columnName === 'script' || columnName === 'operation_script') {
|
|
53
|
-
fieldXml = recordXml.
|
|
43
|
+
fieldXml = recordXml.ele(columnName, attributes).dat(value);
|
|
54
44
|
}
|
|
55
45
|
else {
|
|
56
|
-
fieldXml = recordXml.
|
|
46
|
+
fieldXml = recordXml.ele(columnName, attributes).txt(`${value}`);
|
|
57
47
|
}
|
|
58
48
|
// Field Builder
|
|
59
49
|
return {
|
|
@@ -63,9 +53,9 @@ function recordXml(xml, tableName, id, options = {}) {
|
|
|
63
53
|
};
|
|
64
54
|
},
|
|
65
55
|
addSysScope(context) {
|
|
66
|
-
return recordXml
|
|
67
|
-
display_value: context.app.config.scope
|
|
68
|
-
|
|
56
|
+
return recordXml
|
|
57
|
+
.ele('sys_scope', { display_value: context.app.config.scope })
|
|
58
|
+
.txt(context.app.config.scopeId);
|
|
69
59
|
},
|
|
70
60
|
};
|
|
71
61
|
}
|
package/dist/XML.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"XML.js","sourceRoot":"","sources":["../src/XML.ts"],"names":[],"mappings":";;AAOA,0CAEC;AAED,
|
|
1
|
+
{"version":3,"file":"XML.js","sourceRoot":"","sources":["../src/XML.ts"],"names":[],"mappings":";;AAOA,0CAEC;AAED,sCAcC;AAED,8BA8CC;AAxED,yDAAkD;AAClD,6CAAoC;AAKpC,SAAgB,eAAe,CAAC,KAAc;IAC1C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS,CAAA;AAC/F,CAAC;AAED,SAAgB,aAAa,CAAC,OAAgB;IAC1C,MAAM,GAAG,GAAG,IAAA,oBAAM,EAAC,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,eAAe,CAAC,CAAA;IAC3D,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAA;IAEhD,eAAe;IACf,OAAO;QACH,GAAG;QACH,GAAG;QACH,MAAM,EAAE,CAAC,SAAiB,EAAE,EAAmB,EAAE,SAAiB,kBAAkB,EAAE,EAAE;YACpF,MAAM,GAAG,GAAG,SAAS,CAAC,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,CAAA;YAC/D,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,CAAA;YACxB,OAAO,GAAG,CAAA;QACd,CAAC;KACJ,CAAA;AACL,CAAC;AAED,SAAgB,SAAS,CACrB,GAAe,EACf,SAAiB,EACjB,EAAmB,EACnB,UAGI,EAAE;IAEN,MAAM,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,CAAA;IACpF,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAE/C,iBAAiB;IACjB,OAAO;QACH,MAAM,CAAC,MAAgC;YACnC,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACvD,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAA;YACjC,CAAC;QACL,CAAC;QACD,KAAK,CAAC,UAAkB,EAAE,KAAc,EAAE,aAAqC,EAAE;YAC7E,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,sBAAQ,CAAC,0BAA0B,UAAU,aAAa,KAAK,EAAE,EAAE;oBACzE,IAAI,EAAE,gBAAgB;iBACzB,CAAC,CAAA;YACN,CAAC;YAED,IAAI,QAAQ,CAAA;YACZ,IAAI,UAAU,KAAK,QAAQ,IAAI,UAAU,KAAK,kBAAkB,EAAE,CAAC;gBAC/D,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,KAAe,CAAC,CAAA;YACzE,CAAC;iBAAM,CAAC;gBACJ,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,CAAC,CAAA;YACpE,CAAC;YAED,gBAAgB;YAChB,OAAO;gBACH,OAAO,CAAC,QAAiB;oBACrB,QAAQ,CAAA,CAAC,kBAAkB;gBAC/B,CAAC;aACJ,CAAA;QACL,CAAC;QACD,WAAW,CAAC,OAAgB;YACxB,OAAO,SAAS;iBACX,GAAG,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;iBAC7D,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QACxC,CAAC;KACJ,CAAA;AACL,CAAC"}
|
|
@@ -86,7 +86,7 @@ export type Context = ProjectContext & {
|
|
|
86
86
|
* @param plugins An optional array of {@linkcode Plugin}s to use.
|
|
87
87
|
* @returns a {@linkcode Document} & {@linkcode Arranged} array.
|
|
88
88
|
*/
|
|
89
|
-
arrange(this: Context, documents:
|
|
89
|
+
arrange<D extends Document>(this: Context, documents: D[], plugins?: Plugin[]): (D & Arranged<'unresolved'>)[];
|
|
90
90
|
/**
|
|
91
91
|
* Accepts an array of documents and returns an array of files.
|
|
92
92
|
*
|
|
@@ -149,10 +149,6 @@ export type Context = ProjectContext & {
|
|
|
149
149
|
* should be checked before printing verbose log messages.
|
|
150
150
|
*/
|
|
151
151
|
debug: boolean;
|
|
152
|
-
/**
|
|
153
|
-
* Indicates the current mode in which the build system is running.
|
|
154
|
-
*/
|
|
155
|
-
mode: 'serialize' | 'transform';
|
|
156
152
|
/**
|
|
157
153
|
* An array of plugins that will be used (unless overridden) during various
|
|
158
154
|
* build process operations.
|
|
@@ -168,17 +164,9 @@ export type Context = ProjectContext & {
|
|
|
168
164
|
* @see {@link Plugin}
|
|
169
165
|
*/
|
|
170
166
|
entityPlugins: Plugin[];
|
|
171
|
-
/**
|
|
172
|
-
* Record to store and access data across plugins
|
|
173
|
-
*/
|
|
174
|
-
store: Record<string, unknown>;
|
|
175
167
|
usageCount: {
|
|
176
168
|
[key: string]: number;
|
|
177
169
|
};
|
|
178
|
-
/**
|
|
179
|
-
* Resets the store to initial state
|
|
180
|
-
*/
|
|
181
|
-
resetStore(): void;
|
|
182
170
|
/**
|
|
183
171
|
* An object of XML file names that was marked as handled or ignored by code transformation during the build process.
|
|
184
172
|
*/
|
|
@@ -191,8 +179,10 @@ export type Context = ProjectContext & {
|
|
|
191
179
|
* @deprecated Use the key methods on the context object instead.
|
|
192
180
|
*/
|
|
193
181
|
keys: Keys;
|
|
182
|
+
explicitKeyExists: Keys['explicitKeyExists'];
|
|
194
183
|
registerExplicitId: Keys['registerExplicitId'];
|
|
195
184
|
registerCompositeId: Keys['registerCompositeId'];
|
|
196
185
|
getDeletedAndUnusedIds: Keys['getDeletedAndUnusedIds'];
|
|
186
|
+
getKeysSourceFile(): ts.SourceFile;
|
|
197
187
|
};
|
|
198
188
|
export type HandledStates = 'handled' | 'ignored' | 'skipped' | 'unchanged';
|
package/dist/plugins/Plugin.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ import { Extractors, Composers, Serializers, Transformers, Generators, Arrangers
|
|
|
28
28
|
* @see {@linkcode Generators}
|
|
29
29
|
* @see {@linkcode Transformers}
|
|
30
30
|
*/
|
|
31
|
-
export type Plugin<DiagnosticsNodeKinds extends SupportedKindName | 'Node' = any,
|
|
31
|
+
export type Plugin<DiagnosticsNodeKinds extends SupportedKindName | 'Node' = any, FluentRawNodeKinds extends SupportedKindName = any, ModuleRawNodeKinds extends SupportedKindName = any, JsonRawNodeKinds extends SupportedKindName = any, AnyRawNodeKinds extends SupportedKindName = any, FluentEntityNodeKinds extends SupportedKindName = any, ModuleEntityNodeKinds extends SupportedKindName = any, JsonEntityNodeKinds extends SupportedKindName = any, AnyEntityNodeKinds extends SupportedKindName = any, ArrangerDocumentKinds extends string = any, SerializerDocumentKinds extends string = any, GeneratorDocumentKinds extends string = any, TransformerDocumentKinds extends string = any> = {
|
|
32
32
|
/**
|
|
33
33
|
* Name of the plugin
|
|
34
34
|
*/
|
|
@@ -59,7 +59,7 @@ export type Plugin<DiagnosticsNodeKinds extends SupportedKindName | 'Node' = any
|
|
|
59
59
|
* }
|
|
60
60
|
* }
|
|
61
61
|
*/
|
|
62
|
-
extractors?: Extractors<
|
|
62
|
+
extractors?: Extractors<FluentRawNodeKinds, ModuleRawNodeKinds, JsonRawNodeKinds, AnyRawNodeKinds, FluentEntityNodeKinds, ModuleEntityNodeKinds, JsonEntityNodeKinds, AnyEntityNodeKinds>;
|
|
63
63
|
/**
|
|
64
64
|
* Plugins may define composers for both entity data (from the
|
|
65
65
|
* source code) and XML data (from XML files). The job of a
|
|
@@ -172,4 +172,4 @@ export type Plugin<DiagnosticsNodeKinds extends SupportedKindName | 'Node' = any
|
|
|
172
172
|
* @param plugin The {@linkcode Plugin} configuration
|
|
173
173
|
* @returns a {@linkcode Plugin} object
|
|
174
174
|
*/
|
|
175
|
-
export declare function Plugin<const DiagnosticsNodeKinds extends SupportedKindName | 'Node', const
|
|
175
|
+
export declare function Plugin<const DiagnosticsNodeKinds extends SupportedKindName | 'Node', const FluentRawNodeKinds extends SupportedKindName, const ModuleRawNodeKinds extends SupportedKindName, const JsonRawNodeKinds extends SupportedKindName, const AnyRawNodeKinds extends SupportedKindName, const FluentEntityNodeKinds extends SupportedKindName, const ModuleEntityNodeKinds extends SupportedKindName, const JsonEntityNodeKinds extends SupportedKindName, const AnyEntityNodeKinds extends SupportedKindName, const SerializerDocumentKinds extends string, const GeneratorDocumentKinds extends string, const TransformerDocumentKinds extends string, const P extends Plugin<DiagnosticsNodeKinds, FluentRawNodeKinds, ModuleRawNodeKinds, JsonRawNodeKinds, AnyRawNodeKinds, FluentEntityNodeKinds, ModuleEntityNodeKinds, JsonEntityNodeKinds, AnyEntityNodeKinds, SerializerDocumentKinds, GeneratorDocumentKinds, TransformerDocumentKinds>>(plugin: P & Plugin<DiagnosticsNodeKinds, FluentRawNodeKinds, ModuleRawNodeKinds, JsonRawNodeKinds, AnyRawNodeKinds, FluentEntityNodeKinds, ModuleEntityNodeKinds, JsonEntityNodeKinds, AnyEntityNodeKinds, GeneratorDocumentKinds, TransformerDocumentKinds>): P;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/plugins/Plugin.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"Plugin.js","sourceRoot":"","sources":["../../src/plugins/Plugin.ts"],"names":[],"mappings":";;AAyOA,wBA4CC;AApDD;;;;;;;GAOG;AACH,SAAgB,MAAM,CA4BlB,MAaK;IAEL,OAAO,MAAW,CAAA;AACtB,CAAC"}
|
|
@@ -54,9 +54,9 @@ export type DocumentPointer<DocumentKind extends string = string> = {
|
|
|
54
54
|
*
|
|
55
55
|
* @see {@linkcode Document}
|
|
56
56
|
*/
|
|
57
|
-
export type DocumentMap = {
|
|
57
|
+
export type DocumentMap<D extends Document = Document> = {
|
|
58
58
|
[kinds: string]: {
|
|
59
|
-
[guids: string]:
|
|
59
|
+
[guids: string]: D;
|
|
60
60
|
};
|
|
61
61
|
};
|
|
62
62
|
/**
|
|
@@ -8,7 +8,7 @@ import { Context } from '../Context';
|
|
|
8
8
|
*/
|
|
9
9
|
export type File = {
|
|
10
10
|
name: `${string}.xml`;
|
|
11
|
-
directory: 'dictionary' | 'unload' | 'unload.demo' | 'update' | 'apply_once' | '';
|
|
11
|
+
directory: 'dictionary' | 'unload' | 'unload.demo' | 'update' | 'apply_once' | 'scope' | '';
|
|
12
12
|
content: string;
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
@@ -32,6 +32,8 @@ export declare class XmlData<D extends PrimitiveData = PrimitiveData> {
|
|
|
32
32
|
export type WrappedData<D> = {
|
|
33
33
|
[K in keyof D]: D[K] extends string ? StringData<D[K]> : D[K] extends number ? NumberData<D[K]> : D[K] extends boolean ? BooleanData<D[K]> : D[K] extends Array<unknown> ? ArrayData<D[K]> : D[K] extends Record<string, unknown> ? ObjectData<D[K]> : Data<D[K]>;
|
|
34
34
|
};
|
|
35
|
+
export type TypeName = 'string' | 'number' | 'boolean' | 'array' | 'object' | 'entity';
|
|
36
|
+
export type Type<T extends TypeName> = T extends 'string' ? StringData : T extends 'number' ? NumberData : T extends 'boolean' ? BooleanData : T extends 'array' ? ArrayData : T extends 'object' ? ObjectData : T extends 'entity' ? EntityData : never;
|
|
35
37
|
export declare abstract class Data<D = unknown> {
|
|
36
38
|
private readonly node;
|
|
37
39
|
constructor(node: SupportedNode);
|
|
@@ -42,14 +44,14 @@ export declare abstract class Data<D = unknown> {
|
|
|
42
44
|
* element/property values (and any nested values) came from.
|
|
43
45
|
*/
|
|
44
46
|
static fromValue<const D>(value: D, node: SupportedNode): Data<D>;
|
|
45
|
-
static isUndefined(data?:
|
|
46
|
-
static isString(data?:
|
|
47
|
-
static isNumber(data?:
|
|
48
|
-
static isBoolean(data?:
|
|
49
|
-
static isArray(data?:
|
|
50
|
-
static isObject(data?:
|
|
51
|
-
static isEntity(data?:
|
|
52
|
-
abstract getValue(): D;
|
|
47
|
+
static isUndefined(data?: unknown): data is UndefinedData;
|
|
48
|
+
static isString(data?: unknown): data is StringData;
|
|
49
|
+
static isNumber(data?: unknown): data is NumberData;
|
|
50
|
+
static isBoolean(data?: unknown): data is BooleanData;
|
|
51
|
+
static isArray(data?: unknown): data is ArrayData;
|
|
52
|
+
static isObject(data?: unknown): data is ObjectData;
|
|
53
|
+
static isEntity(data?: unknown): data is EntityData;
|
|
54
|
+
abstract getValue(resolveReferences?: boolean): D;
|
|
53
55
|
getNode(): import("ts-morph").SourceFile | import("ts-morph").ShorthandPropertyAssignment | import("ts-morph").Identifier | import("ts-morph").ObjectLiteralExpression | import("ts-morph").Node<import("ts-morph").ts.EndOfFileToken> | import("ts-morph").TypeAliasDeclaration | import("ts-morph").TypeReferenceNode | import("ts-morph").TypeLiteralNode | import("ts-morph").PropertySignature | import("ts-morph").TupleTypeNode | import("ts-morph").FunctionExpression | import("ts-morph").FunctionDeclaration | import("ts-morph").ArrayLiteralExpression | import("ts-morph").CallExpression<import("ts-morph").ts.CallExpression> | import("ts-morph").StringLiteral | import("ts-morph").NumericLiteral | import("ts-morph").TrueLiteral | import("ts-morph").FalseLiteral | import("ts-morph").VariableDeclaration | import("ts-morph").ClassDeclaration | import("ts-morph").ExportDeclaration | import("ts-morph").AsExpression | import("ts-morph").ComputedPropertyName | import("ts-morph").PropertyAssignment | import("ts-morph").PropertyAccessExpression<import("ts-morph").ts.PropertyAccessExpression> | import("ts-morph").NoSubstitutionTemplateLiteral | import("ts-morph").ExpressionStatement | import("ts-morph").TaggedTemplateExpression | import("ts-morph").ExportAssignment | import("ts-morph").ElementAccessExpression<import("ts-morph").ts.ElementAccessExpression> | import("ts-morph").TemplateExpression | import("ts-morph").ImportClause | import("ts-morph").ImportSpecifier | import("ts-morph").ImportDeclaration | import("ts-morph").NamedImports | import("ts-morph").VariableStatement | import("ts-morph").VariableDeclarationList | import("ts-morph").Node<import("ts-morph").ts.PlusToken> | import("ts-morph").Node<import("ts-morph").ts.ExportKeyword> | import("ts-morph").Node<import("ts-morph").ts.KeywordTypeNode<import("ts-morph").ts.SyntaxKind.AnyKeyword>> | import("ts-morph").ModuleDeclaration | import("ts-morph").ModuleBlock | import("ts-morph").Block | import("ts-morph").ParameterDeclaration | import("ts-morph").Node<import("ts-morph").ts.EqualsGreaterThanToken> | import("ts-morph").ArrowFunction | import("ts-morph").TemplateHead | import("ts-morph").TemplateMiddle | import("ts-morph").TemplateSpan | import("ts-morph").TemplateTail | import("ts-morph").PrefixUnaryExpression;
|
|
54
56
|
}
|
|
55
57
|
export declare class UndefinedData extends Data<undefined> {
|
|
@@ -81,7 +83,7 @@ export declare class ArrayData<const D extends unknown[] = unknown[]> extends Da
|
|
|
81
83
|
* the element values (and any nested values) came from.
|
|
82
84
|
*/
|
|
83
85
|
static fromArrayValue<const D extends unknown[]>(value: D, node: SupportedNode): ArrayData<D>;
|
|
84
|
-
getValue(): D;
|
|
86
|
+
getValue(resolveReferences?: boolean): D;
|
|
85
87
|
getElements(): WrappedData<D>;
|
|
86
88
|
}
|
|
87
89
|
export declare class ObjectData<const D extends Record<string, unknown> = Record<string, unknown>> extends Data<D> {
|
|
@@ -94,8 +96,9 @@ export declare class ObjectData<const D extends Record<string, unknown> = Record
|
|
|
94
96
|
* the property values (and any nested values) came from.
|
|
95
97
|
*/
|
|
96
98
|
static fromObjectValue<const D extends Record<string, unknown>>(value: D, node: SupportedNode): ObjectData<D>;
|
|
97
|
-
getValue(): D;
|
|
98
|
-
getProperty<const K extends keyof D>(name: K): WrappedData<D>[K];
|
|
99
|
+
getValue(resolveReferences?: boolean): D;
|
|
100
|
+
getProperty<const K extends keyof D, const T extends TypeName>(name: K, type?: T): TypeName extends T ? WrappedData<D>[K] : Type<T> | undefined;
|
|
101
|
+
getPropertyOrThrow<const K extends keyof D, const T extends TypeName>(name: K, type?: T): TypeName extends T ? NonNullable<WrappedData<D>[K]> : Type<T>;
|
|
99
102
|
getProperties(): WrappedData<D>;
|
|
100
103
|
}
|
|
101
104
|
export declare class EntityData<const D extends Record<string, unknown> = Record<string, unknown>> extends ObjectData<D> {
|
|
@@ -18,6 +18,24 @@ class XmlData {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
exports.XmlData = XmlData;
|
|
21
|
+
function getClassFromTypeName(type) {
|
|
22
|
+
switch (type) {
|
|
23
|
+
case 'string':
|
|
24
|
+
return StringData;
|
|
25
|
+
case 'number':
|
|
26
|
+
return NumberData;
|
|
27
|
+
case 'boolean':
|
|
28
|
+
return BooleanData;
|
|
29
|
+
case 'array':
|
|
30
|
+
return ArrayData;
|
|
31
|
+
case 'object':
|
|
32
|
+
return ObjectData;
|
|
33
|
+
case 'entity':
|
|
34
|
+
return EntityData;
|
|
35
|
+
default:
|
|
36
|
+
throw new Error(`Unrecognized type name: ${type}`);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
21
39
|
class Data {
|
|
22
40
|
node;
|
|
23
41
|
constructor(node) {
|
|
@@ -137,8 +155,8 @@ class ArrayData extends Data {
|
|
|
137
155
|
const elements = value.map((value) => Data.fromValue(value, node));
|
|
138
156
|
return new ArrayData(elements, node);
|
|
139
157
|
}
|
|
140
|
-
getValue() {
|
|
141
|
-
return this.elements.map((element) => element.getValue());
|
|
158
|
+
getValue(resolveReferences = false) {
|
|
159
|
+
return this.elements.map((element) => !resolveReferences && Data.isEntity(element) ? element.getGuid() : element.getValue());
|
|
142
160
|
}
|
|
143
161
|
getElements() {
|
|
144
162
|
return this.elements;
|
|
@@ -161,11 +179,28 @@ class ObjectData extends Data {
|
|
|
161
179
|
const properties = Object.fromEntries(Object.entries(value).map(([key, value]) => [key, Data.fromValue(value, node)]));
|
|
162
180
|
return new ObjectData(properties, node);
|
|
163
181
|
}
|
|
164
|
-
getValue() {
|
|
165
|
-
return Object.fromEntries(Object.entries(this.properties).map(([key, value]) => [
|
|
182
|
+
getValue(resolveReferences = false) {
|
|
183
|
+
return Object.fromEntries(Object.entries(this.properties).map(([key, value]) => [
|
|
184
|
+
key,
|
|
185
|
+
!resolveReferences && Data.isEntity(value) ? value.getGuid() : value.getValue(),
|
|
186
|
+
]));
|
|
187
|
+
}
|
|
188
|
+
getProperty(name, type) {
|
|
189
|
+
const property = this.properties[name];
|
|
190
|
+
if (type) {
|
|
191
|
+
const expectedClass = getClassFromTypeName(type);
|
|
192
|
+
if (!(property instanceof expectedClass)) {
|
|
193
|
+
return undefined;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
return property;
|
|
166
197
|
}
|
|
167
|
-
|
|
168
|
-
|
|
198
|
+
getPropertyOrThrow(name, type) {
|
|
199
|
+
const property = this.getProperty(name, type);
|
|
200
|
+
if (!property) {
|
|
201
|
+
throw new Error(`Property "${name.toString()}" not found on object`);
|
|
202
|
+
}
|
|
203
|
+
return property;
|
|
169
204
|
}
|
|
170
205
|
getProperties() {
|
|
171
206
|
return this.properties;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/Data.ts"],"names":[],"mappings":";;;AAwBA;;;GAGG;AACH,MAAa,OAAO;IAEL;IACE;IACA;IACA;IAJb,YACW,IAAO,EACL,QAAgB,EAChB,IAAY,EACZ,SAAiB,kBAAkB;QAHrC,SAAI,GAAJ,IAAI,CAAG;QACL,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAA6B;IAC7C,CAAC;CACP;AAPD,0BAOC;
|
|
1
|
+
{"version":3,"file":"Data.js","sourceRoot":"","sources":["../../../../src/plugins/behaviors/extractors/Data.ts"],"names":[],"mappings":";;;AAwBA;;;GAGG;AACH,MAAa,OAAO;IAEL;IACE;IACA;IACA;IAJb,YACW,IAAO,EACL,QAAgB,EAChB,IAAY,EACZ,SAAiB,kBAAkB;QAHrC,SAAI,GAAJ,IAAI,CAAG;QACL,aAAQ,GAAR,QAAQ,CAAQ;QAChB,SAAI,GAAJ,IAAI,CAAQ;QACZ,WAAM,GAAN,MAAM,CAA6B;IAC7C,CAAC;CACP;AAPD,0BAOC;AA+BD,SAAS,oBAAoB,CAAC,IAAc;IACxC,QAAQ,IAAI,EAAE,CAAC;QACX,KAAK,QAAQ;YACT,OAAO,UAAU,CAAA;QACrB,KAAK,QAAQ;YACT,OAAO,UAAU,CAAA;QACrB,KAAK,SAAS;YACV,OAAO,WAAW,CAAA;QACtB,KAAK,OAAO;YACR,OAAO,SAAS,CAAA;QACpB,KAAK,QAAQ;YACT,OAAO,UAAU,CAAA;QACrB,KAAK,QAAQ;YACT,OAAO,UAAU,CAAA;QACrB;YACI,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAA;IAC1D,CAAC;AACL,CAAC;AAED,MAAsB,IAAI;IACO;IAA7B,YAA6B,IAAmB;QAAnB,SAAI,GAAJ,IAAI,CAAe;IAAG,CAAC;IAEpD;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAU,KAAQ,EAAE,IAAmB;QACnD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACxC,OAAO,IAAI,aAAa,CAAC,IAAI,CAAY,CAAA,CAAC,0CAA0C;QACxF,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YACnC,OAAO,IAAI,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACtC,CAAC;aAAM,IAAI,OAAO,KAAK,KAAK,SAAS,EAAE,CAAC;YACpC,OAAO,IAAI,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,OAAO,SAAS,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;QAChD,CAAC;aAAM,IAAI,CAAC,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9C,MAAM,GAAG,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAA;YAChG,OAAO,UAAU,CAAC,eAAe,CAAC,GAAqB,EAAE,IAAI,CAAC,CAAA;QAClE,CAAC;aAAM,CAAC;YACJ,MAAM,IAAI,KAAK,CACX,0BAA0B,KAAK,WAAW,OAAO,KAAK,YAAY,KAAK,EAAE,WAAW,EAAE,IAAI,GAAG,CAChG,CAAA;QACL,CAAC;IACL,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,IAAc;QAC7B,OAAO,IAAI,YAAY,aAAa,CAAA;IACxC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC1B,OAAO,IAAI,YAAY,UAAU,CAAA;IACrC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC1B,OAAO,IAAI,YAAY,UAAU,CAAA;IACrC,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,IAAc;QAC3B,OAAO,IAAI,YAAY,WAAW,CAAA;IACtC,CAAC;IAED,MAAM,CAAC,OAAO,CAAC,IAAc;QACzB,OAAO,IAAI,YAAY,SAAS,CAAA;IACpC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC1B,OAAO,IAAI,YAAY,UAAU,CAAA;IACrC,CAAC;IAED,MAAM,CAAC,QAAQ,CAAC,IAAc;QAC1B,OAAO,IAAI,YAAY,UAAU,CAAA;IACrC,CAAC;IAID,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;CACJ;AA/DD,oBA+DC;AAED,MAAa,aAAc,SAAQ,IAAe;IAC9C,YAAY,IAAmB;QAC3B,KAAK,CAAC,IAAI,CAAC,CAAA;IACf,CAAC;IAED,QAAQ;QACJ,OAAO,SAAS,CAAA;IACpB,CAAC;CACJ;AARD,sCAQC;AAED,MAAa,UAA4C,SAAQ,IAAO;IAE/C;IADrB,YACqB,KAAQ,EACzB,IAAmB;QAEnB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHM,UAAK,GAAL,KAAK,CAAG;IAI7B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ;AAXD,gCAWC;AAED,MAAa,UAA4C,SAAQ,IAAO;IAE/C;IADrB,YACqB,KAAQ,EACzB,IAAmB;QAEnB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHM,UAAK,GAAL,KAAK,CAAG;IAI7B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ;AAXD,gCAWC;AAED,MAAa,WAA+C,SAAQ,IAAO;IAElD;IADrB,YACqB,KAAQ,EACzB,IAAmB;QAEnB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHM,UAAK,GAAL,KAAK,CAAG;IAI7B,CAAC;IAED,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ;AAXD,kCAWC;AAED,MAAa,SAAiD,SAAQ,IAAO;IAEpD;IADrB,YACqB,QAAwB,EACzC,IAAmB;QAEnB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHM,aAAQ,GAAR,QAAQ,CAAgB;IAI7C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,cAAc,CAA4B,KAAQ,EAAE,IAAmB;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAmB,CAAA;QAEpF,OAAO,IAAI,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;IACxC,CAAC;IAED,QAAQ,CAAC,iBAAiB,GAAG,KAAK;QAC9B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACjC,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,CACnF,CAAA;IACV,CAAC;IAED,WAAW;QACP,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;CACJ;AA7BD,8BA6BC;AAED,MAAa,UAA8E,SAAQ,IAAO;IAEjF;IADrB,YACqB,UAA0B,EAC3C,IAAmB;QAEnB,KAAK,CAAC,IAAI,CAAC,CAAA;QAHM,eAAU,GAAV,UAAU,CAAgB;IAI/C,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAA0C,KAAQ,EAAE,IAAmB;QACzF,MAAM,UAAU,GAAG,MAAM,CAAC,WAAW,CACjC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,CAChE,CAAA;QAEnB,OAAO,IAAI,UAAU,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IAC3C,CAAC;IAED,QAAQ,CAAC,iBAAiB,GAAG,KAAK;QAC9B,OAAO,MAAM,CAAC,WAAW,CACrB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;YAClD,GAAG;YACH,CAAC,iBAAiB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE;SAClF,CAAC,CACA,CAAA;IACV,CAAC;IAED,WAAW,CACP,IAAO,EACP,IAAQ;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACtC,IAAI,IAAI,EAAE,CAAC;YACP,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,CAAC,CAAA;YAChD,IAAI,CAAC,CAAC,QAAQ,YAAY,aAAa,CAAC,EAAE,CAAC;gBACvC,OAAO,SAAgB,CAAA;YAC3B,CAAC;QACL,CAAC;QAED,OAAO,QAAe,CAAA;IAC1B,CAAC;IAED,kBAAkB,CACd,IAAO,EACP,IAAQ;QAER,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC7C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,aAAa,IAAI,CAAC,QAAQ,EAAE,uBAAuB,CAAC,CAAA;QACxE,CAAC;QAED,OAAO,QAAe,CAAA;IAC1B,CAAC;IAED,aAAa;QACT,OAAO,IAAI,CAAC,UAAU,CAAA;IAC1B,CAAC;CACJ;AA7DD,gCA6DC;AAED,MAAa,UAA8E,SAAQ,UAAa;IAEvF;IACA;IAFrB,YACqB,IAAY,EACZ,IAAY,EAC7B,MAAqB,EACrB,IAAmB;QAEnB,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,CAAA;QALlB,SAAI,GAAJ,IAAI,CAAQ;QACZ,SAAI,GAAJ,IAAI,CAAQ;IAKjC,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;CACJ;AAjBD,gCAiBC"}
|
|
@@ -30,12 +30,34 @@ export type EntityExtractorFunction<N extends SupportedKindName | 'any' = Suppor
|
|
|
30
30
|
/**
|
|
31
31
|
* @see {@linkcode Plugin#extractors}
|
|
32
32
|
*/
|
|
33
|
-
export type Extractors<
|
|
33
|
+
export type Extractors<FluentRawNodeKinds extends SupportedKindName | 'any', ModuleRawNodeKinds extends SupportedKindName | 'any', JsonRawNodeKinds extends SupportedKindName | 'any', AnyRawNodeKinds extends SupportedKindName | 'any', FluentEntityNodeKinds extends SupportedKindName | 'any', ModuleEntityNodeKinds extends SupportedKindName | 'any', JsonEntityNodeKinds extends SupportedKindName | 'any', AnyEntityNodeKinds extends SupportedKindName | 'any'> = {
|
|
34
34
|
xml?: XmlExtractorFunction;
|
|
35
35
|
raw?: {
|
|
36
|
-
|
|
36
|
+
fluent?: {
|
|
37
|
+
[K in FluentRawNodeKinds]: RawExtractorFunction<K>;
|
|
38
|
+
};
|
|
39
|
+
module?: {
|
|
40
|
+
[K in ModuleRawNodeKinds]: RawExtractorFunction<K>;
|
|
41
|
+
};
|
|
42
|
+
json?: {
|
|
43
|
+
[K in JsonRawNodeKinds]: RawExtractorFunction<K>;
|
|
44
|
+
};
|
|
45
|
+
any?: {
|
|
46
|
+
[K in AnyRawNodeKinds]: RawExtractorFunction<K>;
|
|
47
|
+
};
|
|
37
48
|
};
|
|
38
49
|
entity?: {
|
|
39
|
-
|
|
50
|
+
fluent?: {
|
|
51
|
+
[K in FluentEntityNodeKinds]: EntityExtractorFunction<K>;
|
|
52
|
+
};
|
|
53
|
+
module?: {
|
|
54
|
+
[K in ModuleEntityNodeKinds]: EntityExtractorFunction<K>;
|
|
55
|
+
};
|
|
56
|
+
json?: {
|
|
57
|
+
[K in JsonEntityNodeKinds]: EntityExtractorFunction<K>;
|
|
58
|
+
};
|
|
59
|
+
any?: {
|
|
60
|
+
[K in AnyEntityNodeKinds]: EntityExtractorFunction<K>;
|
|
61
|
+
};
|
|
40
62
|
};
|
|
41
63
|
};
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as ts from 'ts-morph';
|
|
2
2
|
import { Context } from '../Context';
|
|
3
3
|
import { EntityData, ExtractionResult } from '../behaviors';
|
|
4
|
-
export declare const CURRENT_CALL_EXPRESSION = "current_call_expression";
|
|
5
4
|
export declare function getCallExpressionName(node: ts.CallExpression): string;
|
|
6
5
|
export declare function extractCallExpression<const A extends unknown[], const E extends A extends [infer T extends Record<string, unknown>] ? T : never, const K extends string>(fn: (...args: A) => E, kind: K, node: ts.CallExpression, context: Context, guid: (entity: E) => string, validate?: (entity: unknown) => entity is E): ExtractionResult<EntityData<E>>;
|