@proteinjs/reflection-build 1.3.0 → 1.4.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/CHANGELOG.md +11 -0
- package/dist/src/build.js +6 -5
- package/dist/src/build.js.map +1 -1
- package/dist/src/codegen/writeGeneratedIndex.d.ts +8 -5
- package/dist/src/codegen/writeGeneratedIndex.js +35 -12
- package/dist/src/codegen/writeGeneratedIndex.js.map +1 -1
- package/package.json +2 -2
- package/src/build.ts +13 -6
- package/src/codegen/writeGeneratedIndex.ts +42 -8
- package/test/examples/source-repository/a/dist/build.js +6 -5
- package/test/examples/source-repository/a/dist/build.js.map +1 -1
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.d.ts +8 -5
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js +35 -12
- package/test/examples/source-repository/a/dist/codegen/writeGeneratedIndex.js.map +1 -1
- package/test/examples/source-repository/b/dist/build.js +6 -5
- package/test/examples/source-repository/b/dist/build.js.map +1 -1
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.d.ts +8 -5
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js +35 -12
- package/test/examples/source-repository/b/dist/codegen/writeGeneratedIndex.js.map +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# [1.4.0](https://github.com/proteinjs/reflection/compare/@proteinjs/reflection-build@1.3.0...@proteinjs/reflection-build@1.4.0) (2025-11-11)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* `refelction-build` added `REFLECTION_EXPORT_FROM` so consumers can use reflection to build a generated test index and specify where test code is exported from (ie. `from ./test/index instead of ./index which was the hardcoded default). ([3a1411d](https://github.com/proteinjs/reflection/commit/3a1411dfdf7ba53c923ba46efe6c0ddf651373c4))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
# [1.3.0](https://github.com/proteinjs/reflection/compare/@proteinjs/reflection-build@1.2.1...@proteinjs/reflection-build@1.3.0) (2025-11-08)
|
|
7
18
|
|
|
8
19
|
|
package/dist/src/build.js
CHANGED
|
@@ -84,9 +84,9 @@ function build() {
|
|
|
84
84
|
isProd = primaryRoot === 'src';
|
|
85
85
|
if (isProd) {
|
|
86
86
|
targetDirDist = path.join(targetDir, distDirRel);
|
|
87
|
-
relGenPath = primaryRoot
|
|
88
|
-
? path.relative(targetDir, path.join(targetDir, 'generated'))
|
|
89
|
-
: path.relative(targetDir, path.join(targetDir, 'generated'
|
|
87
|
+
relGenPath = primaryRoot && primaryRoot !== 'src'
|
|
88
|
+
? path.relative(targetDir, path.join(targetDir, 'generated', primaryRoot))
|
|
89
|
+
: path.relative(targetDir, path.join(targetDir, 'generated'));
|
|
90
90
|
targetDirDistGenerated = path.join(targetDirDist, relGenPath);
|
|
91
91
|
generatedIndexJs = path.join(targetDirDistGenerated, 'index.js');
|
|
92
92
|
generatedIndexDts = path.join(targetDirDistGenerated, 'index.d.ts');
|
|
@@ -133,7 +133,7 @@ function build() {
|
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
|
-
var targetDir, targetDirTsconfig, sourceRootsRaw, sourceRoots, primaryRoot, distDirRel, targetDirGenerated, generatedIndex;
|
|
136
|
+
var targetDir, targetDirTsconfig, sourceRootsRaw, sourceRoots, primaryRoot, publicEntryRelOverride, distDirRel, targetDirGenerated, generatedIndex;
|
|
137
137
|
return __generator(this, function (_a) {
|
|
138
138
|
switch (_a.label) {
|
|
139
139
|
case 0:
|
|
@@ -145,6 +145,7 @@ function build() {
|
|
|
145
145
|
.filter(Boolean);
|
|
146
146
|
sourceRoots = sourceRootsRaw.length > 0 ? sourceRootsRaw : ['src'];
|
|
147
147
|
primaryRoot = sourceRoots[0];
|
|
148
|
+
publicEntryRelOverride = process.env.REFLECTION_EXPORT_FROM;
|
|
148
149
|
distDirRel = process.env.REFLECTION_DIST_DIR || 'dist';
|
|
149
150
|
targetDirGenerated = primaryRoot && primaryRoot !== 'src'
|
|
150
151
|
? path.join(targetDir, 'generated', primaryRoot)
|
|
@@ -156,7 +157,7 @@ function build() {
|
|
|
156
157
|
return [4 /*yield*/, writeTsconfig()];
|
|
157
158
|
case 2:
|
|
158
159
|
_a.sent();
|
|
159
|
-
return [4 /*yield*/, (0, writeGeneratedIndex_1.writeGeneratedIndex)(targetDir, targetDirGenerated, generatedIndex, sourceRoots)];
|
|
160
|
+
return [4 /*yield*/, (0, writeGeneratedIndex_1.writeGeneratedIndex)(targetDir, targetDirGenerated, generatedIndex, sourceRoots, publicEntryRelOverride)];
|
|
160
161
|
case 3:
|
|
161
162
|
_a.sent();
|
|
162
163
|
return [2 /*return*/];
|
package/dist/src/build.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/build.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,IAAM,QAAQ,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACpD,kDAAqD;AACrD,qEAAoE;AAEpE,SAAsB,KAAK;;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param packageDir
|
|
3
|
-
* @param packageGeneratedDir
|
|
4
|
-
* @param generatedIndexPath
|
|
5
|
-
* @param
|
|
2
|
+
* @param packageDir Root of the package (contains package.json)
|
|
3
|
+
* @param packageGeneratedDir Directory where generated/index.ts will be written
|
|
4
|
+
* @param generatedIndexPath Full path to generated/index.ts
|
|
5
|
+
* @param sourceRootsRel Relative directories to scan (e.g. ['test','src']) — defaults to 'src'
|
|
6
|
+
* @param publicEntryRelOverride Optional relative path (from package root) to the public entry that the
|
|
7
|
+
* generated index should re-export from (e.g. 'test/index.ts').
|
|
8
|
+
* If omitted, we re-export from '<packageRoot>/index'.
|
|
6
9
|
*/
|
|
7
|
-
export declare function writeGeneratedIndex(packageDir: string, packageGeneratedDir: string, generatedIndexPath: string, sourceRootsRel?: string | string[]): Promise<void>;
|
|
10
|
+
export declare function writeGeneratedIndex(packageDir: string, packageGeneratedDir: string, generatedIndexPath: string, sourceRootsRel?: string | string[], publicEntryRelOverride?: string): Promise<void>;
|
|
@@ -70,15 +70,18 @@ var jsesc_1 = __importDefault(require("jsesc"));
|
|
|
70
70
|
var createSourceGraph_1 = require("../parser/createSourceGraph");
|
|
71
71
|
var reflection_1 = require("@proteinjs/reflection");
|
|
72
72
|
/**
|
|
73
|
-
* @param packageDir
|
|
74
|
-
* @param packageGeneratedDir
|
|
75
|
-
* @param generatedIndexPath
|
|
76
|
-
* @param
|
|
73
|
+
* @param packageDir Root of the package (contains package.json)
|
|
74
|
+
* @param packageGeneratedDir Directory where generated/index.ts will be written
|
|
75
|
+
* @param generatedIndexPath Full path to generated/index.ts
|
|
76
|
+
* @param sourceRootsRel Relative directories to scan (e.g. ['test','src']) — defaults to 'src'
|
|
77
|
+
* @param publicEntryRelOverride Optional relative path (from package root) to the public entry that the
|
|
78
|
+
* generated index should re-export from (e.g. 'test/index.ts').
|
|
79
|
+
* If omitted, we re-export from '<packageRoot>/index'.
|
|
77
80
|
*/
|
|
78
|
-
function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath, sourceRootsRel) {
|
|
81
|
+
function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath, sourceRootsRel, publicEntryRelOverride) {
|
|
79
82
|
if (sourceRootsRel === void 0) { sourceRootsRel = 'src'; }
|
|
80
83
|
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
-
var packageIndexPath, generatedIndex;
|
|
84
|
+
var packageIndexPath, overrideAbsCandidates, exists, generatedIndex, exportTargetNoExt;
|
|
82
85
|
return __generator(this, function (_a) {
|
|
83
86
|
switch (_a.label) {
|
|
84
87
|
case 0:
|
|
@@ -93,15 +96,35 @@ function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath
|
|
|
93
96
|
throw new Error('Cannot find index.ts at ./index.ts or ./src/index.ts');
|
|
94
97
|
}
|
|
95
98
|
_a.label = 3;
|
|
96
|
-
case 3:
|
|
99
|
+
case 3:
|
|
100
|
+
if (!publicEntryRelOverride) return [3 /*break*/, 5];
|
|
101
|
+
overrideAbsCandidates = [
|
|
102
|
+
path.join(packageDir, publicEntryRelOverride),
|
|
103
|
+
path.join(packageDir, publicEntryRelOverride.replace(/\.[^/.]+$/, '') + '.ts'),
|
|
104
|
+
path.join(packageDir, publicEntryRelOverride.replace(/\.[^/.]+$/, '') + '.tsx'),
|
|
105
|
+
];
|
|
106
|
+
return [4 /*yield*/, Promise.all(overrideAbsCandidates.map(function (p) { return util_node_1.promisifiedFs.exists(p); }))];
|
|
97
107
|
case 4:
|
|
108
|
+
exists = _a.sent();
|
|
109
|
+
if (!exists.some(Boolean)) {
|
|
110
|
+
// Soft fail with a better message; do not throw, to keep behavior minimal and predictable.
|
|
111
|
+
// If it truly doesn't exist, the final 'export * from' will fail at compile time which is also explicit.
|
|
112
|
+
// eslint-disable-next-line no-console
|
|
113
|
+
console.warn("[reflection-build] WARN: REFLECTION_EXPORT_FROM points at '".concat(publicEntryRelOverride, "', but no .ts/.tsx file was found under the package root."));
|
|
114
|
+
}
|
|
115
|
+
_a.label = 5;
|
|
116
|
+
case 5: return [4 /*yield*/, util_node_1.promisifiedFs.mkdir(packageGeneratedDir, { recursive: true })];
|
|
117
|
+
case 6:
|
|
98
118
|
_a.sent();
|
|
99
119
|
return [4 /*yield*/, sourceRepositoryLoader(packageDir, generatedIndexPath, sourceRootsRel)];
|
|
100
|
-
case
|
|
120
|
+
case 7:
|
|
101
121
|
generatedIndex = _a.sent();
|
|
102
|
-
|
|
122
|
+
exportTargetNoExt = publicEntryRelOverride
|
|
123
|
+
? path.relative(packageGeneratedDir, path.join(packageDir, publicEntryRelOverride)).replace(/\.[^/.]+$/, '')
|
|
124
|
+
: "".concat(path.relative(packageGeneratedDir, packageDir), "/index");
|
|
125
|
+
generatedIndex += "\n\n\nexport * from '".concat(exportTargetNoExt, "';");
|
|
103
126
|
return [4 /*yield*/, util_node_1.promisifiedFs.writeFile(generatedIndexPath, generatedIndex)];
|
|
104
|
-
case
|
|
127
|
+
case 8:
|
|
105
128
|
_a.sent();
|
|
106
129
|
return [2 /*return*/];
|
|
107
130
|
}
|
|
@@ -181,7 +204,7 @@ function getDependencyImportSpecifier(packageDir, packageName) {
|
|
|
181
204
|
return packageName;
|
|
182
205
|
}
|
|
183
206
|
catch (_a) {
|
|
184
|
-
// Load the dependency's package.json to inspect exports or
|
|
207
|
+
// Load the dependency's package.json to inspect exports or entry fields
|
|
185
208
|
var depPkgJson = void 0;
|
|
186
209
|
try {
|
|
187
210
|
var pkgJsonPath = require.resolve(path.join(packageName, 'package.json'), { paths: [packageDir] });
|
|
@@ -249,7 +272,7 @@ function removeNonLoadables(sourceGraph, buildTargetPackageName) {
|
|
|
249
272
|
var nodeName = _a[_i];
|
|
250
273
|
var node = sourceGraph.node(nodeName);
|
|
251
274
|
if (!node) {
|
|
252
|
-
// may have been removed by a previous
|
|
275
|
+
// may have been removed by a previous iteration
|
|
253
276
|
continue;
|
|
254
277
|
}
|
|
255
278
|
removeNonLoadableNode(node, buildTargetPackageName, sourceGraph);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAqD;AACrD,wCAAgE;AAEhE,gDAA0B;AAC1B,iEAAgE;AAChE,oDAAqH;AAErH
|
|
1
|
+
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@proteinjs/reflection-build",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Build system for reflection",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -53,5 +53,5 @@
|
|
|
53
53
|
"ts-jest": "29.1.1",
|
|
54
54
|
"typescript": "5.2.2"
|
|
55
55
|
},
|
|
56
|
-
"gitHead": "
|
|
56
|
+
"gitHead": "c16990a60f5478349b3a27c9b52617392a961a5c"
|
|
57
57
|
}
|
package/src/build.ts
CHANGED
|
@@ -9,7 +9,7 @@ export async function build() {
|
|
|
9
9
|
|
|
10
10
|
// Env is ONLY read here.
|
|
11
11
|
// Allow multiple comma-separated roots, e.g. "test,src" or "integration,examples,src".
|
|
12
|
-
// The first root is the primary
|
|
12
|
+
// The first root is considered the "primary" tree for this invocation.
|
|
13
13
|
const sourceRootsRaw = (process.env.REFLECTION_SOURCE_DIRS || '')
|
|
14
14
|
.split(',')
|
|
15
15
|
.map((s) => s.trim())
|
|
@@ -17,7 +17,11 @@ export async function build() {
|
|
|
17
17
|
|
|
18
18
|
// If not provided, default to ['src'] for prod builds.
|
|
19
19
|
const sourceRoots = sourceRootsRaw.length > 0 ? sourceRootsRaw : ['src'];
|
|
20
|
-
const primaryRoot = sourceRoots[0];
|
|
20
|
+
const primaryRoot = sourceRoots[0];
|
|
21
|
+
|
|
22
|
+
// Optional: explicit public entry to re-export from (relative to package root)
|
|
23
|
+
// e.g. REFLECTION_EXPORT_FROM=test/index.ts
|
|
24
|
+
const publicEntryRelOverride = process.env.REFLECTION_EXPORT_FROM;
|
|
21
25
|
|
|
22
26
|
const distDirRel = process.env.REFLECTION_DIST_DIR || 'dist';
|
|
23
27
|
|
|
@@ -33,7 +37,7 @@ export async function build() {
|
|
|
33
37
|
|
|
34
38
|
await updatePackageJson();
|
|
35
39
|
await writeTsconfig();
|
|
36
|
-
await writeGeneratedIndex(targetDir, targetDirGenerated, generatedIndex, sourceRoots);
|
|
40
|
+
await writeGeneratedIndex(targetDir, targetDirGenerated, generatedIndex, sourceRoots, publicEntryRelOverride);
|
|
37
41
|
|
|
38
42
|
// TODO save their index location in package.json and pass it in to writeGeneratedIndex above
|
|
39
43
|
async function updatePackageJson() {
|
|
@@ -49,14 +53,17 @@ export async function build() {
|
|
|
49
53
|
const isProd = primaryRoot === 'src';
|
|
50
54
|
if (isProd) {
|
|
51
55
|
const targetDirDist = path.join(targetDir, distDirRel);
|
|
56
|
+
|
|
57
|
+
// Rel path to /generated (may be './generated' or './generated/src' depending on primaryRoot)
|
|
52
58
|
const relGenPath =
|
|
53
|
-
primaryRoot
|
|
54
|
-
? path.relative(targetDir, path.join(targetDir, 'generated'))
|
|
55
|
-
: path.relative(targetDir, path.join(targetDir, 'generated'
|
|
59
|
+
primaryRoot && primaryRoot !== 'src'
|
|
60
|
+
? path.relative(targetDir, path.join(targetDir, 'generated', primaryRoot))
|
|
61
|
+
: path.relative(targetDir, path.join(targetDir, 'generated'));
|
|
56
62
|
|
|
57
63
|
const targetDirDistGenerated = path.join(targetDirDist, relGenPath);
|
|
58
64
|
const generatedIndexJs = path.join(targetDirDistGenerated, 'index.js');
|
|
59
65
|
const generatedIndexDts = path.join(targetDirDistGenerated, 'index.d.ts');
|
|
66
|
+
|
|
60
67
|
targetPackageJson.main = `./${path.relative(targetDir, generatedIndexJs)}`;
|
|
61
68
|
targetPackageJson.types = `./${path.relative(targetDir, generatedIndexDts)}`;
|
|
62
69
|
}
|
|
@@ -7,17 +7,23 @@ import { createSourceGraph } from '../parser/createSourceGraph';
|
|
|
7
7
|
import { VariableDeclaration, PackageScope, ClassDeclaration, LOADABLE_QUALIFIED_NAME } from '@proteinjs/reflection';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
|
-
* @param packageDir
|
|
11
|
-
* @param packageGeneratedDir
|
|
12
|
-
* @param generatedIndexPath
|
|
13
|
-
* @param
|
|
10
|
+
* @param packageDir Root of the package (contains package.json)
|
|
11
|
+
* @param packageGeneratedDir Directory where generated/index.ts will be written
|
|
12
|
+
* @param generatedIndexPath Full path to generated/index.ts
|
|
13
|
+
* @param sourceRootsRel Relative directories to scan (e.g. ['test','src']) — defaults to 'src'
|
|
14
|
+
* @param publicEntryRelOverride Optional relative path (from package root) to the public entry that the
|
|
15
|
+
* generated index should re-export from (e.g. 'test/index.ts').
|
|
16
|
+
* If omitted, we re-export from '<packageRoot>/index'.
|
|
14
17
|
*/
|
|
15
18
|
export async function writeGeneratedIndex(
|
|
16
19
|
packageDir: string,
|
|
17
20
|
packageGeneratedDir: string,
|
|
18
21
|
generatedIndexPath: string,
|
|
19
|
-
sourceRootsRel: string | string[] = 'src'
|
|
22
|
+
sourceRootsRel: string | string[] = 'src',
|
|
23
|
+
publicEntryRelOverride?: string
|
|
20
24
|
) {
|
|
25
|
+
// Keep the original safety check for a package entry.
|
|
26
|
+
// Even if we later re-export from a custom entry, most packages still have ./index.ts or ./src/index.ts.
|
|
21
27
|
let packageIndexPath = path.join(packageDir, 'index.ts');
|
|
22
28
|
if (!(await promisifiedFs.exists(packageIndexPath))) {
|
|
23
29
|
packageIndexPath = path.join(packageDir, 'src/index.ts');
|
|
@@ -26,9 +32,37 @@ export async function writeGeneratedIndex(
|
|
|
26
32
|
}
|
|
27
33
|
}
|
|
28
34
|
|
|
35
|
+
// If an override was provided, optionally sanity-check that it exists. (Non-fatal if missing TS extension.)
|
|
36
|
+
if (publicEntryRelOverride) {
|
|
37
|
+
const overrideAbsCandidates = [
|
|
38
|
+
path.join(packageDir, publicEntryRelOverride),
|
|
39
|
+
path.join(packageDir, publicEntryRelOverride.replace(/\.[^/.]+$/, '') + '.ts'),
|
|
40
|
+
path.join(packageDir, publicEntryRelOverride.replace(/\.[^/.]+$/, '') + '.tsx'),
|
|
41
|
+
];
|
|
42
|
+
const exists = await Promise.all(overrideAbsCandidates.map((p) => promisifiedFs.exists(p)));
|
|
43
|
+
if (!exists.some(Boolean)) {
|
|
44
|
+
// Soft fail with a better message; do not throw, to keep behavior minimal and predictable.
|
|
45
|
+
// If it truly doesn't exist, the final 'export * from' will fail at compile time which is also explicit.
|
|
46
|
+
// eslint-disable-next-line no-console
|
|
47
|
+
console.warn(
|
|
48
|
+
`[reflection-build] WARN: REFLECTION_EXPORT_FROM points at '${publicEntryRelOverride}', but no .ts/.tsx file was found under the package root.`
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
29
53
|
await promisifiedFs.mkdir(packageGeneratedDir, { recursive: true });
|
|
54
|
+
|
|
30
55
|
let generatedIndex = await sourceRepositoryLoader(packageDir, generatedIndexPath, sourceRootsRel);
|
|
31
|
-
|
|
56
|
+
|
|
57
|
+
// Choose the target module to re-export from:
|
|
58
|
+
// - If override provided, re-export from that (path relative to generated dir, without extension)
|
|
59
|
+
// - Else fallback to the current default: '<packageRoot>/index'
|
|
60
|
+
const exportTargetNoExt = publicEntryRelOverride
|
|
61
|
+
? path.relative(packageGeneratedDir, path.join(packageDir, publicEntryRelOverride)).replace(/\.[^/.]+$/, '')
|
|
62
|
+
: `${path.relative(packageGeneratedDir, packageDir)}/index`;
|
|
63
|
+
|
|
64
|
+
generatedIndex += `\n\n\nexport * from '${exportTargetNoExt}';`;
|
|
65
|
+
|
|
32
66
|
await promisifiedFs.writeFile(generatedIndexPath, generatedIndex);
|
|
33
67
|
}
|
|
34
68
|
|
|
@@ -97,7 +131,7 @@ function getDependencyImportSpecifier(packageDir: string, packageName: string):
|
|
|
97
131
|
require.resolve(packageName, { paths: [packageDir] });
|
|
98
132
|
return packageName;
|
|
99
133
|
} catch {
|
|
100
|
-
// Load the dependency's package.json to inspect exports or
|
|
134
|
+
// Load the dependency's package.json to inspect exports or entry fields
|
|
101
135
|
let depPkgJson: any;
|
|
102
136
|
try {
|
|
103
137
|
const pkgJsonPath = require.resolve(path.join(packageName, 'package.json'), { paths: [packageDir] });
|
|
@@ -165,7 +199,7 @@ function removeNonLoadables(sourceGraph: Graph, buildTargetPackageName: string):
|
|
|
165
199
|
for (const nodeName of sourceGraph.nodes()) {
|
|
166
200
|
const node = sourceGraph.node(nodeName);
|
|
167
201
|
if (!node) {
|
|
168
|
-
// may have been removed by a previous
|
|
202
|
+
// may have been removed by a previous iteration
|
|
169
203
|
continue;
|
|
170
204
|
}
|
|
171
205
|
|
|
@@ -84,9 +84,9 @@ function build() {
|
|
|
84
84
|
isProd = primaryRoot === 'src';
|
|
85
85
|
if (isProd) {
|
|
86
86
|
targetDirDist = path.join(targetDir, distDirRel);
|
|
87
|
-
relGenPath = primaryRoot
|
|
88
|
-
? path.relative(targetDir, path.join(targetDir, 'generated'))
|
|
89
|
-
: path.relative(targetDir, path.join(targetDir, 'generated'
|
|
87
|
+
relGenPath = primaryRoot && primaryRoot !== 'src'
|
|
88
|
+
? path.relative(targetDir, path.join(targetDir, 'generated', primaryRoot))
|
|
89
|
+
: path.relative(targetDir, path.join(targetDir, 'generated'));
|
|
90
90
|
targetDirDistGenerated = path.join(targetDirDist, relGenPath);
|
|
91
91
|
generatedIndexJs = path.join(targetDirDistGenerated, 'index.js');
|
|
92
92
|
generatedIndexDts = path.join(targetDirDistGenerated, 'index.d.ts');
|
|
@@ -133,7 +133,7 @@ function build() {
|
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
|
-
var targetDir, targetDirTsconfig, sourceRootsRaw, sourceRoots, primaryRoot, distDirRel, targetDirGenerated, generatedIndex;
|
|
136
|
+
var targetDir, targetDirTsconfig, sourceRootsRaw, sourceRoots, primaryRoot, publicEntryRelOverride, distDirRel, targetDirGenerated, generatedIndex;
|
|
137
137
|
return __generator(this, function (_a) {
|
|
138
138
|
switch (_a.label) {
|
|
139
139
|
case 0:
|
|
@@ -145,6 +145,7 @@ function build() {
|
|
|
145
145
|
.filter(Boolean);
|
|
146
146
|
sourceRoots = sourceRootsRaw.length > 0 ? sourceRootsRaw : ['src'];
|
|
147
147
|
primaryRoot = sourceRoots[0];
|
|
148
|
+
publicEntryRelOverride = process.env.REFLECTION_EXPORT_FROM;
|
|
148
149
|
distDirRel = process.env.REFLECTION_DIST_DIR || 'dist';
|
|
149
150
|
targetDirGenerated = primaryRoot && primaryRoot !== 'src'
|
|
150
151
|
? path.join(targetDir, 'generated', primaryRoot)
|
|
@@ -156,7 +157,7 @@ function build() {
|
|
|
156
157
|
return [4 /*yield*/, writeTsconfig()];
|
|
157
158
|
case 2:
|
|
158
159
|
_a.sent();
|
|
159
|
-
return [4 /*yield*/, (0, writeGeneratedIndex_1.writeGeneratedIndex)(targetDir, targetDirGenerated, generatedIndex, sourceRoots)];
|
|
160
|
+
return [4 /*yield*/, (0, writeGeneratedIndex_1.writeGeneratedIndex)(targetDir, targetDirGenerated, generatedIndex, sourceRoots, publicEntryRelOverride)];
|
|
160
161
|
case 3:
|
|
161
162
|
_a.sent();
|
|
162
163
|
return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../src/build.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,IAAM,QAAQ,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACpD,kDAAqD;AACrD,qEAAoE;AAEpE,SAAsB,KAAK;;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../src/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param packageDir
|
|
3
|
-
* @param packageGeneratedDir
|
|
4
|
-
* @param generatedIndexPath
|
|
5
|
-
* @param
|
|
2
|
+
* @param packageDir Root of the package (contains package.json)
|
|
3
|
+
* @param packageGeneratedDir Directory where generated/index.ts will be written
|
|
4
|
+
* @param generatedIndexPath Full path to generated/index.ts
|
|
5
|
+
* @param sourceRootsRel Relative directories to scan (e.g. ['test','src']) — defaults to 'src'
|
|
6
|
+
* @param publicEntryRelOverride Optional relative path (from package root) to the public entry that the
|
|
7
|
+
* generated index should re-export from (e.g. 'test/index.ts').
|
|
8
|
+
* If omitted, we re-export from '<packageRoot>/index'.
|
|
6
9
|
*/
|
|
7
|
-
export declare function writeGeneratedIndex(packageDir: string, packageGeneratedDir: string, generatedIndexPath: string, sourceRootsRel?: string | string[]): Promise<void>;
|
|
10
|
+
export declare function writeGeneratedIndex(packageDir: string, packageGeneratedDir: string, generatedIndexPath: string, sourceRootsRel?: string | string[], publicEntryRelOverride?: string): Promise<void>;
|
|
@@ -70,15 +70,18 @@ var jsesc_1 = __importDefault(require("jsesc"));
|
|
|
70
70
|
var createSourceGraph_1 = require("../parser/createSourceGraph");
|
|
71
71
|
var reflection_1 = require("@proteinjs/reflection");
|
|
72
72
|
/**
|
|
73
|
-
* @param packageDir
|
|
74
|
-
* @param packageGeneratedDir
|
|
75
|
-
* @param generatedIndexPath
|
|
76
|
-
* @param
|
|
73
|
+
* @param packageDir Root of the package (contains package.json)
|
|
74
|
+
* @param packageGeneratedDir Directory where generated/index.ts will be written
|
|
75
|
+
* @param generatedIndexPath Full path to generated/index.ts
|
|
76
|
+
* @param sourceRootsRel Relative directories to scan (e.g. ['test','src']) — defaults to 'src'
|
|
77
|
+
* @param publicEntryRelOverride Optional relative path (from package root) to the public entry that the
|
|
78
|
+
* generated index should re-export from (e.g. 'test/index.ts').
|
|
79
|
+
* If omitted, we re-export from '<packageRoot>/index'.
|
|
77
80
|
*/
|
|
78
|
-
function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath, sourceRootsRel) {
|
|
81
|
+
function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath, sourceRootsRel, publicEntryRelOverride) {
|
|
79
82
|
if (sourceRootsRel === void 0) { sourceRootsRel = 'src'; }
|
|
80
83
|
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
-
var packageIndexPath, generatedIndex;
|
|
84
|
+
var packageIndexPath, overrideAbsCandidates, exists, generatedIndex, exportTargetNoExt;
|
|
82
85
|
return __generator(this, function (_a) {
|
|
83
86
|
switch (_a.label) {
|
|
84
87
|
case 0:
|
|
@@ -93,15 +96,35 @@ function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath
|
|
|
93
96
|
throw new Error('Cannot find index.ts at ./index.ts or ./src/index.ts');
|
|
94
97
|
}
|
|
95
98
|
_a.label = 3;
|
|
96
|
-
case 3:
|
|
99
|
+
case 3:
|
|
100
|
+
if (!publicEntryRelOverride) return [3 /*break*/, 5];
|
|
101
|
+
overrideAbsCandidates = [
|
|
102
|
+
path.join(packageDir, publicEntryRelOverride),
|
|
103
|
+
path.join(packageDir, publicEntryRelOverride.replace(/\.[^/.]+$/, '') + '.ts'),
|
|
104
|
+
path.join(packageDir, publicEntryRelOverride.replace(/\.[^/.]+$/, '') + '.tsx'),
|
|
105
|
+
];
|
|
106
|
+
return [4 /*yield*/, Promise.all(overrideAbsCandidates.map(function (p) { return util_node_1.promisifiedFs.exists(p); }))];
|
|
97
107
|
case 4:
|
|
108
|
+
exists = _a.sent();
|
|
109
|
+
if (!exists.some(Boolean)) {
|
|
110
|
+
// Soft fail with a better message; do not throw, to keep behavior minimal and predictable.
|
|
111
|
+
// If it truly doesn't exist, the final 'export * from' will fail at compile time which is also explicit.
|
|
112
|
+
// eslint-disable-next-line no-console
|
|
113
|
+
console.warn("[reflection-build] WARN: REFLECTION_EXPORT_FROM points at '".concat(publicEntryRelOverride, "', but no .ts/.tsx file was found under the package root."));
|
|
114
|
+
}
|
|
115
|
+
_a.label = 5;
|
|
116
|
+
case 5: return [4 /*yield*/, util_node_1.promisifiedFs.mkdir(packageGeneratedDir, { recursive: true })];
|
|
117
|
+
case 6:
|
|
98
118
|
_a.sent();
|
|
99
119
|
return [4 /*yield*/, sourceRepositoryLoader(packageDir, generatedIndexPath, sourceRootsRel)];
|
|
100
|
-
case
|
|
120
|
+
case 7:
|
|
101
121
|
generatedIndex = _a.sent();
|
|
102
|
-
|
|
122
|
+
exportTargetNoExt = publicEntryRelOverride
|
|
123
|
+
? path.relative(packageGeneratedDir, path.join(packageDir, publicEntryRelOverride)).replace(/\.[^/.]+$/, '')
|
|
124
|
+
: "".concat(path.relative(packageGeneratedDir, packageDir), "/index");
|
|
125
|
+
generatedIndex += "\n\n\nexport * from '".concat(exportTargetNoExt, "';");
|
|
103
126
|
return [4 /*yield*/, util_node_1.promisifiedFs.writeFile(generatedIndexPath, generatedIndex)];
|
|
104
|
-
case
|
|
127
|
+
case 8:
|
|
105
128
|
_a.sent();
|
|
106
129
|
return [2 /*return*/];
|
|
107
130
|
}
|
|
@@ -181,7 +204,7 @@ function getDependencyImportSpecifier(packageDir, packageName) {
|
|
|
181
204
|
return packageName;
|
|
182
205
|
}
|
|
183
206
|
catch (_a) {
|
|
184
|
-
// Load the dependency's package.json to inspect exports or
|
|
207
|
+
// Load the dependency's package.json to inspect exports or entry fields
|
|
185
208
|
var depPkgJson = void 0;
|
|
186
209
|
try {
|
|
187
210
|
var pkgJsonPath = require.resolve(path.join(packageName, 'package.json'), { paths: [packageDir] });
|
|
@@ -249,7 +272,7 @@ function removeNonLoadables(sourceGraph, buildTargetPackageName) {
|
|
|
249
272
|
var nodeName = _a[_i];
|
|
250
273
|
var node = sourceGraph.node(nodeName);
|
|
251
274
|
if (!node) {
|
|
252
|
-
// may have been removed by a previous
|
|
275
|
+
// may have been removed by a previous iteration
|
|
253
276
|
continue;
|
|
254
277
|
}
|
|
255
278
|
removeNonLoadableNode(node, buildTargetPackageName, sourceGraph);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAqD;AACrD,wCAAgE;AAEhE,gDAA0B;AAC1B,iEAAgE;AAChE,oDAAqH;AAErH
|
|
1
|
+
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":"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"}
|
|
@@ -84,9 +84,9 @@ function build() {
|
|
|
84
84
|
isProd = primaryRoot === 'src';
|
|
85
85
|
if (isProd) {
|
|
86
86
|
targetDirDist = path.join(targetDir, distDirRel);
|
|
87
|
-
relGenPath = primaryRoot
|
|
88
|
-
? path.relative(targetDir, path.join(targetDir, 'generated'))
|
|
89
|
-
: path.relative(targetDir, path.join(targetDir, 'generated'
|
|
87
|
+
relGenPath = primaryRoot && primaryRoot !== 'src'
|
|
88
|
+
? path.relative(targetDir, path.join(targetDir, 'generated', primaryRoot))
|
|
89
|
+
: path.relative(targetDir, path.join(targetDir, 'generated'));
|
|
90
90
|
targetDirDistGenerated = path.join(targetDirDist, relGenPath);
|
|
91
91
|
generatedIndexJs = path.join(targetDirDistGenerated, 'index.js');
|
|
92
92
|
generatedIndexDts = path.join(targetDirDistGenerated, 'index.d.ts');
|
|
@@ -133,7 +133,7 @@ function build() {
|
|
|
133
133
|
});
|
|
134
134
|
});
|
|
135
135
|
}
|
|
136
|
-
var targetDir, targetDirTsconfig, sourceRootsRaw, sourceRoots, primaryRoot, distDirRel, targetDirGenerated, generatedIndex;
|
|
136
|
+
var targetDir, targetDirTsconfig, sourceRootsRaw, sourceRoots, primaryRoot, publicEntryRelOverride, distDirRel, targetDirGenerated, generatedIndex;
|
|
137
137
|
return __generator(this, function (_a) {
|
|
138
138
|
switch (_a.label) {
|
|
139
139
|
case 0:
|
|
@@ -145,6 +145,7 @@ function build() {
|
|
|
145
145
|
.filter(Boolean);
|
|
146
146
|
sourceRoots = sourceRootsRaw.length > 0 ? sourceRootsRaw : ['src'];
|
|
147
147
|
primaryRoot = sourceRoots[0];
|
|
148
|
+
publicEntryRelOverride = process.env.REFLECTION_EXPORT_FROM;
|
|
148
149
|
distDirRel = process.env.REFLECTION_DIST_DIR || 'dist';
|
|
149
150
|
targetDirGenerated = primaryRoot && primaryRoot !== 'src'
|
|
150
151
|
? path.join(targetDir, 'generated', primaryRoot)
|
|
@@ -156,7 +157,7 @@ function build() {
|
|
|
156
157
|
return [4 /*yield*/, writeTsconfig()];
|
|
157
158
|
case 2:
|
|
158
159
|
_a.sent();
|
|
159
|
-
return [4 /*yield*/, (0, writeGeneratedIndex_1.writeGeneratedIndex)(targetDir, targetDirGenerated, generatedIndex, sourceRoots)];
|
|
160
|
+
return [4 /*yield*/, (0, writeGeneratedIndex_1.writeGeneratedIndex)(targetDir, targetDirGenerated, generatedIndex, sourceRoots, publicEntryRelOverride)];
|
|
160
161
|
case 3:
|
|
161
162
|
_a.sent();
|
|
162
163
|
return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../src/build.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,IAAM,QAAQ,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;AACpD,kDAAqD;AACrD,qEAAoE;AAEpE,SAAsB,KAAK;;
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../../../src/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param packageDir
|
|
3
|
-
* @param packageGeneratedDir
|
|
4
|
-
* @param generatedIndexPath
|
|
5
|
-
* @param
|
|
2
|
+
* @param packageDir Root of the package (contains package.json)
|
|
3
|
+
* @param packageGeneratedDir Directory where generated/index.ts will be written
|
|
4
|
+
* @param generatedIndexPath Full path to generated/index.ts
|
|
5
|
+
* @param sourceRootsRel Relative directories to scan (e.g. ['test','src']) — defaults to 'src'
|
|
6
|
+
* @param publicEntryRelOverride Optional relative path (from package root) to the public entry that the
|
|
7
|
+
* generated index should re-export from (e.g. 'test/index.ts').
|
|
8
|
+
* If omitted, we re-export from '<packageRoot>/index'.
|
|
6
9
|
*/
|
|
7
|
-
export declare function writeGeneratedIndex(packageDir: string, packageGeneratedDir: string, generatedIndexPath: string, sourceRootsRel?: string | string[]): Promise<void>;
|
|
10
|
+
export declare function writeGeneratedIndex(packageDir: string, packageGeneratedDir: string, generatedIndexPath: string, sourceRootsRel?: string | string[], publicEntryRelOverride?: string): Promise<void>;
|
|
@@ -70,15 +70,18 @@ var jsesc_1 = __importDefault(require("jsesc"));
|
|
|
70
70
|
var createSourceGraph_1 = require("../parser/createSourceGraph");
|
|
71
71
|
var reflection_1 = require("@proteinjs/reflection");
|
|
72
72
|
/**
|
|
73
|
-
* @param packageDir
|
|
74
|
-
* @param packageGeneratedDir
|
|
75
|
-
* @param generatedIndexPath
|
|
76
|
-
* @param
|
|
73
|
+
* @param packageDir Root of the package (contains package.json)
|
|
74
|
+
* @param packageGeneratedDir Directory where generated/index.ts will be written
|
|
75
|
+
* @param generatedIndexPath Full path to generated/index.ts
|
|
76
|
+
* @param sourceRootsRel Relative directories to scan (e.g. ['test','src']) — defaults to 'src'
|
|
77
|
+
* @param publicEntryRelOverride Optional relative path (from package root) to the public entry that the
|
|
78
|
+
* generated index should re-export from (e.g. 'test/index.ts').
|
|
79
|
+
* If omitted, we re-export from '<packageRoot>/index'.
|
|
77
80
|
*/
|
|
78
|
-
function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath, sourceRootsRel) {
|
|
81
|
+
function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath, sourceRootsRel, publicEntryRelOverride) {
|
|
79
82
|
if (sourceRootsRel === void 0) { sourceRootsRel = 'src'; }
|
|
80
83
|
return __awaiter(this, void 0, void 0, function () {
|
|
81
|
-
var packageIndexPath, generatedIndex;
|
|
84
|
+
var packageIndexPath, overrideAbsCandidates, exists, generatedIndex, exportTargetNoExt;
|
|
82
85
|
return __generator(this, function (_a) {
|
|
83
86
|
switch (_a.label) {
|
|
84
87
|
case 0:
|
|
@@ -93,15 +96,35 @@ function writeGeneratedIndex(packageDir, packageGeneratedDir, generatedIndexPath
|
|
|
93
96
|
throw new Error('Cannot find index.ts at ./index.ts or ./src/index.ts');
|
|
94
97
|
}
|
|
95
98
|
_a.label = 3;
|
|
96
|
-
case 3:
|
|
99
|
+
case 3:
|
|
100
|
+
if (!publicEntryRelOverride) return [3 /*break*/, 5];
|
|
101
|
+
overrideAbsCandidates = [
|
|
102
|
+
path.join(packageDir, publicEntryRelOverride),
|
|
103
|
+
path.join(packageDir, publicEntryRelOverride.replace(/\.[^/.]+$/, '') + '.ts'),
|
|
104
|
+
path.join(packageDir, publicEntryRelOverride.replace(/\.[^/.]+$/, '') + '.tsx'),
|
|
105
|
+
];
|
|
106
|
+
return [4 /*yield*/, Promise.all(overrideAbsCandidates.map(function (p) { return util_node_1.promisifiedFs.exists(p); }))];
|
|
97
107
|
case 4:
|
|
108
|
+
exists = _a.sent();
|
|
109
|
+
if (!exists.some(Boolean)) {
|
|
110
|
+
// Soft fail with a better message; do not throw, to keep behavior minimal and predictable.
|
|
111
|
+
// If it truly doesn't exist, the final 'export * from' will fail at compile time which is also explicit.
|
|
112
|
+
// eslint-disable-next-line no-console
|
|
113
|
+
console.warn("[reflection-build] WARN: REFLECTION_EXPORT_FROM points at '".concat(publicEntryRelOverride, "', but no .ts/.tsx file was found under the package root."));
|
|
114
|
+
}
|
|
115
|
+
_a.label = 5;
|
|
116
|
+
case 5: return [4 /*yield*/, util_node_1.promisifiedFs.mkdir(packageGeneratedDir, { recursive: true })];
|
|
117
|
+
case 6:
|
|
98
118
|
_a.sent();
|
|
99
119
|
return [4 /*yield*/, sourceRepositoryLoader(packageDir, generatedIndexPath, sourceRootsRel)];
|
|
100
|
-
case
|
|
120
|
+
case 7:
|
|
101
121
|
generatedIndex = _a.sent();
|
|
102
|
-
|
|
122
|
+
exportTargetNoExt = publicEntryRelOverride
|
|
123
|
+
? path.relative(packageGeneratedDir, path.join(packageDir, publicEntryRelOverride)).replace(/\.[^/.]+$/, '')
|
|
124
|
+
: "".concat(path.relative(packageGeneratedDir, packageDir), "/index");
|
|
125
|
+
generatedIndex += "\n\n\nexport * from '".concat(exportTargetNoExt, "';");
|
|
103
126
|
return [4 /*yield*/, util_node_1.promisifiedFs.writeFile(generatedIndexPath, generatedIndex)];
|
|
104
|
-
case
|
|
127
|
+
case 8:
|
|
105
128
|
_a.sent();
|
|
106
129
|
return [2 /*return*/];
|
|
107
130
|
}
|
|
@@ -181,7 +204,7 @@ function getDependencyImportSpecifier(packageDir, packageName) {
|
|
|
181
204
|
return packageName;
|
|
182
205
|
}
|
|
183
206
|
catch (_a) {
|
|
184
|
-
// Load the dependency's package.json to inspect exports or
|
|
207
|
+
// Load the dependency's package.json to inspect exports or entry fields
|
|
185
208
|
var depPkgJson = void 0;
|
|
186
209
|
try {
|
|
187
210
|
var pkgJsonPath = require.resolve(path.join(packageName, 'package.json'), { paths: [packageDir] });
|
|
@@ -249,7 +272,7 @@ function removeNonLoadables(sourceGraph, buildTargetPackageName) {
|
|
|
249
272
|
var nodeName = _a[_i];
|
|
250
273
|
var node = sourceGraph.node(nodeName);
|
|
251
274
|
if (!node) {
|
|
252
|
-
// may have been removed by a previous
|
|
275
|
+
// may have been removed by a previous iteration
|
|
253
276
|
continue;
|
|
254
277
|
}
|
|
255
278
|
removeNonLoadableNode(node, buildTargetPackageName, sourceGraph);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yCAA6B;AAC7B,kDAAqD;AACrD,wCAAgE;AAEhE,gDAA0B;AAC1B,iEAAgE;AAChE,oDAAqH;AAErH
|
|
1
|
+
{"version":3,"file":"writeGeneratedIndex.js","sourceRoot":"","sources":["../../../../../../src/codegen/writeGeneratedIndex.ts"],"names":[],"mappings":"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"}
|