@venizia/ignis-boot 0.2.1-2 → 0.2.1-4
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/cjs/bun/group-resolver.js +1 -1
- package/dist/cjs/bun/group-resolver.js.map +1 -1
- package/dist/cjs/bun/plugin.d.ts +8 -4
- package/dist/cjs/bun/plugin.d.ts.map +1 -1
- package/dist/cjs/bun/plugin.js +123 -65
- package/dist/cjs/bun/plugin.js.map +1 -1
- package/dist/cjs/bun/sources.d.ts +7 -2
- package/dist/cjs/bun/sources.d.ts.map +1 -1
- package/dist/cjs/bun/sources.js +30 -7
- package/dist/cjs/bun/sources.js.map +1 -1
- package/dist/esm/bun/group-resolver.js +1 -1
- package/dist/esm/bun/group-resolver.js.map +1 -1
- package/dist/esm/bun/plugin.d.ts +8 -4
- package/dist/esm/bun/plugin.d.ts.map +1 -1
- package/dist/esm/bun/plugin.js +124 -66
- package/dist/esm/bun/plugin.js.map +1 -1
- package/dist/esm/bun/sources.d.ts +7 -2
- package/dist/esm/bun/sources.d.ts.map +1 -1
- package/dist/esm/bun/sources.js +30 -7
- package/dist/esm/bun/sources.js.map +1 -1
- package/package.json +1 -1
|
@@ -10,7 +10,7 @@ class GroupArtifactsResolver {
|
|
|
10
10
|
static { this.REALM_SLOT = Symbol.for('@venizia/ignis-kernel:artifact-group-resolver'); }
|
|
11
11
|
static async resolve(opts) {
|
|
12
12
|
const { folder, site } = opts.group;
|
|
13
|
-
if (!
|
|
13
|
+
if (!site) {
|
|
14
14
|
throw (0, ignis_helpers_1.getError)({
|
|
15
15
|
message: `[ArtifactGroup] '${folder ?? '<application>'}' has no call site to resolve from | Define it with ArtifactGroup.define in the shared package's own source`,
|
|
16
16
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-resolver.js","sourceRoot":"","sources":["../../../src/bun/group-resolver.ts"],"names":[],"mappings":";;;AAAA,0DAAkD;AAElD,4CAAiF;AACjF,uCAA4C;AAE5C,2OAA2O;AAC3O,MAAa,sBAAsB;IACjC,uGAAuG;aACvF,eAAU,GAAG,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAEzF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAEpB;QACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"group-resolver.js","sourceRoot":"","sources":["../../../src/bun/group-resolver.ts"],"names":[],"mappings":";;;AAAA,0DAAkD;AAElD,4CAAiF;AACjF,uCAA4C;AAE5C,2OAA2O;AAC3O,MAAa,sBAAsB;IACjC,uGAAuG;aACvF,eAAU,GAAG,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAEzF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAEpB;QACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAA,wBAAQ,EAAC;gBACb,OAAO,EAAE,oBAAoB,MAAM,IAAI,eAAe,6GAA6G;aACpK,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAA2C,EAAE,CAAC;QACzD,KAAK,MAAM,QAAQ,IAAI,yBAAe,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,+BAAmB,CAAC,UAAU,CAAC,IAAI,CAC/C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CACtC,EAAE,KAAK,CAAC;YACT,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mIAAmI;IACnI,MAAM,CAAC,OAAO;QACZ,MAAM,QAAQ,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACrF,MAAM,MAAM,GACV,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,OAAO,GAAG,CAAC,WAEjB,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC;;AArCH,wDAsCC"}
|
package/dist/cjs/bun/plugin.d.ts
CHANGED
|
@@ -9,15 +9,18 @@ export declare class IgnisArtifactsPlugin {
|
|
|
9
9
|
/** A text test for a file worth parsing: `ArtifactGroup.define(`, with any spacing or line break around the dot. */
|
|
10
10
|
static readonly DEFINE_CALL: RegExp;
|
|
11
11
|
private static readonly RUNTIME_KEY;
|
|
12
|
-
/** The `src` beside the nearest `package.json` at or above `from` (default: the
|
|
12
|
+
/** The `src` beside the nearest `package.json` at or above `from` (default: the entry module's directory). */
|
|
13
13
|
static defaultRoot(opts?: {
|
|
14
14
|
from?: string;
|
|
15
15
|
}): string;
|
|
16
|
-
/** The
|
|
16
|
+
/** The entry module's directory (`Bun.main`), so the root never depends on where the process was started; the working directory only when there is no entry file (`bun -e`, a REPL). */
|
|
17
|
+
static entryDirectory(): string;
|
|
18
|
+
/** The index as module source: every import absolute, since a virtual module has no directory to resolve from. With `entry` in a compiled tree, each class is imported from that tree (`ArtifactSources.runningArtifacts`). */
|
|
17
19
|
static render(opts: {
|
|
18
20
|
root: string;
|
|
21
|
+
entry?: string;
|
|
19
22
|
}): string;
|
|
20
|
-
/** Rewrites every `ArtifactGroup.define({ folder: '<literal>' })` in a source file to carry its classes as `content`, imported by absolute path - a binary then holds each group's list and never scans. A
|
|
23
|
+
/** Rewrites every `ArtifactGroup.define({ folder: '<literal>' })` and `ArtifactGroup.application()` in a source file to carry its classes as `content`, imported by absolute path - a binary then holds each group's list and never scans. A group with no decorated class, or a call the plugin cannot read (an aliased `ArtifactGroup`, a folder that is not a string literal), fails the build. */
|
|
21
24
|
static rewriteGroups(opts: {
|
|
22
25
|
filePath: string;
|
|
23
26
|
source: string;
|
|
@@ -26,9 +29,10 @@ export declare class IgnisArtifactsPlugin {
|
|
|
26
29
|
static groupDefinitionFiles(opts: {
|
|
27
30
|
root: string;
|
|
28
31
|
}): string[];
|
|
29
|
-
/** For `Bun.build({ plugins: [IgnisArtifactsPlugin.create()] })`; `isRuntime` is set by `registerRuntime`, which serves a virtual module instead. */
|
|
32
|
+
/** For `Bun.build({ plugins: [IgnisArtifactsPlugin.create()] })`; `isRuntime` is set by `registerRuntime`, which serves a virtual module instead. `entry` (default: the build's first entrypoint, or `Bun.main` at run time) decides which tree the classes are imported from. */
|
|
30
33
|
static create(opts?: {
|
|
31
34
|
root?: string;
|
|
35
|
+
entry?: string;
|
|
32
36
|
isRuntime?: boolean;
|
|
33
37
|
}): BunPlugin;
|
|
34
38
|
/** Registers the run-time plugin once per process; a second call is a no-op. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/bun/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAQrC,6QAA6Q;AAC7Q,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,qBAAqB;IACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,qBAAqB;IAC5C,MAAM,CAAC,QAAQ,CAAC,WAAW,wBAAwB;IAEnD,+IAA+I;IAC/I,MAAM,CAAC,QAAQ,CAAC,WAAW,SAC0F;IAErH,oHAAoH;IACpH,MAAM,CAAC,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/bun/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAQrC,6QAA6Q;AAC7Q,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,qBAAqB;IACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,qBAAqB;IAC5C,MAAM,CAAC,QAAQ,CAAC,WAAW,wBAAwB;IAEnD,+IAA+I;IAC/I,MAAM,CAAC,QAAQ,CAAC,WAAW,SAC0F;IAErH,oHAAoH;IACpH,MAAM,CAAC,QAAQ,CAAC,WAAW,SAAsD;IAEjF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA8D;IAEjG,8GAA8G;IAC9G,MAAM,CAAC,WAAW,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAMxD,wLAAwL;IACxL,MAAM,CAAC,cAAc,IAAI,MAAM;IAK/B,+NAA+N;IAC/N,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAuB7D,sYAAsY;IACtY,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAsIxE,wPAAwP;IACxP,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE;IAgE7D,kRAAkR;IAClR,MAAM,CAAC,MAAM,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,SAAS;IAgD3F,gFAAgF;WACnE,eAAe,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAO1E"}
|
package/dist/cjs/bun/plugin.js
CHANGED
|
@@ -18,29 +18,43 @@ class IgnisArtifactsPlugin {
|
|
|
18
18
|
/** `@venizia/ignis-boot/auto`, from source or from either dist format - replaced at build time by a static re-export of the virtual module. */
|
|
19
19
|
static { this.AUTO_MODULE = /[\\/](?:@venizia[\\/]ignis-boot|packages[\\/]boot)[\\/](?:dist[\\/](?:esm|cjs)|src)[\\/]bun[\\/]auto\.(?:ts|js)$/; }
|
|
20
20
|
/** A text test for a file worth parsing: `ArtifactGroup.define(`, with any spacing or line break around the dot. */
|
|
21
|
-
static { this.DEFINE_CALL = /ArtifactGroup\s*\.\s*define\s*\(/; }
|
|
21
|
+
static { this.DEFINE_CALL = /ArtifactGroup\s*\.\s*(?:define|application)\s*\(/; }
|
|
22
22
|
static { this.RUNTIME_KEY = Symbol.for('@venizia/ignis-boot:artifacts-runtime-plugin'); }
|
|
23
|
-
/** The `src` beside the nearest `package.json` at or above `from` (default: the
|
|
23
|
+
/** The `src` beside the nearest `package.json` at or above `from` (default: the entry module's directory). */
|
|
24
24
|
static defaultRoot(opts = {}) {
|
|
25
|
-
return sources_1.ArtifactSources.packageSource(
|
|
25
|
+
return sources_1.ArtifactSources.packageSource({
|
|
26
|
+
from: opts.from ?? IgnisArtifactsPlugin.entryDirectory(),
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/** The entry module's directory (`Bun.main`), so the root never depends on where the process was started; the working directory only when there is no entry file (`bun -e`, a REPL). */
|
|
30
|
+
static entryDirectory() {
|
|
31
|
+
const entry = typeof Bun === 'undefined' ? undefined : Bun.main;
|
|
32
|
+
return entry && (0, node_fs_1.existsSync)(entry) ? (0, node_path_1.dirname)(entry) : process.cwd();
|
|
26
33
|
}
|
|
27
|
-
/** The index as module source: every import absolute, since a virtual module has no directory to resolve from. */
|
|
34
|
+
/** The index as module source: every import absolute, since a virtual module has no directory to resolve from. With `entry` in a compiled tree, each class is imported from that tree (`ArtifactSources.runningArtifacts`). */
|
|
28
35
|
static render(opts) {
|
|
29
36
|
const root = (0, node_path_1.resolve)(opts.root);
|
|
37
|
+
if (!(0, node_fs_1.existsSync)(root)) {
|
|
38
|
+
throw (0, ignis_helpers_1.getError)({
|
|
39
|
+
message: `[IgnisArtifactsPlugin] ${(0, node_path_1.dirname)(root)} has no src directory (${root}) | Auto artifacts scan the src beside the package.json of the entry module; pass IgnisArtifactsPlugin.create({ root }), or use ArtifactGroup.application() in the application's own source`,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
30
42
|
const outFile = (0, node_path_1.join)(root, '__ignis_artifacts__.ts');
|
|
31
43
|
const { artifacts } = generator_1.ArtifactScanner.getInstance().scanWithReport({
|
|
32
44
|
root,
|
|
33
45
|
followReexports: true,
|
|
34
46
|
});
|
|
35
47
|
return generator_1.ArtifactIndexEmitter.render({
|
|
36
|
-
artifacts
|
|
48
|
+
artifacts: opts.entry
|
|
49
|
+
? sources_1.ArtifactSources.runningArtifacts({ artifacts, from: opts.entry })
|
|
50
|
+
: artifacts,
|
|
37
51
|
outFile,
|
|
38
52
|
exportName: IgnisArtifactsPlugin.EXPORT_NAME,
|
|
39
53
|
command: { root, out: outFile },
|
|
40
54
|
absoluteImports: true,
|
|
41
55
|
});
|
|
42
56
|
}
|
|
43
|
-
/** Rewrites every `ArtifactGroup.define({ folder: '<literal>' })` in a source file to carry its classes as `content`, imported by absolute path - a binary then holds each group's list and never scans. A
|
|
57
|
+
/** Rewrites every `ArtifactGroup.define({ folder: '<literal>' })` and `ArtifactGroup.application()` in a source file to carry its classes as `content`, imported by absolute path - a binary then holds each group's list and never scans. A group with no decorated class, or a call the plugin cannot read (an aliased `ArtifactGroup`, a folder that is not a string literal), fails the build. */
|
|
44
58
|
static rewriteGroups(opts) {
|
|
45
59
|
const { filePath, source } = opts;
|
|
46
60
|
const sourceFile = typescript_1.default.createSourceFile(filePath, source, typescript_1.default.ScriptTarget.Latest, true);
|
|
@@ -62,63 +76,91 @@ class IgnisArtifactsPlugin {
|
|
|
62
76
|
const refuse = (node, reason) => {
|
|
63
77
|
const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
64
78
|
throw (0, ignis_helpers_1.getError)({
|
|
65
|
-
message: `[IgnisArtifactsPlugin] An ArtifactGroup
|
|
79
|
+
message: `[IgnisArtifactsPlugin] An ArtifactGroup call at ${filePath}:${line + 1} cannot be rewritten | ${reason} - write ArtifactGroup.define({ folder: '<name>' }) or ArtifactGroup.application() with the class imported under its own name`,
|
|
66
80
|
});
|
|
67
81
|
};
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
const named = (name) => literal.properties.find(entry => entry.name && typescript_1.default.isIdentifier(entry.name) && entry.name.text === name);
|
|
84
|
-
const folderProperty = named('folder');
|
|
85
|
-
if (!named('content')) {
|
|
86
|
-
if (!folderProperty ||
|
|
87
|
-
!typescript_1.default.isPropertyAssignment(folderProperty) ||
|
|
88
|
-
!typescript_1.default.isStringLiteral(folderProperty.initializer)) {
|
|
89
|
-
refuse(node, 'folder is not a string literal');
|
|
90
|
-
}
|
|
91
|
-
const folder = folderProperty.initializer.text;
|
|
92
|
-
const artifacts = sources_1.ArtifactSources.folderArtifacts({ folder, site: filePath });
|
|
93
|
-
if (artifacts.length === 0) {
|
|
94
|
-
throw (0, ignis_helpers_1.getError)({
|
|
95
|
-
message: `[IgnisArtifactsPlugin] ArtifactGroup '${folder}' resolved to no class | ${filePath} - check the folder name and that its classes carry a stereotype decorator`,
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
const fields = [];
|
|
99
|
-
for (const { type, field } of generator_1.ArtifactStereotypes.EMIT_ORDER) {
|
|
100
|
-
const locals = artifacts
|
|
101
|
-
.filter(artifact => artifact.type === type)
|
|
102
|
-
.map(artifact => {
|
|
103
|
-
counter += 1;
|
|
104
|
-
const local = `__ignis_group_${counter}`;
|
|
105
|
-
const path = artifact.filePath.split(node_path_1.sep).join('/').replace(/\.ts$/, '');
|
|
106
|
-
imports.push(`import { ${artifact.className} as ${local} } from '${path}';`);
|
|
107
|
-
return local;
|
|
108
|
-
});
|
|
109
|
-
if (locals.length > 0) {
|
|
110
|
-
fields.push(`${field}: [${locals.join(', ')}]`);
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
const last = literal.properties[literal.properties.length - 1];
|
|
114
|
-
edits.push({
|
|
115
|
-
at: last ? last.getEnd() : literal.getStart() + 1,
|
|
116
|
-
text: `${last ? ', ' : ''}content: { ${fields.join(', ')} }`,
|
|
117
|
-
});
|
|
82
|
+
const isCompiled = !filePath.endsWith('.ts');
|
|
83
|
+
const contentLiteral = (folder) => {
|
|
84
|
+
const artifacts = sources_1.ArtifactSources.folderArtifacts({ folder, site: filePath });
|
|
85
|
+
if (artifacts.length === 0) {
|
|
86
|
+
throw (0, ignis_helpers_1.getError)({
|
|
87
|
+
message: `[IgnisArtifactsPlugin] ArtifactGroup '${folder ?? '<application>'}' resolved to no class | ${filePath} - check the folder name and that its classes carry a stereotype decorator`,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const fields = [];
|
|
91
|
+
for (const { type, field } of generator_1.ArtifactStereotypes.EMIT_ORDER) {
|
|
92
|
+
const locals = artifacts
|
|
93
|
+
.filter(artifact => artifact.type === type)
|
|
94
|
+
.map(artifact => {
|
|
95
|
+
if (isCompiled) {
|
|
96
|
+
return `require(${JSON.stringify(artifact.filePath)}).${artifact.className}`;
|
|
118
97
|
}
|
|
98
|
+
counter += 1;
|
|
99
|
+
const local = `__ignis_group_${counter}`;
|
|
100
|
+
const path = artifact.filePath.split(node_path_1.sep).join('/').replace(/\.ts$/, '');
|
|
101
|
+
imports.push(`import { ${artifact.className} as ${local} } from '${path}';`);
|
|
102
|
+
return local;
|
|
103
|
+
});
|
|
104
|
+
if (locals.length > 0) {
|
|
105
|
+
fields.push(`${field}: [${locals.join(', ')}]`);
|
|
119
106
|
}
|
|
120
107
|
}
|
|
121
|
-
|
|
108
|
+
return `{ ${fields.join(', ')} }`;
|
|
109
|
+
};
|
|
110
|
+
const visit = (node) => {
|
|
111
|
+
const isGroupCall = typescript_1.default.isCallExpression(node) &&
|
|
112
|
+
typescript_1.default.isPropertyAccessExpression(node.expression) &&
|
|
113
|
+
(typescript_1.default.isIdentifier(node.expression.expression) ||
|
|
114
|
+
typescript_1.default.isPropertyAccessExpression(node.expression.expression)) &&
|
|
115
|
+
(node.expression.name.text === 'define' || node.expression.name.text === 'application');
|
|
116
|
+
if (!isGroupCall) {
|
|
117
|
+
typescript_1.default.forEachChild(node, visit);
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const call = node;
|
|
121
|
+
const access = call.expression;
|
|
122
|
+
const target = access.expression;
|
|
123
|
+
const callee = typescript_1.default.isIdentifier(target)
|
|
124
|
+
? target.text
|
|
125
|
+
: target.name.text;
|
|
126
|
+
const isApplication = access.name.text === 'application';
|
|
127
|
+
if (typescript_1.default.isIdentifier(target) && aliases.has(callee)) {
|
|
128
|
+
refuse(call, `ArtifactGroup is imported as ${callee}`);
|
|
129
|
+
}
|
|
130
|
+
if (callee !== 'ArtifactGroup') {
|
|
131
|
+
typescript_1.default.forEachChild(node, visit);
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const [argument] = call.arguments;
|
|
135
|
+
if (isApplication && !argument) {
|
|
136
|
+
edits.push({ at: call.arguments.pos, text: `{ content: ${contentLiteral(undefined)} }` });
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
if (!argument || !typescript_1.default.isObjectLiteralExpression(argument)) {
|
|
140
|
+
refuse(call, 'the argument is not an object literal');
|
|
141
|
+
}
|
|
142
|
+
const literal = argument;
|
|
143
|
+
const named = (name) => literal.properties.find(entry => entry.name !== undefined && typescript_1.default.isIdentifier(entry.name) && entry.name.text === name);
|
|
144
|
+
if (named('content')) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const folderProperty = named('folder');
|
|
148
|
+
if (isApplication && folderProperty) {
|
|
149
|
+
refuse(call, 'ArtifactGroup.application() takes no folder');
|
|
150
|
+
}
|
|
151
|
+
const folderLiteral = folderProperty &&
|
|
152
|
+
typescript_1.default.isPropertyAssignment(folderProperty) &&
|
|
153
|
+
typescript_1.default.isStringLiteral(folderProperty.initializer)
|
|
154
|
+
? folderProperty.initializer.text
|
|
155
|
+
: undefined;
|
|
156
|
+
if (!isApplication && folderLiteral === undefined) {
|
|
157
|
+
refuse(call, 'folder is not a string literal');
|
|
158
|
+
}
|
|
159
|
+
const last = literal.properties[literal.properties.length - 1];
|
|
160
|
+
edits.push({
|
|
161
|
+
at: last ? last.getEnd() : literal.getStart() + 1,
|
|
162
|
+
text: `${last ? ', ' : ''}content: ${contentLiteral(folderLiteral)}`,
|
|
163
|
+
});
|
|
122
164
|
};
|
|
123
165
|
visit(sourceFile);
|
|
124
166
|
let rewritten = source;
|
|
@@ -157,13 +199,25 @@ class IgnisArtifactsPlugin {
|
|
|
157
199
|
directory = parent;
|
|
158
200
|
}
|
|
159
201
|
}
|
|
160
|
-
|
|
202
|
+
// A package that runs from its compiled tree (`main` in dist) defines its groups there too.
|
|
203
|
+
const trees = [];
|
|
161
204
|
for (const source of sources) {
|
|
162
205
|
if (!(0, node_fs_1.existsSync)(source)) {
|
|
163
206
|
continue;
|
|
164
207
|
}
|
|
165
|
-
|
|
166
|
-
|
|
208
|
+
trees.push({ directory: source, pattern: '**/*.ts' });
|
|
209
|
+
for (const entry of (0, node_fs_1.readdirSync)((0, node_path_1.dirname)(source), { withFileTypes: true })) {
|
|
210
|
+
if (entry.isDirectory() &&
|
|
211
|
+
!['src', 'node_modules'].includes(entry.name) &&
|
|
212
|
+
!entry.name.startsWith('.')) {
|
|
213
|
+
trees.push({ directory: (0, node_path_1.join)((0, node_path_1.dirname)(source), entry.name), pattern: '**/*.js' });
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
const files = [];
|
|
218
|
+
for (const { directory, pattern } of trees) {
|
|
219
|
+
for (const relativePath of new Bun.Glob(pattern).scanSync({ cwd: directory })) {
|
|
220
|
+
const file = (0, node_path_1.join)(directory, relativePath);
|
|
167
221
|
if (!relativePath.includes('__tests__') &&
|
|
168
222
|
IgnisArtifactsPlugin.DEFINE_CALL.test((0, node_fs_1.readFileSync)(file, 'utf8'))) {
|
|
169
223
|
files.push(file);
|
|
@@ -172,14 +226,18 @@ class IgnisArtifactsPlugin {
|
|
|
172
226
|
}
|
|
173
227
|
return files;
|
|
174
228
|
}
|
|
175
|
-
/** For `Bun.build({ plugins: [IgnisArtifactsPlugin.create()] })`; `isRuntime` is set by `registerRuntime`, which serves a virtual module instead. */
|
|
229
|
+
/** For `Bun.build({ plugins: [IgnisArtifactsPlugin.create()] })`; `isRuntime` is set by `registerRuntime`, which serves a virtual module instead. `entry` (default: the build's first entrypoint, or `Bun.main` at run time) decides which tree the classes are imported from. */
|
|
176
230
|
static create(opts = {}) {
|
|
177
|
-
const root = opts.root ?? IgnisArtifactsPlugin.defaultRoot();
|
|
178
231
|
const isRuntime = opts.isRuntime ?? false;
|
|
179
|
-
const contents = () => IgnisArtifactsPlugin.render({ root });
|
|
180
232
|
return {
|
|
181
233
|
name: IgnisArtifactsPlugin.NAME,
|
|
182
234
|
setup(build) {
|
|
235
|
+
const [entrypoint] = isRuntime ? [] : build.config.entrypoints;
|
|
236
|
+
const runningEntry = typeof Bun !== 'undefined' && (0, node_fs_1.existsSync)(Bun.main) ? Bun.main : undefined;
|
|
237
|
+
const entry = opts.entry ?? (entrypoint ? (0, node_path_1.resolve)(entrypoint) : runningEntry);
|
|
238
|
+
const root = opts.root ??
|
|
239
|
+
sources_1.ArtifactSources.packageSource({ from: entry ? (0, node_path_1.dirname)(entry) : process.cwd() });
|
|
240
|
+
const contents = () => IgnisArtifactsPlugin.render({ root, entry });
|
|
183
241
|
if (isRuntime) {
|
|
184
242
|
build.module(IgnisArtifactsPlugin.VIRTUAL, () => ({
|
|
185
243
|
contents: contents(),
|
|
@@ -201,7 +259,7 @@ class IgnisArtifactsPlugin {
|
|
|
201
259
|
filePath: args.path,
|
|
202
260
|
source: (0, node_fs_1.readFileSync)(args.path, 'utf8'),
|
|
203
261
|
}),
|
|
204
|
-
loader: 'ts',
|
|
262
|
+
loader: args.path.endsWith('.ts') ? 'ts' : 'js',
|
|
205
263
|
}));
|
|
206
264
|
}
|
|
207
265
|
build.onLoad({ filter: IgnisArtifactsPlugin.AUTO_MODULE }, () => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/bun/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/bun/plugin.ts"],"names":[],"mappings":";;;;;;AACA,0DAAkD;AAClD,qCAA8E;AAC9E,yCAAwD;AACxD,4DAA4B;AAC5B,4CAA0F;AAC1F,uCAA4C;AAE5C,6QAA6Q;AAC7Q,MAAa,oBAAoB;aACf,SAAI,GAAG,iBAAiB,CAAC;aACzB,YAAO,GAAG,iBAAiB,CAAC;aAC5B,gBAAW,GAAG,oBAAoB,CAAC;IAEnD,+IAA+I;aAC/H,gBAAW,GACzB,kHAAkH,CAAC;IAErH,oHAAoH;aACpG,gBAAW,GAAG,kDAAkD,CAAC;aAEzD,gBAAW,GAAG,MAAM,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;IAEjG,8GAA8G;IAC9G,MAAM,CAAC,WAAW,CAAC,OAA0B,EAAE;QAC7C,OAAO,yBAAe,CAAC,aAAa,CAAC;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,oBAAoB,CAAC,cAAc,EAAE;SACzD,CAAC,CAAC;IACL,CAAC;IAED,wLAAwL;IACxL,MAAM,CAAC,cAAc;QACnB,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;QAChE,OAAO,KAAK,IAAI,IAAA,oBAAU,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC;IACrE,CAAC;IAED,+NAA+N;IAC/N,MAAM,CAAC,MAAM,CAAC,IAAsC;QAClD,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,IAAA,wBAAQ,EAAC;gBACb,OAAO,EAAE,0BAA0B,IAAA,mBAAO,EAAC,IAAI,CAAC,0BAA0B,IAAI,6LAA6L;aAC5Q,CAAC,CAAC;QACL,CAAC;QACD,MAAM,OAAO,GAAG,IAAA,gBAAI,EAAC,IAAI,EAAE,wBAAwB,CAAC,CAAC;QACrD,MAAM,EAAE,SAAS,EAAE,GAAG,2BAAe,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC;YACjE,IAAI;YACJ,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;QACH,OAAO,gCAAoB,CAAC,MAAM,CAAC;YACjC,SAAS,EAAE,IAAI,CAAC,KAAK;gBACnB,CAAC,CAAC,yBAAe,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;gBACnE,CAAC,CAAC,SAAS;YACb,OAAO;YACP,UAAU,EAAE,oBAAoB,CAAC,WAAW;YAC5C,OAAO,EAAE,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE;YAC/B,eAAe,EAAE,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED,sYAAsY;IACtY,MAAM,CAAC,aAAa,CAAC,IAA0C;QAC7D,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAClC,MAAM,UAAU,GAAG,oBAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACvF,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;YAC9C,MAAM,QAAQ,GAAG,oBAAE,CAAC,mBAAmB,CAAC,SAAS,CAAC;gBAChD,CAAC,CAAC,SAAS,CAAC,YAAY,EAAE,aAAa;gBACvC,CAAC,CAAC,SAAS,CAAC;YACd,KAAK,MAAM,OAAO,IAAI,QAAQ,IAAI,oBAAE,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACvF,IACE,CAAC,OAAO,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK,eAAe;oBAC/D,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,eAAe,EACrC,CAAC;oBACD,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAwC,EAAE,CAAC;QACtD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,OAAO,GAAG,CAAC,CAAC;QAEhB,MAAM,MAAM,GAAG,CAAC,IAAa,EAAE,MAAc,EAAS,EAAE;YACtD,MAAM,EAAE,IAAI,EAAE,GAAG,UAAU,CAAC,6BAA6B,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC3E,MAAM,IAAA,wBAAQ,EAAC;gBACb,OAAO,EAAE,mDAAmD,QAAQ,IAAI,IAAI,GAAG,CAAC,0BAA0B,MAAM,+HAA+H;aAChP,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAC7C,MAAM,cAAc,GAAG,CAAC,MAA0B,EAAU,EAAE;YAC5D,MAAM,SAAS,GAAG,yBAAe,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC9E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,MAAM,IAAA,wBAAQ,EAAC;oBACb,OAAO,EAAE,yCAAyC,MAAM,IAAI,eAAe,4BAA4B,QAAQ,4EAA4E;iBAC5L,CAAC,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,KAAK,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,+BAAmB,CAAC,UAAU,EAAE,CAAC;gBAC7D,MAAM,MAAM,GAAG,SAAS;qBACrB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC;qBAC1C,GAAG,CAAC,QAAQ,CAAC,EAAE;oBACd,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,WAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,QAAQ,CAAC,SAAS,EAAE,CAAC;oBAC/E,CAAC;oBACD,OAAO,IAAI,CAAC,CAAC;oBACb,MAAM,KAAK,GAAG,iBAAiB,OAAO,EAAE,CAAC;oBACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;oBACzE,OAAO,CAAC,IAAI,CAAC,YAAY,QAAQ,CAAC,SAAS,OAAO,KAAK,YAAY,IAAI,IAAI,CAAC,CAAC;oBAC7E,OAAO,KAAK,CAAC;gBACf,CAAC,CAAC,CAAC;gBACL,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACtB,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAClD,CAAC;YACH,CAAC;YACD,OAAO,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACpC,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC,IAAa,EAAQ,EAAE;YACpC,MAAM,WAAW,GACf,oBAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC;gBACzB,oBAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC;gBAC9C,CAAC,oBAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;oBAC1C,oBAAE,CAAC,0BAA0B,CAAC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;gBAC5D,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC,CAAC;YAC1F,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,oBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,MAAM,IAAI,GAAG,IAAyB,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAyC,CAAC;YAC9D,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC;YACjC,MAAM,MAAM,GAAG,oBAAE,CAAC,YAAY,CAAC,MAAM,CAAC;gBACpC,CAAC,CAAC,MAAM,CAAC,IAAI;gBACb,CAAC,CAAE,MAAsC,CAAC,IAAI,CAAC,IAAI,CAAC;YACtD,MAAM,aAAa,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,aAAa,CAAC;YACzD,IAAI,oBAAE,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,EAAE,gCAAgC,MAAM,EAAE,CAAC,CAAC;YACzD,CAAC;YACD,IAAI,MAAM,KAAK,eAAe,EAAE,CAAC;gBAC/B,oBAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;gBAC7B,OAAO;YACT,CAAC;YAED,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YAClC,IAAI,aAAa,IAAI,CAAC,QAAQ,EAAE,CAAC;gBAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,cAAc,cAAc,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;gBAC1F,OAAO;YACT,CAAC;YACD,IAAI,CAAC,QAAQ,IAAI,CAAC,oBAAE,CAAC,yBAAyB,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACzD,MAAM,CAAC,IAAI,EAAE,uCAAuC,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,OAAO,GAAG,QAAsC,CAAC;YACvD,MAAM,KAAK,GAAG,CAAC,IAAY,EAA2C,EAAE,CACtE,OAAO,CAAC,UAAU,CAAC,IAAI,CACrB,KAAK,CAAC,EAAE,CACN,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,oBAAE,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,KAAK,IAAI,CACtF,CAAC;YACJ,IAAI,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACrB,OAAO;YACT,CAAC;YAED,MAAM,cAAc,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC;YACvC,IAAI,aAAa,IAAI,cAAc,EAAE,CAAC;gBACpC,MAAM,CAAC,IAAI,EAAE,6CAA6C,CAAC,CAAC;YAC9D,CAAC;YACD,MAAM,aAAa,GACjB,cAAc;gBACd,oBAAE,CAAC,oBAAoB,CAAC,cAAc,CAAC;gBACvC,oBAAE,CAAC,eAAe,CAAC,cAAc,CAAC,WAAW,CAAC;gBAC5C,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI;gBACjC,CAAC,CAAC,SAAS,CAAC;YAChB,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;gBAClD,MAAM,CAAC,IAAI,EAAE,gCAAgC,CAAC,CAAC;YACjD,CAAC;YAED,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YAC/D,KAAK,CAAC,IAAI,CAAC;gBACT,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;gBACjD,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,YAAY,cAAc,CAAC,aAAa,CAAC,EAAE;aACrE,CAAC,CAAC;QACL,CAAC,CAAC;QACF,KAAK,CAAC,UAAU,CAAC,CAAC;QAElB,IAAI,SAAS,GAAG,MAAM,CAAC;QACvB,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACxE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACjF,CAAC;QACD,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAChF,CAAC;IAED,wPAAwP;IACxP,MAAM,CAAC,oBAAoB,CAAC,IAAsB;QAChD,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,gBAAgB,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC;QACvC,MAAM,YAAY,GAAG,IAAA,gBAAI,EAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,QAAQ,GAAG,IAAA,oBAAU,EAAC,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAA,sBAAY,EAAC,YAAY,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChG,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;YACxB,GAAG,QAAQ,CAAC,YAAY;YACxB,GAAG,QAAQ,CAAC,eAAe;YAC3B,GAAG,QAAQ,CAAC,gBAAgB;SAC7B,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,SAAS,GAAG,gBAAgB,CAAC;YACjC,OAAO,IAAI,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;gBACrD,IAAI,IAAA,oBAAU,EAAC,MAAM,CAAC,EAAE,CAAC;oBACvB,MAAM,IAAI,GAAG,IAAA,sBAAY,EAAC,MAAM,CAAC,CAAC;oBAClC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;wBAC/E,OAAO,CAAC,GAAG,CAAC,IAAA,gBAAI,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;oBACjC,CAAC;oBACD,MAAM;gBACR,CAAC;gBACD,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC;gBAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,MAAM;gBACR,CAAC;gBACD,SAAS,GAAG,MAAM,CAAC;YACrB,CAAC;QACH,CAAC;QAED,4FAA4F;QAC5F,MAAM,KAAK,GAAkD,EAAE,CAAC;QAChE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAA,oBAAU,EAAC,MAAM,CAAC,EAAE,CAAC;gBACxB,SAAS;YACX,CAAC;YACD,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;YACtD,KAAK,MAAM,KAAK,IAAI,IAAA,qBAAW,EAAC,IAAA,mBAAO,EAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;gBAC1E,IACE,KAAK,CAAC,WAAW,EAAE;oBACnB,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;oBAC7C,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAC3B,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,EAAE,SAAS,EAAE,IAAA,gBAAI,EAAC,IAAA,mBAAO,EAAC,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;gBACnF,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,KAAK,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,KAAK,EAAE,CAAC;YAC3C,KAAK,MAAM,YAAY,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBAC9E,MAAM,IAAI,GAAG,IAAA,gBAAI,EAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAC3C,IACE,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC;oBACnC,oBAAoB,CAAC,WAAW,CAAC,IAAI,CAAC,IAAA,sBAAY,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC,EACjE,CAAC;oBACD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,kRAAkR;IAClR,MAAM,CAAC,MAAM,CAAC,OAA+D,EAAE;QAC7E,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;QAE1C,OAAO;YACL,IAAI,EAAE,oBAAoB,CAAC,IAAI;YAC/B,KAAK,CAAC,KAAK;gBACT,MAAM,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;gBAC/D,MAAM,YAAY,GAChB,OAAO,GAAG,KAAK,WAAW,IAAI,IAAA,oBAAU,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;gBAC5E,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC;gBAC9E,MAAM,IAAI,GACR,IAAI,CAAC,IAAI;oBACT,yBAAe,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAA,mBAAO,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;gBAClF,MAAM,QAAQ,GAAG,GAAW,EAAE,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBAE5E,IAAI,SAAS,EAAE,CAAC;oBACd,KAAK,CAAC,MAAM,CAAC,oBAAoB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;wBAChD,QAAQ,EAAE,QAAQ,EAAE;wBACpB,MAAM,EAAE,IAAI;qBACb,CAAC,CAAC,CAAC;oBACJ,OAAO;gBACT,CAAC;gBAED,MAAM,WAAW,GAAG,IAAA,gBAAI,EAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAC;gBAClE,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAChF,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,0BAA0B,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC1D,QAAQ,EAAE,QAAQ,EAAE;oBACpB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC,CAAC;gBACJ,MAAM,UAAU,GAAG,oBAAoB,CAAC,oBAAoB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;gBACvE,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,EAAE,MAAM,CAAC,CAAC,CAAC;oBACrF,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,MAAM,CAAC,OAAO,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;wBAC1E,QAAQ,EAAE,oBAAoB,CAAC,aAAa,CAAC;4BAC3C,QAAQ,EAAE,IAAI,CAAC,IAAI;4BACnB,MAAM,EAAE,IAAA,sBAAY,EAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC;yBACxC,CAAC;wBACF,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI;qBAChD,CAAC,CAAC,CAAC;gBACN,CAAC;gBACD,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,oBAAoB,CAAC,WAAW,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBAChE,QAAQ,EAAE,YAAY,oBAAoB,CAAC,WAAW,YAAY,oBAAoB,CAAC,OAAO,0GAA0G,oBAAoB,CAAC,WAAW,QAAQ;oBAChP,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC,CAAC;YACN,CAAC;SACF,CAAC;IACJ,CAAC;IAED,gFAAgF;IAChF,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,OAA0B,EAAE;QACvD,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC;YACvE,OAAO;QACT,CAAC;QACD,MAAM,GAAG,CAAC,MAAM,CAAC,oBAAoB,CAAC,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;QAC5E,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAClE,CAAC;;AAnTH,oDAoTC"}
|
|
@@ -6,11 +6,16 @@ export declare class ArtifactSources {
|
|
|
6
6
|
static packageSource(opts?: {
|
|
7
7
|
from?: string;
|
|
8
8
|
}): string;
|
|
9
|
-
/** The decorated classes under a directory named `folder` in the package whose source holds `site
|
|
9
|
+
/** The decorated classes under a directory named `folder` in the package whose source holds `site`, each pointing at the copy that runs beside `site` (see `runningArtifacts`). */
|
|
10
10
|
static folderArtifacts(opts: {
|
|
11
|
-
folder: string;
|
|
11
|
+
folder: string | undefined;
|
|
12
12
|
site: string;
|
|
13
13
|
}): IScannedArtifact[];
|
|
14
|
+
/** The scanned classes as the code at `from` runs them: unchanged when `from` is in `src`; otherwise each `src/<path>.ts` becomes `<tree>/<path>.js` in the compiled tree `from` sits in (`dist`, `dist/esm`), so an application registers the very class its code uses, never a second copy loaded from `src`. */
|
|
15
|
+
static runningArtifacts(opts: {
|
|
16
|
+
artifacts: IScannedArtifact[];
|
|
17
|
+
from: string;
|
|
18
|
+
}): IScannedArtifact[];
|
|
14
19
|
/** Forgets every cached scan - for a long-lived process that rebuilds (a watch mode). */
|
|
15
20
|
static clear(): void;
|
|
16
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/bun/sources.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,qKAAqK;AACrK,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAEtE,uGAAuG;IACvG,MAAM,CAAC,aAAa,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAa1D,
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/bun/sources.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,qKAAqK;AACrK,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAEtE,uGAAuG;IACvG,MAAM,CAAC,aAAa,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAa1D,mLAAmL;IACnL,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,EAAE;IAsB9F,mTAAmT;IACnT,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAC5B,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,gBAAgB,EAAE;IA2BtB,yFAAyF;IACzF,MAAM,CAAC,KAAK,IAAI,IAAI;CAGrB"}
|
package/dist/cjs/bun/sources.js
CHANGED
|
@@ -21,14 +21,9 @@ class ArtifactSources {
|
|
|
21
21
|
}
|
|
22
22
|
return (0, node_path_1.join)(directory, 'src');
|
|
23
23
|
}
|
|
24
|
-
/** The decorated classes under a directory named `folder` in the package whose source holds `site
|
|
24
|
+
/** The decorated classes under a directory named `folder` in the package whose source holds `site`, each pointing at the copy that runs beside `site` (see `runningArtifacts`). */
|
|
25
25
|
static folderArtifacts(opts) {
|
|
26
26
|
const packageSource = ArtifactSources.packageSource({ from: (0, node_path_1.dirname)(opts.site) });
|
|
27
|
-
if (!(0, node_path_1.resolve)(opts.site).startsWith(`${packageSource}${node_path_1.sep}`)) {
|
|
28
|
-
throw (0, ignis_helpers_1.getError)({
|
|
29
|
-
message: `[ArtifactGroup] '${opts.folder}' is defined at ${opts.site}, outside the package source ${packageSource} | A package consumed through dist must ship its groups filled by its own build (IgnisArtifactsPlugin), or be consumed from source`,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
27
|
let artifacts = ArtifactSources.scans.get(packageSource);
|
|
33
28
|
if (!artifacts) {
|
|
34
29
|
artifacts = generator_1.ArtifactScanner.getInstance().scanWithReport({
|
|
@@ -37,7 +32,35 @@ class ArtifactSources {
|
|
|
37
32
|
}).artifacts;
|
|
38
33
|
ArtifactSources.scans.set(packageSource, artifacts);
|
|
39
34
|
}
|
|
40
|
-
|
|
35
|
+
const { folder } = opts;
|
|
36
|
+
const picked = folder === undefined
|
|
37
|
+
? artifacts
|
|
38
|
+
: artifacts.filter(artifact => (0, node_path_1.relative)(packageSource, artifact.filePath).split(node_path_1.sep).slice(0, -1).includes(folder));
|
|
39
|
+
return ArtifactSources.runningArtifacts({ artifacts: picked, from: opts.site });
|
|
40
|
+
}
|
|
41
|
+
/** The scanned classes as the code at `from` runs them: unchanged when `from` is in `src`; otherwise each `src/<path>.ts` becomes `<tree>/<path>.js` in the compiled tree `from` sits in (`dist`, `dist/esm`), so an application registers the very class its code uses, never a second copy loaded from `src`. */
|
|
42
|
+
static runningArtifacts(opts) {
|
|
43
|
+
const from = (0, node_path_1.resolve)(opts.from);
|
|
44
|
+
const packageSource = ArtifactSources.packageSource({ from: (0, node_path_1.dirname)(from) });
|
|
45
|
+
const [probe] = opts.artifacts;
|
|
46
|
+
if (!probe || from.startsWith(`${packageSource}${node_path_1.sep}`)) {
|
|
47
|
+
return opts.artifacts;
|
|
48
|
+
}
|
|
49
|
+
const packageRoot = (0, node_path_1.dirname)(packageSource);
|
|
50
|
+
const compiledPath = (target) => (0, node_path_1.join)(target.tree, (0, node_path_1.relative)(packageSource, target.artifact.filePath).replace(/\.ts$/, '.js'));
|
|
51
|
+
const segments = (0, node_path_1.relative)(packageRoot, (0, node_path_1.dirname)(from)).split(node_path_1.sep);
|
|
52
|
+
const tree = segments
|
|
53
|
+
.map((_segment, index) => (0, node_path_1.join)(packageRoot, ...segments.slice(0, index + 1)))
|
|
54
|
+
.find(candidate => (0, node_fs_1.existsSync)(compiledPath({ tree: candidate, artifact: probe })));
|
|
55
|
+
return opts.artifacts.map(artifact => {
|
|
56
|
+
const compiled = tree ? compiledPath({ tree, artifact }) : undefined;
|
|
57
|
+
if (!compiled || !(0, node_fs_1.existsSync)(compiled)) {
|
|
58
|
+
throw (0, ignis_helpers_1.getError)({
|
|
59
|
+
message: `[ArtifactSources] ${artifact.filePath} has no compiled copy beside ${from} | The package runs from a compiled tree that is older than its src - rebuild it (or run it from src)`,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return { ...artifact, filePath: compiled };
|
|
63
|
+
});
|
|
41
64
|
}
|
|
42
65
|
/** Forgets every cached scan - for a long-lived process that rebuilds (a watch mode). */
|
|
43
66
|
static clear() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/bun/sources.ts"],"names":[],"mappings":";;;AAAA,0DAAkD;AAClD,qCAAqC;AACrC,yCAAkE;AAClE,4CAAsE;AAEtE,qKAAqK;AACrK,MAAa,eAAe;aACF,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEtE,uGAAuG;IACvG,MAAM,CAAC,aAAa,CAAC,OAA0B,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,OAAO,CAAC,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC;YAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,IAAA,gBAAI,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;QACD,OAAO,IAAA,gBAAI,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/bun/sources.ts"],"names":[],"mappings":";;;AAAA,0DAAkD;AAClD,qCAAqC;AACrC,yCAAkE;AAClE,4CAAsE;AAEtE,qKAAqK;AACrK,MAAa,eAAe;aACF,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEtE,uGAAuG;IACvG,MAAM,CAAC,aAAa,CAAC,OAA0B,EAAE;QAC/C,MAAM,KAAK,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,OAAO,CAAC,IAAA,oBAAU,EAAC,IAAA,gBAAI,EAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,IAAA,mBAAO,EAAC,SAAS,CAAC,CAAC;YAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,IAAA,gBAAI,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;QACD,OAAO,IAAA,gBAAI,EAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,mLAAmL;IACnL,MAAM,CAAC,eAAe,CAAC,IAAkD;QACvE,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAElF,IAAI,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,SAAS,GAAG,2BAAe,CAAC,WAAW,EAAE,CAAC,cAAc,CAAC;gBACvD,IAAI,EAAE,aAAa;gBACnB,eAAe,EAAE,IAAI;aACtB,CAAC,CAAC,SAAS,CAAC;YACb,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACtD,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,MAAM,GACV,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAC1B,IAAA,oBAAQ,EAAC,aAAa,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CACpF,CAAC;QACR,OAAO,eAAe,CAAC,gBAAgB,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,mTAAmT;IACnT,MAAM,CAAC,gBAAgB,CAAC,IAGvB;QACC,MAAM,IAAI,GAAG,IAAA,mBAAO,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChC,MAAM,aAAa,GAAG,eAAe,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,IAAA,mBAAO,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,aAAa,GAAG,eAAG,EAAE,CAAC,EAAE,CAAC;YACxD,OAAO,IAAI,CAAC,SAAS,CAAC;QACxB,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,mBAAO,EAAC,aAAa,CAAC,CAAC;QAC3C,MAAM,YAAY,GAAG,CAAC,MAAoD,EAAU,EAAE,CACpF,IAAA,gBAAI,EAAC,MAAM,CAAC,IAAI,EAAE,IAAA,oBAAQ,EAAC,aAAa,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC;QAC/F,MAAM,QAAQ,GAAG,IAAA,oBAAQ,EAAC,WAAW,EAAE,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,eAAG,CAAC,CAAC;QACjE,MAAM,IAAI,GAAG,QAAQ;aAClB,GAAG,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,CAAC,IAAA,gBAAI,EAAC,WAAW,EAAE,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;aAC5E,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,IAAA,oBAAU,EAAC,YAAY,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QAErF,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACnC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACrE,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAA,oBAAU,EAAC,QAAQ,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAA,wBAAQ,EAAC;oBACb,OAAO,EAAE,qBAAqB,QAAQ,CAAC,QAAQ,gCAAgC,IAAI,uGAAuG;iBAC3L,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,GAAG,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QAC7C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,yFAAyF;IACzF,MAAM,CAAC,KAAK;QACV,eAAe,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;IAChC,CAAC;;AA1EH,0CA2EC"}
|
|
@@ -7,7 +7,7 @@ export class GroupArtifactsResolver {
|
|
|
7
7
|
static { this.REALM_SLOT = Symbol.for('@venizia/ignis-kernel:artifact-group-resolver'); }
|
|
8
8
|
static async resolve(opts) {
|
|
9
9
|
const { folder, site } = opts.group;
|
|
10
|
-
if (!
|
|
10
|
+
if (!site) {
|
|
11
11
|
throw getError({
|
|
12
12
|
message: `[ArtifactGroup] '${folder ?? '<application>'}' has no call site to resolve from | Define it with ArtifactGroup.define in the shared package's own source`,
|
|
13
13
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-resolver.js","sourceRoot":"","sources":["../../../src/bun/group-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAgC,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,2OAA2O;AAC3O,MAAM,OAAO,sBAAsB;IACjC,uGAAuG;aACvF,eAAU,GAAG,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAEzF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAEpB;QACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"group-resolver.js","sourceRoot":"","sources":["../../../src/bun/group-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAgC,MAAM,cAAc,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,2OAA2O;AAC3O,MAAM,OAAO,sBAAsB;IACjC,uGAAuG;aACvF,eAAU,GAAG,MAAM,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAEzF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAEpB;QACC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,QAAQ,CAAC;gBACb,OAAO,EAAE,oBAAoB,MAAM,IAAI,eAAe,6GAA6G;aACpK,CAAC,CAAC;QACL,CAAC;QAED,MAAM,KAAK,GAA2C,EAAE,CAAC;QACzD,KAAK,MAAM,QAAQ,IAAI,eAAe,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YACzE,MAAM,KAAK,GAAG,mBAAmB,CAAC,UAAU,CAAC,IAAI,CAC/C,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CACtC,EAAE,KAAK,CAAC;YACT,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,SAAS;YACX,CAAC;YACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;YAC/C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QACvE,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,mIAAmI;IACnI,MAAM,CAAC,OAAO;QACZ,MAAM,QAAQ,GAAY,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;QACrF,MAAM,MAAM,GACV,OAAO,QAAQ,KAAK,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACpE,MAAM,CAAC,OAAO,GAAG,CAAC,WAEjB,EAAE,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IACrE,CAAC"}
|
package/dist/esm/bun/plugin.d.ts
CHANGED
|
@@ -9,15 +9,18 @@ export declare class IgnisArtifactsPlugin {
|
|
|
9
9
|
/** A text test for a file worth parsing: `ArtifactGroup.define(`, with any spacing or line break around the dot. */
|
|
10
10
|
static readonly DEFINE_CALL: RegExp;
|
|
11
11
|
private static readonly RUNTIME_KEY;
|
|
12
|
-
/** The `src` beside the nearest `package.json` at or above `from` (default: the
|
|
12
|
+
/** The `src` beside the nearest `package.json` at or above `from` (default: the entry module's directory). */
|
|
13
13
|
static defaultRoot(opts?: {
|
|
14
14
|
from?: string;
|
|
15
15
|
}): string;
|
|
16
|
-
/** The
|
|
16
|
+
/** The entry module's directory (`Bun.main`), so the root never depends on where the process was started; the working directory only when there is no entry file (`bun -e`, a REPL). */
|
|
17
|
+
static entryDirectory(): string;
|
|
18
|
+
/** The index as module source: every import absolute, since a virtual module has no directory to resolve from. With `entry` in a compiled tree, each class is imported from that tree (`ArtifactSources.runningArtifacts`). */
|
|
17
19
|
static render(opts: {
|
|
18
20
|
root: string;
|
|
21
|
+
entry?: string;
|
|
19
22
|
}): string;
|
|
20
|
-
/** Rewrites every `ArtifactGroup.define({ folder: '<literal>' })` in a source file to carry its classes as `content`, imported by absolute path - a binary then holds each group's list and never scans. A
|
|
23
|
+
/** Rewrites every `ArtifactGroup.define({ folder: '<literal>' })` and `ArtifactGroup.application()` in a source file to carry its classes as `content`, imported by absolute path - a binary then holds each group's list and never scans. A group with no decorated class, or a call the plugin cannot read (an aliased `ArtifactGroup`, a folder that is not a string literal), fails the build. */
|
|
21
24
|
static rewriteGroups(opts: {
|
|
22
25
|
filePath: string;
|
|
23
26
|
source: string;
|
|
@@ -26,9 +29,10 @@ export declare class IgnisArtifactsPlugin {
|
|
|
26
29
|
static groupDefinitionFiles(opts: {
|
|
27
30
|
root: string;
|
|
28
31
|
}): string[];
|
|
29
|
-
/** For `Bun.build({ plugins: [IgnisArtifactsPlugin.create()] })`; `isRuntime` is set by `registerRuntime`, which serves a virtual module instead. */
|
|
32
|
+
/** For `Bun.build({ plugins: [IgnisArtifactsPlugin.create()] })`; `isRuntime` is set by `registerRuntime`, which serves a virtual module instead. `entry` (default: the build's first entrypoint, or `Bun.main` at run time) decides which tree the classes are imported from. */
|
|
30
33
|
static create(opts?: {
|
|
31
34
|
root?: string;
|
|
35
|
+
entry?: string;
|
|
32
36
|
isRuntime?: boolean;
|
|
33
37
|
}): BunPlugin;
|
|
34
38
|
/** Registers the run-time plugin once per process; a second call is a no-op. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/bun/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAQrC,6QAA6Q;AAC7Q,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,qBAAqB;IACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,qBAAqB;IAC5C,MAAM,CAAC,QAAQ,CAAC,WAAW,wBAAwB;IAEnD,+IAA+I;IAC/I,MAAM,CAAC,QAAQ,CAAC,WAAW,SAC0F;IAErH,oHAAoH;IACpH,MAAM,CAAC,QAAQ,CAAC,WAAW,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../src/bun/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAQrC,6QAA6Q;AAC7Q,qBAAa,oBAAoB;IAC/B,MAAM,CAAC,QAAQ,CAAC,IAAI,qBAAqB;IACzC,MAAM,CAAC,QAAQ,CAAC,OAAO,qBAAqB;IAC5C,MAAM,CAAC,QAAQ,CAAC,WAAW,wBAAwB;IAEnD,+IAA+I;IAC/I,MAAM,CAAC,QAAQ,CAAC,WAAW,SAC0F;IAErH,oHAAoH;IACpH,MAAM,CAAC,QAAQ,CAAC,WAAW,SAAsD;IAEjF,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAA8D;IAEjG,8GAA8G;IAC9G,MAAM,CAAC,WAAW,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAMxD,wLAAwL;IACxL,MAAM,CAAC,cAAc,IAAI,MAAM;IAK/B,+NAA+N;IAC/N,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAuB7D,sYAAsY;IACtY,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM;IAsIxE,wPAAwP;IACxP,MAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,EAAE;IAgE7D,kRAAkR;IAClR,MAAM,CAAC,MAAM,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,SAAS;IAgD3F,gFAAgF;WACnE,eAAe,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,IAAI,CAAC;CAO1E"}
|
package/dist/esm/bun/plugin.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getError } from '@venizia/ignis-helpers';
|
|
2
|
-
import { existsSync, readFileSync, realpathSync } from 'node:fs';
|
|
2
|
+
import { existsSync, readdirSync, readFileSync, realpathSync } from 'node:fs';
|
|
3
3
|
import { dirname, join, resolve, sep } from 'node:path';
|
|
4
4
|
import ts from 'typescript';
|
|
5
5
|
import { ArtifactIndexEmitter, ArtifactScanner, ArtifactStereotypes } from '../generator/index.js';
|
|
@@ -12,29 +12,43 @@ export class IgnisArtifactsPlugin {
|
|
|
12
12
|
/** `@venizia/ignis-boot/auto`, from source or from either dist format - replaced at build time by a static re-export of the virtual module. */
|
|
13
13
|
static { this.AUTO_MODULE = /[\\/](?:@venizia[\\/]ignis-boot|packages[\\/]boot)[\\/](?:dist[\\/](?:esm|cjs)|src)[\\/]bun[\\/]auto\.(?:ts|js)$/; }
|
|
14
14
|
/** A text test for a file worth parsing: `ArtifactGroup.define(`, with any spacing or line break around the dot. */
|
|
15
|
-
static { this.DEFINE_CALL = /ArtifactGroup\s*\.\s*define\s*\(/; }
|
|
15
|
+
static { this.DEFINE_CALL = /ArtifactGroup\s*\.\s*(?:define|application)\s*\(/; }
|
|
16
16
|
static { this.RUNTIME_KEY = Symbol.for('@venizia/ignis-boot:artifacts-runtime-plugin'); }
|
|
17
|
-
/** The `src` beside the nearest `package.json` at or above `from` (default: the
|
|
17
|
+
/** The `src` beside the nearest `package.json` at or above `from` (default: the entry module's directory). */
|
|
18
18
|
static defaultRoot(opts = {}) {
|
|
19
|
-
return ArtifactSources.packageSource(
|
|
19
|
+
return ArtifactSources.packageSource({
|
|
20
|
+
from: opts.from ?? IgnisArtifactsPlugin.entryDirectory(),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
/** The entry module's directory (`Bun.main`), so the root never depends on where the process was started; the working directory only when there is no entry file (`bun -e`, a REPL). */
|
|
24
|
+
static entryDirectory() {
|
|
25
|
+
const entry = typeof Bun === 'undefined' ? undefined : Bun.main;
|
|
26
|
+
return entry && existsSync(entry) ? dirname(entry) : process.cwd();
|
|
20
27
|
}
|
|
21
|
-
/** The index as module source: every import absolute, since a virtual module has no directory to resolve from. */
|
|
28
|
+
/** The index as module source: every import absolute, since a virtual module has no directory to resolve from. With `entry` in a compiled tree, each class is imported from that tree (`ArtifactSources.runningArtifacts`). */
|
|
22
29
|
static render(opts) {
|
|
23
30
|
const root = resolve(opts.root);
|
|
31
|
+
if (!existsSync(root)) {
|
|
32
|
+
throw getError({
|
|
33
|
+
message: `[IgnisArtifactsPlugin] ${dirname(root)} has no src directory (${root}) | Auto artifacts scan the src beside the package.json of the entry module; pass IgnisArtifactsPlugin.create({ root }), or use ArtifactGroup.application() in the application's own source`,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
24
36
|
const outFile = join(root, '__ignis_artifacts__.ts');
|
|
25
37
|
const { artifacts } = ArtifactScanner.getInstance().scanWithReport({
|
|
26
38
|
root,
|
|
27
39
|
followReexports: true,
|
|
28
40
|
});
|
|
29
41
|
return ArtifactIndexEmitter.render({
|
|
30
|
-
artifacts
|
|
42
|
+
artifacts: opts.entry
|
|
43
|
+
? ArtifactSources.runningArtifacts({ artifacts, from: opts.entry })
|
|
44
|
+
: artifacts,
|
|
31
45
|
outFile,
|
|
32
46
|
exportName: IgnisArtifactsPlugin.EXPORT_NAME,
|
|
33
47
|
command: { root, out: outFile },
|
|
34
48
|
absoluteImports: true,
|
|
35
49
|
});
|
|
36
50
|
}
|
|
37
|
-
/** Rewrites every `ArtifactGroup.define({ folder: '<literal>' })` in a source file to carry its classes as `content`, imported by absolute path - a binary then holds each group's list and never scans. A
|
|
51
|
+
/** Rewrites every `ArtifactGroup.define({ folder: '<literal>' })` and `ArtifactGroup.application()` in a source file to carry its classes as `content`, imported by absolute path - a binary then holds each group's list and never scans. A group with no decorated class, or a call the plugin cannot read (an aliased `ArtifactGroup`, a folder that is not a string literal), fails the build. */
|
|
38
52
|
static rewriteGroups(opts) {
|
|
39
53
|
const { filePath, source } = opts;
|
|
40
54
|
const sourceFile = ts.createSourceFile(filePath, source, ts.ScriptTarget.Latest, true);
|
|
@@ -56,63 +70,91 @@ export class IgnisArtifactsPlugin {
|
|
|
56
70
|
const refuse = (node, reason) => {
|
|
57
71
|
const { line } = sourceFile.getLineAndCharacterOfPosition(node.getStart());
|
|
58
72
|
throw getError({
|
|
59
|
-
message: `[IgnisArtifactsPlugin] An ArtifactGroup
|
|
73
|
+
message: `[IgnisArtifactsPlugin] An ArtifactGroup call at ${filePath}:${line + 1} cannot be rewritten | ${reason} - write ArtifactGroup.define({ folder: '<name>' }) or ArtifactGroup.application() with the class imported under its own name`,
|
|
60
74
|
});
|
|
61
75
|
};
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
const named = (name) => literal.properties.find(entry => entry.name && ts.isIdentifier(entry.name) && entry.name.text === name);
|
|
78
|
-
const folderProperty = named('folder');
|
|
79
|
-
if (!named('content')) {
|
|
80
|
-
if (!folderProperty ||
|
|
81
|
-
!ts.isPropertyAssignment(folderProperty) ||
|
|
82
|
-
!ts.isStringLiteral(folderProperty.initializer)) {
|
|
83
|
-
refuse(node, 'folder is not a string literal');
|
|
84
|
-
}
|
|
85
|
-
const folder = folderProperty.initializer.text;
|
|
86
|
-
const artifacts = ArtifactSources.folderArtifacts({ folder, site: filePath });
|
|
87
|
-
if (artifacts.length === 0) {
|
|
88
|
-
throw getError({
|
|
89
|
-
message: `[IgnisArtifactsPlugin] ArtifactGroup '${folder}' resolved to no class | ${filePath} - check the folder name and that its classes carry a stereotype decorator`,
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
const fields = [];
|
|
93
|
-
for (const { type, field } of ArtifactStereotypes.EMIT_ORDER) {
|
|
94
|
-
const locals = artifacts
|
|
95
|
-
.filter(artifact => artifact.type === type)
|
|
96
|
-
.map(artifact => {
|
|
97
|
-
counter += 1;
|
|
98
|
-
const local = `__ignis_group_${counter}`;
|
|
99
|
-
const path = artifact.filePath.split(sep).join('/').replace(/\.ts$/, '');
|
|
100
|
-
imports.push(`import { ${artifact.className} as ${local} } from '${path}';`);
|
|
101
|
-
return local;
|
|
102
|
-
});
|
|
103
|
-
if (locals.length > 0) {
|
|
104
|
-
fields.push(`${field}: [${locals.join(', ')}]`);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
const last = literal.properties[literal.properties.length - 1];
|
|
108
|
-
edits.push({
|
|
109
|
-
at: last ? last.getEnd() : literal.getStart() + 1,
|
|
110
|
-
text: `${last ? ', ' : ''}content: { ${fields.join(', ')} }`,
|
|
111
|
-
});
|
|
76
|
+
const isCompiled = !filePath.endsWith('.ts');
|
|
77
|
+
const contentLiteral = (folder) => {
|
|
78
|
+
const artifacts = ArtifactSources.folderArtifacts({ folder, site: filePath });
|
|
79
|
+
if (artifacts.length === 0) {
|
|
80
|
+
throw getError({
|
|
81
|
+
message: `[IgnisArtifactsPlugin] ArtifactGroup '${folder ?? '<application>'}' resolved to no class | ${filePath} - check the folder name and that its classes carry a stereotype decorator`,
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const fields = [];
|
|
85
|
+
for (const { type, field } of ArtifactStereotypes.EMIT_ORDER) {
|
|
86
|
+
const locals = artifacts
|
|
87
|
+
.filter(artifact => artifact.type === type)
|
|
88
|
+
.map(artifact => {
|
|
89
|
+
if (isCompiled) {
|
|
90
|
+
return `require(${JSON.stringify(artifact.filePath)}).${artifact.className}`;
|
|
112
91
|
}
|
|
92
|
+
counter += 1;
|
|
93
|
+
const local = `__ignis_group_${counter}`;
|
|
94
|
+
const path = artifact.filePath.split(sep).join('/').replace(/\.ts$/, '');
|
|
95
|
+
imports.push(`import { ${artifact.className} as ${local} } from '${path}';`);
|
|
96
|
+
return local;
|
|
97
|
+
});
|
|
98
|
+
if (locals.length > 0) {
|
|
99
|
+
fields.push(`${field}: [${locals.join(', ')}]`);
|
|
113
100
|
}
|
|
114
101
|
}
|
|
115
|
-
|
|
102
|
+
return `{ ${fields.join(', ')} }`;
|
|
103
|
+
};
|
|
104
|
+
const visit = (node) => {
|
|
105
|
+
const isGroupCall = ts.isCallExpression(node) &&
|
|
106
|
+
ts.isPropertyAccessExpression(node.expression) &&
|
|
107
|
+
(ts.isIdentifier(node.expression.expression) ||
|
|
108
|
+
ts.isPropertyAccessExpression(node.expression.expression)) &&
|
|
109
|
+
(node.expression.name.text === 'define' || node.expression.name.text === 'application');
|
|
110
|
+
if (!isGroupCall) {
|
|
111
|
+
ts.forEachChild(node, visit);
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
const call = node;
|
|
115
|
+
const access = call.expression;
|
|
116
|
+
const target = access.expression;
|
|
117
|
+
const callee = ts.isIdentifier(target)
|
|
118
|
+
? target.text
|
|
119
|
+
: target.name.text;
|
|
120
|
+
const isApplication = access.name.text === 'application';
|
|
121
|
+
if (ts.isIdentifier(target) && aliases.has(callee)) {
|
|
122
|
+
refuse(call, `ArtifactGroup is imported as ${callee}`);
|
|
123
|
+
}
|
|
124
|
+
if (callee !== 'ArtifactGroup') {
|
|
125
|
+
ts.forEachChild(node, visit);
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
const [argument] = call.arguments;
|
|
129
|
+
if (isApplication && !argument) {
|
|
130
|
+
edits.push({ at: call.arguments.pos, text: `{ content: ${contentLiteral(undefined)} }` });
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (!argument || !ts.isObjectLiteralExpression(argument)) {
|
|
134
|
+
refuse(call, 'the argument is not an object literal');
|
|
135
|
+
}
|
|
136
|
+
const literal = argument;
|
|
137
|
+
const named = (name) => literal.properties.find(entry => entry.name !== undefined && ts.isIdentifier(entry.name) && entry.name.text === name);
|
|
138
|
+
if (named('content')) {
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
const folderProperty = named('folder');
|
|
142
|
+
if (isApplication && folderProperty) {
|
|
143
|
+
refuse(call, 'ArtifactGroup.application() takes no folder');
|
|
144
|
+
}
|
|
145
|
+
const folderLiteral = folderProperty &&
|
|
146
|
+
ts.isPropertyAssignment(folderProperty) &&
|
|
147
|
+
ts.isStringLiteral(folderProperty.initializer)
|
|
148
|
+
? folderProperty.initializer.text
|
|
149
|
+
: undefined;
|
|
150
|
+
if (!isApplication && folderLiteral === undefined) {
|
|
151
|
+
refuse(call, 'folder is not a string literal');
|
|
152
|
+
}
|
|
153
|
+
const last = literal.properties[literal.properties.length - 1];
|
|
154
|
+
edits.push({
|
|
155
|
+
at: last ? last.getEnd() : literal.getStart() + 1,
|
|
156
|
+
text: `${last ? ', ' : ''}content: ${contentLiteral(folderLiteral)}`,
|
|
157
|
+
});
|
|
116
158
|
};
|
|
117
159
|
visit(sourceFile);
|
|
118
160
|
let rewritten = source;
|
|
@@ -151,13 +193,25 @@ export class IgnisArtifactsPlugin {
|
|
|
151
193
|
directory = parent;
|
|
152
194
|
}
|
|
153
195
|
}
|
|
154
|
-
|
|
196
|
+
// A package that runs from its compiled tree (`main` in dist) defines its groups there too.
|
|
197
|
+
const trees = [];
|
|
155
198
|
for (const source of sources) {
|
|
156
199
|
if (!existsSync(source)) {
|
|
157
200
|
continue;
|
|
158
201
|
}
|
|
159
|
-
|
|
160
|
-
|
|
202
|
+
trees.push({ directory: source, pattern: '**/*.ts' });
|
|
203
|
+
for (const entry of readdirSync(dirname(source), { withFileTypes: true })) {
|
|
204
|
+
if (entry.isDirectory() &&
|
|
205
|
+
!['src', 'node_modules'].includes(entry.name) &&
|
|
206
|
+
!entry.name.startsWith('.')) {
|
|
207
|
+
trees.push({ directory: join(dirname(source), entry.name), pattern: '**/*.js' });
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const files = [];
|
|
212
|
+
for (const { directory, pattern } of trees) {
|
|
213
|
+
for (const relativePath of new Bun.Glob(pattern).scanSync({ cwd: directory })) {
|
|
214
|
+
const file = join(directory, relativePath);
|
|
161
215
|
if (!relativePath.includes('__tests__') &&
|
|
162
216
|
IgnisArtifactsPlugin.DEFINE_CALL.test(readFileSync(file, 'utf8'))) {
|
|
163
217
|
files.push(file);
|
|
@@ -166,14 +220,18 @@ export class IgnisArtifactsPlugin {
|
|
|
166
220
|
}
|
|
167
221
|
return files;
|
|
168
222
|
}
|
|
169
|
-
/** For `Bun.build({ plugins: [IgnisArtifactsPlugin.create()] })`; `isRuntime` is set by `registerRuntime`, which serves a virtual module instead. */
|
|
223
|
+
/** For `Bun.build({ plugins: [IgnisArtifactsPlugin.create()] })`; `isRuntime` is set by `registerRuntime`, which serves a virtual module instead. `entry` (default: the build's first entrypoint, or `Bun.main` at run time) decides which tree the classes are imported from. */
|
|
170
224
|
static create(opts = {}) {
|
|
171
|
-
const root = opts.root ?? IgnisArtifactsPlugin.defaultRoot();
|
|
172
225
|
const isRuntime = opts.isRuntime ?? false;
|
|
173
|
-
const contents = () => IgnisArtifactsPlugin.render({ root });
|
|
174
226
|
return {
|
|
175
227
|
name: IgnisArtifactsPlugin.NAME,
|
|
176
228
|
setup(build) {
|
|
229
|
+
const [entrypoint] = isRuntime ? [] : build.config.entrypoints;
|
|
230
|
+
const runningEntry = typeof Bun !== 'undefined' && existsSync(Bun.main) ? Bun.main : undefined;
|
|
231
|
+
const entry = opts.entry ?? (entrypoint ? resolve(entrypoint) : runningEntry);
|
|
232
|
+
const root = opts.root ??
|
|
233
|
+
ArtifactSources.packageSource({ from: entry ? dirname(entry) : process.cwd() });
|
|
234
|
+
const contents = () => IgnisArtifactsPlugin.render({ root, entry });
|
|
177
235
|
if (isRuntime) {
|
|
178
236
|
build.module(IgnisArtifactsPlugin.VIRTUAL, () => ({
|
|
179
237
|
contents: contents(),
|
|
@@ -195,7 +253,7 @@ export class IgnisArtifactsPlugin {
|
|
|
195
253
|
filePath: args.path,
|
|
196
254
|
source: readFileSync(args.path, 'utf8'),
|
|
197
255
|
}),
|
|
198
|
-
loader: 'ts',
|
|
256
|
+
loader: args.path.endsWith('.ts') ? 'ts' : 'js',
|
|
199
257
|
}));
|
|
200
258
|
}
|
|
201
259
|
build.onLoad({ filter: IgnisArtifactsPlugin.AUTO_MODULE }, () => ({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/bun/plugin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/bun/plugin.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,11 +6,16 @@ export declare class ArtifactSources {
|
|
|
6
6
|
static packageSource(opts?: {
|
|
7
7
|
from?: string;
|
|
8
8
|
}): string;
|
|
9
|
-
/** The decorated classes under a directory named `folder` in the package whose source holds `site
|
|
9
|
+
/** The decorated classes under a directory named `folder` in the package whose source holds `site`, each pointing at the copy that runs beside `site` (see `runningArtifacts`). */
|
|
10
10
|
static folderArtifacts(opts: {
|
|
11
|
-
folder: string;
|
|
11
|
+
folder: string | undefined;
|
|
12
12
|
site: string;
|
|
13
13
|
}): IScannedArtifact[];
|
|
14
|
+
/** The scanned classes as the code at `from` runs them: unchanged when `from` is in `src`; otherwise each `src/<path>.ts` becomes `<tree>/<path>.js` in the compiled tree `from` sits in (`dist`, `dist/esm`), so an application registers the very class its code uses, never a second copy loaded from `src`. */
|
|
15
|
+
static runningArtifacts(opts: {
|
|
16
|
+
artifacts: IScannedArtifact[];
|
|
17
|
+
from: string;
|
|
18
|
+
}): IScannedArtifact[];
|
|
14
19
|
/** Forgets every cached scan - for a long-lived process that rebuilds (a watch mode). */
|
|
15
20
|
static clear(): void;
|
|
16
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/bun/sources.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,qKAAqK;AACrK,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAEtE,uGAAuG;IACvG,MAAM,CAAC,aAAa,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAa1D,
|
|
1
|
+
{"version":3,"file":"sources.d.ts","sourceRoot":"","sources":["../../../src/bun/sources.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmB,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEtE,qKAAqK;AACrK,qBAAa,eAAe;IAC1B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAyC;IAEtE,uGAAuG;IACvG,MAAM,CAAC,aAAa,CAAC,IAAI,GAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,MAAM;IAa1D,mLAAmL;IACnL,MAAM,CAAC,eAAe,CAAC,IAAI,EAAE;QAAE,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,gBAAgB,EAAE;IAsB9F,mTAAmT;IACnT,MAAM,CAAC,gBAAgB,CAAC,IAAI,EAAE;QAC5B,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;KACd,GAAG,gBAAgB,EAAE;IA2BtB,yFAAyF;IACzF,MAAM,CAAC,KAAK,IAAI,IAAI;CAGrB"}
|
package/dist/esm/bun/sources.js
CHANGED
|
@@ -18,14 +18,9 @@ export class ArtifactSources {
|
|
|
18
18
|
}
|
|
19
19
|
return join(directory, 'src');
|
|
20
20
|
}
|
|
21
|
-
/** The decorated classes under a directory named `folder` in the package whose source holds `site
|
|
21
|
+
/** The decorated classes under a directory named `folder` in the package whose source holds `site`, each pointing at the copy that runs beside `site` (see `runningArtifacts`). */
|
|
22
22
|
static folderArtifacts(opts) {
|
|
23
23
|
const packageSource = ArtifactSources.packageSource({ from: dirname(opts.site) });
|
|
24
|
-
if (!resolve(opts.site).startsWith(`${packageSource}${sep}`)) {
|
|
25
|
-
throw getError({
|
|
26
|
-
message: `[ArtifactGroup] '${opts.folder}' is defined at ${opts.site}, outside the package source ${packageSource} | A package consumed through dist must ship its groups filled by its own build (IgnisArtifactsPlugin), or be consumed from source`,
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
24
|
let artifacts = ArtifactSources.scans.get(packageSource);
|
|
30
25
|
if (!artifacts) {
|
|
31
26
|
artifacts = ArtifactScanner.getInstance().scanWithReport({
|
|
@@ -34,7 +29,35 @@ export class ArtifactSources {
|
|
|
34
29
|
}).artifacts;
|
|
35
30
|
ArtifactSources.scans.set(packageSource, artifacts);
|
|
36
31
|
}
|
|
37
|
-
|
|
32
|
+
const { folder } = opts;
|
|
33
|
+
const picked = folder === undefined
|
|
34
|
+
? artifacts
|
|
35
|
+
: artifacts.filter(artifact => relative(packageSource, artifact.filePath).split(sep).slice(0, -1).includes(folder));
|
|
36
|
+
return ArtifactSources.runningArtifacts({ artifacts: picked, from: opts.site });
|
|
37
|
+
}
|
|
38
|
+
/** The scanned classes as the code at `from` runs them: unchanged when `from` is in `src`; otherwise each `src/<path>.ts` becomes `<tree>/<path>.js` in the compiled tree `from` sits in (`dist`, `dist/esm`), so an application registers the very class its code uses, never a second copy loaded from `src`. */
|
|
39
|
+
static runningArtifacts(opts) {
|
|
40
|
+
const from = resolve(opts.from);
|
|
41
|
+
const packageSource = ArtifactSources.packageSource({ from: dirname(from) });
|
|
42
|
+
const [probe] = opts.artifacts;
|
|
43
|
+
if (!probe || from.startsWith(`${packageSource}${sep}`)) {
|
|
44
|
+
return opts.artifacts;
|
|
45
|
+
}
|
|
46
|
+
const packageRoot = dirname(packageSource);
|
|
47
|
+
const compiledPath = (target) => join(target.tree, relative(packageSource, target.artifact.filePath).replace(/\.ts$/, '.js'));
|
|
48
|
+
const segments = relative(packageRoot, dirname(from)).split(sep);
|
|
49
|
+
const tree = segments
|
|
50
|
+
.map((_segment, index) => join(packageRoot, ...segments.slice(0, index + 1)))
|
|
51
|
+
.find(candidate => existsSync(compiledPath({ tree: candidate, artifact: probe })));
|
|
52
|
+
return opts.artifacts.map(artifact => {
|
|
53
|
+
const compiled = tree ? compiledPath({ tree, artifact }) : undefined;
|
|
54
|
+
if (!compiled || !existsSync(compiled)) {
|
|
55
|
+
throw getError({
|
|
56
|
+
message: `[ArtifactSources] ${artifact.filePath} has no compiled copy beside ${from} | The package runs from a compiled tree that is older than its src - rebuild it (or run it from src)`,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return { ...artifact, filePath: compiled };
|
|
60
|
+
});
|
|
38
61
|
}
|
|
39
62
|
/** Forgets every cached scan - for a long-lived process that rebuilds (a watch mode). */
|
|
40
63
|
static clear() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/bun/sources.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,eAAe,EAAyB,MAAM,cAAc,CAAC;AAEtE,qKAAqK;AACrK,MAAM,OAAO,eAAe;aACF,UAAK,GAAG,IAAI,GAAG,EAA8B,CAAC;IAEtE,uGAAuG;IACvG,MAAM,CAAC,aAAa,CAAC,OAA0B,EAAE;QAC/C,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAClD,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YAClC,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC5B,CAAC;YACD,SAAS,GAAG,MAAM,CAAC;QACrB,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,
|
|
1
|
+
{"version":3,"file":"sources.js","sourceRoot":"","sources":["../../../src/bun/sources.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@venizia/ignis-boot",
|
|
3
|
-
"version": "0.2.1-
|
|
3
|
+
"version": "0.2.1-4",
|
|
4
4
|
"description": "Build-time artifact index generator for IGNIS applications: scans decorated classes with the TypeScript AST and emits one static registration file per package, so bun build --compile sees plain imports.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"artifact-index",
|