piral-core 1.0.2 → 1.1.0-beta.5752
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/codegen.js +60 -24
- package/esm/tools/codegen.js +51 -13
- package/esm/tools/codegen.js.map +1 -1
- package/lib/tools/codegen.js +51 -13
- package/lib/tools/codegen.js.map +1 -1
- package/package.json +4 -4
- package/src/tools/codegen.ts +59 -13
package/dist/codegen.js
CHANGED
|
@@ -823,7 +823,7 @@ var require_CachedInputFileSystem = __commonJS({
|
|
|
823
823
|
"../../../node_modules/enhanced-resolve/lib/CachedInputFileSystem.js"(exports, module2) {
|
|
824
824
|
"use strict";
|
|
825
825
|
var nextTick = require("process").nextTick;
|
|
826
|
-
var
|
|
826
|
+
var dirname2 = (path) => {
|
|
827
827
|
let idx = path.length - 1;
|
|
828
828
|
while (idx >= 0) {
|
|
829
829
|
const c = path.charCodeAt(idx);
|
|
@@ -1022,11 +1022,11 @@ var require_CachedInputFileSystem = __commonJS({
|
|
|
1022
1022
|
if (!what) {
|
|
1023
1023
|
this.purge();
|
|
1024
1024
|
} else if (typeof what === "string") {
|
|
1025
|
-
this.purge(
|
|
1025
|
+
this.purge(dirname2(what));
|
|
1026
1026
|
} else {
|
|
1027
1027
|
const set = new Set();
|
|
1028
1028
|
for (const item of what) {
|
|
1029
|
-
set.add(
|
|
1029
|
+
set.add(dirname2(item));
|
|
1030
1030
|
}
|
|
1031
1031
|
this.purge(set);
|
|
1032
1032
|
}
|
|
@@ -1122,8 +1122,8 @@ var require_CachedInputFileSystem = __commonJS({
|
|
|
1122
1122
|
this._readFileBackend = createBackend(duration, this.fileSystem.readFile, this.fileSystem.readFileSync, this.fileSystem);
|
|
1123
1123
|
const readFile = this._readFileBackend.provide;
|
|
1124
1124
|
this.readFile = readFile;
|
|
1125
|
-
const
|
|
1126
|
-
this.readFileSync =
|
|
1125
|
+
const readFileSync2 = this._readFileBackend.provideSync;
|
|
1126
|
+
this.readFileSync = readFileSync2;
|
|
1127
1127
|
this._readJsonBackend = createBackend(duration, this.fileSystem.readJson || this.readFile && ((path, callback) => {
|
|
1128
1128
|
this.readFile(path, (err, buffer) => {
|
|
1129
1129
|
if (err)
|
|
@@ -3801,7 +3801,7 @@ var require_ExtensionAliasPlugin = __commonJS({
|
|
|
3801
3801
|
const requestPath = request.request;
|
|
3802
3802
|
if (!requestPath || !requestPath.endsWith(extension))
|
|
3803
3803
|
return callback();
|
|
3804
|
-
const
|
|
3804
|
+
const resolve2 = (alias2, callback2) => {
|
|
3805
3805
|
resolver.doResolve(target, {
|
|
3806
3806
|
...request,
|
|
3807
3807
|
request: `${requestPath.slice(0, -extension.length)}${alias2}`,
|
|
@@ -3816,11 +3816,11 @@ var require_ExtensionAliasPlugin = __commonJS({
|
|
|
3816
3816
|
return callback(null, null);
|
|
3817
3817
|
};
|
|
3818
3818
|
if (typeof alias === "string") {
|
|
3819
|
-
|
|
3819
|
+
resolve2(alias, stoppingCallback);
|
|
3820
3820
|
} else if (alias.length > 1) {
|
|
3821
|
-
forEachBail(alias,
|
|
3821
|
+
forEachBail(alias, resolve2, stoppingCallback);
|
|
3822
3822
|
} else {
|
|
3823
|
-
|
|
3823
|
+
resolve2(alias[0], stoppingCallback);
|
|
3824
3824
|
}
|
|
3825
3825
|
});
|
|
3826
3826
|
}
|
|
@@ -5039,7 +5039,7 @@ var require_lib2 = __commonJS({
|
|
|
5039
5039
|
extensions: [".js", ".json", ".node"],
|
|
5040
5040
|
fileSystem: nodeFileSystem2
|
|
5041
5041
|
});
|
|
5042
|
-
function
|
|
5042
|
+
function resolve2(context, path, request, resolveContext, callback) {
|
|
5043
5043
|
if (typeof context === "string") {
|
|
5044
5044
|
callback = resolveContext;
|
|
5045
5045
|
resolveContext = request;
|
|
@@ -5107,7 +5107,7 @@ var require_lib2 = __commonJS({
|
|
|
5107
5107
|
Object.defineProperties(obj, descriptors);
|
|
5108
5108
|
return Object.freeze(obj);
|
|
5109
5109
|
};
|
|
5110
|
-
module2.exports = mergeExports(
|
|
5110
|
+
module2.exports = mergeExports(resolve2, {
|
|
5111
5111
|
get sync() {
|
|
5112
5112
|
return resolveSync;
|
|
5113
5113
|
},
|
|
@@ -5165,11 +5165,34 @@ function getModulePath(root, moduleName) {
|
|
|
5165
5165
|
}
|
|
5166
5166
|
|
|
5167
5167
|
// src/tools/codegen.ts
|
|
5168
|
+
var import_fs = __toModule(require("fs"));
|
|
5169
|
+
var import_path = __toModule(require("path"));
|
|
5170
|
+
function findPackagePath(moduleDir) {
|
|
5171
|
+
const packageJson = "package.json";
|
|
5172
|
+
const packagePath = (0, import_path.resolve)(moduleDir, packageJson);
|
|
5173
|
+
if ((0, import_fs.existsSync)(packagePath)) {
|
|
5174
|
+
return packagePath;
|
|
5175
|
+
}
|
|
5176
|
+
const newDir = (0, import_path.resolve)(moduleDir, "..");
|
|
5177
|
+
if (newDir !== moduleDir) {
|
|
5178
|
+
return findPackagePath(newDir);
|
|
5179
|
+
}
|
|
5180
|
+
return void 0;
|
|
5181
|
+
}
|
|
5182
|
+
function getPackageJson(root, packageName) {
|
|
5183
|
+
const moduleDir = (0, import_path.dirname)(getModulePath(root, packageName));
|
|
5184
|
+
try {
|
|
5185
|
+
const packagePath = findPackagePath(moduleDir);
|
|
5186
|
+
const content = (0, import_fs.readFileSync)(packagePath, "utf8");
|
|
5187
|
+
return JSON.parse(content) || {};
|
|
5188
|
+
} catch (e) {
|
|
5189
|
+
return {};
|
|
5190
|
+
}
|
|
5191
|
+
}
|
|
5168
5192
|
function getRouterVersion(root) {
|
|
5169
5193
|
const router = "react-router";
|
|
5170
5194
|
try {
|
|
5171
|
-
const
|
|
5172
|
-
const { version } = require(modulePath);
|
|
5195
|
+
const { version } = getPackageJson(root, router);
|
|
5173
5196
|
const [major] = version.split(".");
|
|
5174
5197
|
return parseInt(major, 10);
|
|
5175
5198
|
} catch (e) {
|
|
@@ -5178,14 +5201,12 @@ function getRouterVersion(root) {
|
|
|
5178
5201
|
}
|
|
5179
5202
|
}
|
|
5180
5203
|
function getIdentifiers(root, packageName) {
|
|
5181
|
-
const packageJson = `${packageName}/package.json`;
|
|
5182
5204
|
const identifiers = [packageName];
|
|
5183
5205
|
try {
|
|
5184
|
-
const
|
|
5185
|
-
const details = require(modulePath);
|
|
5206
|
+
const details = getPackageJson(root, packageName);
|
|
5186
5207
|
if (details.version) {
|
|
5187
5208
|
identifiers.push(`${packageName}@${details.version}`);
|
|
5188
|
-
if (details.name !== packageName) {
|
|
5209
|
+
if (details.name && details.name !== packageName) {
|
|
5189
5210
|
identifiers.push(`${details.name}@${details.version}`);
|
|
5190
5211
|
}
|
|
5191
5212
|
}
|
|
@@ -5203,18 +5224,33 @@ function getModulePathOrDefault(root, name) {
|
|
|
5203
5224
|
function createDependencies(imports, exports, opts) {
|
|
5204
5225
|
const { root, appName, externals } = opts;
|
|
5205
5226
|
const assignments = [];
|
|
5227
|
+
const asyncAssignments = [];
|
|
5206
5228
|
if (appName) {
|
|
5207
5229
|
assignments.push(`deps['${appName}']={}`);
|
|
5208
5230
|
}
|
|
5209
|
-
for (const
|
|
5210
|
-
|
|
5211
|
-
|
|
5212
|
-
|
|
5213
|
-
|
|
5214
|
-
|
|
5215
|
-
|
|
5231
|
+
for (const external of externals) {
|
|
5232
|
+
if (external.endsWith("?")) {
|
|
5233
|
+
const name = external.replace(/\?+$/, "");
|
|
5234
|
+
const identifiers = getIdentifiers(root, name);
|
|
5235
|
+
const path = getModulePathOrDefault(root, name);
|
|
5236
|
+
for (const id of identifiers) {
|
|
5237
|
+
asyncAssignments.push(`registerModule(${JSON.stringify(id)}, () => import(${JSON.stringify(path)}))`);
|
|
5238
|
+
}
|
|
5239
|
+
} else {
|
|
5240
|
+
const name = external;
|
|
5241
|
+
const identifiers = getIdentifiers(root, name);
|
|
5242
|
+
const path = getModulePathOrDefault(root, name);
|
|
5243
|
+
const ref = `_${imports.length}`;
|
|
5244
|
+
imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
|
|
5245
|
+
for (const id of identifiers) {
|
|
5246
|
+
assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
|
|
5247
|
+
}
|
|
5216
5248
|
}
|
|
5217
5249
|
}
|
|
5250
|
+
if (asyncAssignments.length) {
|
|
5251
|
+
imports.push(`import { registerModule } from 'piral-base'`);
|
|
5252
|
+
assignments.push(...asyncAssignments);
|
|
5253
|
+
}
|
|
5218
5254
|
exports.push(`
|
|
5219
5255
|
export function fillDependencies(deps) {
|
|
5220
5256
|
${assignments.join(";")}
|
package/esm/tools/codegen.js
CHANGED
|
@@ -1,10 +1,34 @@
|
|
|
1
1
|
// this file is bundled, so the references here will not be at runtime (i.e., for a user)
|
|
2
2
|
import { getModulePath } from 'piral-cli/src/external/resolve';
|
|
3
|
+
import { readFileSync, existsSync } from 'fs';
|
|
4
|
+
import { resolve, dirname } from 'path';
|
|
5
|
+
function findPackagePath(moduleDir) {
|
|
6
|
+
const packageJson = 'package.json';
|
|
7
|
+
const packagePath = resolve(moduleDir, packageJson);
|
|
8
|
+
if (existsSync(packagePath)) {
|
|
9
|
+
return packagePath;
|
|
10
|
+
}
|
|
11
|
+
const newDir = resolve(moduleDir, '..');
|
|
12
|
+
if (newDir !== moduleDir) {
|
|
13
|
+
return findPackagePath(newDir);
|
|
14
|
+
}
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
function getPackageJson(root, packageName) {
|
|
18
|
+
const moduleDir = dirname(getModulePath(root, packageName));
|
|
19
|
+
try {
|
|
20
|
+
const packagePath = findPackagePath(moduleDir);
|
|
21
|
+
const content = readFileSync(packagePath, 'utf8');
|
|
22
|
+
return JSON.parse(content) || {};
|
|
23
|
+
}
|
|
24
|
+
catch (_a) {
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
}
|
|
3
28
|
function getRouterVersion(root) {
|
|
4
29
|
const router = 'react-router';
|
|
5
30
|
try {
|
|
6
|
-
const
|
|
7
|
-
const { version } = require(modulePath);
|
|
31
|
+
const { version } = getPackageJson(root, router);
|
|
8
32
|
const [major] = version.split('.');
|
|
9
33
|
return parseInt(major, 10);
|
|
10
34
|
}
|
|
@@ -14,14 +38,12 @@ function getRouterVersion(root) {
|
|
|
14
38
|
}
|
|
15
39
|
}
|
|
16
40
|
function getIdentifiers(root, packageName) {
|
|
17
|
-
const packageJson = `${packageName}/package.json`;
|
|
18
41
|
const identifiers = [packageName];
|
|
19
42
|
try {
|
|
20
|
-
const
|
|
21
|
-
const details = require(modulePath);
|
|
43
|
+
const details = getPackageJson(root, packageName);
|
|
22
44
|
if (details.version) {
|
|
23
45
|
identifiers.push(`${packageName}@${details.version}`);
|
|
24
|
-
if (details.name !== packageName) {
|
|
46
|
+
if (details.name && details.name !== packageName) {
|
|
25
47
|
identifiers.push(`${details.name}@${details.version}`);
|
|
26
48
|
}
|
|
27
49
|
}
|
|
@@ -40,17 +62,33 @@ function getModulePathOrDefault(root, name) {
|
|
|
40
62
|
export function createDependencies(imports, exports, opts) {
|
|
41
63
|
const { root, appName, externals } = opts;
|
|
42
64
|
const assignments = [];
|
|
65
|
+
const asyncAssignments = [];
|
|
43
66
|
if (appName) {
|
|
44
67
|
assignments.push(`deps['${appName}']={}`);
|
|
45
68
|
}
|
|
46
|
-
for (const
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
69
|
+
for (const external of externals) {
|
|
70
|
+
if (external.endsWith('?')) {
|
|
71
|
+
const name = external.replace(/\?+$/, '');
|
|
72
|
+
const identifiers = getIdentifiers(root, name);
|
|
73
|
+
const path = getModulePathOrDefault(root, name);
|
|
74
|
+
for (const id of identifiers) {
|
|
75
|
+
asyncAssignments.push(`registerModule(${JSON.stringify(id)}, () => import(${JSON.stringify(path)}))`);
|
|
76
|
+
}
|
|
53
77
|
}
|
|
78
|
+
else {
|
|
79
|
+
const name = external;
|
|
80
|
+
const identifiers = getIdentifiers(root, name);
|
|
81
|
+
const path = getModulePathOrDefault(root, name);
|
|
82
|
+
const ref = `_${imports.length}`;
|
|
83
|
+
imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
|
|
84
|
+
for (const id of identifiers) {
|
|
85
|
+
assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (asyncAssignments.length) {
|
|
90
|
+
imports.push(`import { registerModule } from 'piral-base'`);
|
|
91
|
+
assignments.push(...asyncAssignments);
|
|
54
92
|
}
|
|
55
93
|
exports.push(`
|
|
56
94
|
export function fillDependencies(deps) {
|
package/esm/tools/codegen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
|
package/lib/tools/codegen.js
CHANGED
|
@@ -3,11 +3,35 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.createRouteHandler = exports.createDebugHandler = exports.createDefaultState = exports.createDependencies = void 0;
|
|
4
4
|
// this file is bundled, so the references here will not be at runtime (i.e., for a user)
|
|
5
5
|
const resolve_1 = require("piral-cli/src/external/resolve");
|
|
6
|
+
const fs_1 = require("fs");
|
|
7
|
+
const path_1 = require("path");
|
|
8
|
+
function findPackagePath(moduleDir) {
|
|
9
|
+
const packageJson = 'package.json';
|
|
10
|
+
const packagePath = (0, path_1.resolve)(moduleDir, packageJson);
|
|
11
|
+
if ((0, fs_1.existsSync)(packagePath)) {
|
|
12
|
+
return packagePath;
|
|
13
|
+
}
|
|
14
|
+
const newDir = (0, path_1.resolve)(moduleDir, '..');
|
|
15
|
+
if (newDir !== moduleDir) {
|
|
16
|
+
return findPackagePath(newDir);
|
|
17
|
+
}
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
function getPackageJson(root, packageName) {
|
|
21
|
+
const moduleDir = (0, path_1.dirname)((0, resolve_1.getModulePath)(root, packageName));
|
|
22
|
+
try {
|
|
23
|
+
const packagePath = findPackagePath(moduleDir);
|
|
24
|
+
const content = (0, fs_1.readFileSync)(packagePath, 'utf8');
|
|
25
|
+
return JSON.parse(content) || {};
|
|
26
|
+
}
|
|
27
|
+
catch (_a) {
|
|
28
|
+
return {};
|
|
29
|
+
}
|
|
30
|
+
}
|
|
6
31
|
function getRouterVersion(root) {
|
|
7
32
|
const router = 'react-router';
|
|
8
33
|
try {
|
|
9
|
-
const
|
|
10
|
-
const { version } = require(modulePath);
|
|
34
|
+
const { version } = getPackageJson(root, router);
|
|
11
35
|
const [major] = version.split('.');
|
|
12
36
|
return parseInt(major, 10);
|
|
13
37
|
}
|
|
@@ -17,14 +41,12 @@ function getRouterVersion(root) {
|
|
|
17
41
|
}
|
|
18
42
|
}
|
|
19
43
|
function getIdentifiers(root, packageName) {
|
|
20
|
-
const packageJson = `${packageName}/package.json`;
|
|
21
44
|
const identifiers = [packageName];
|
|
22
45
|
try {
|
|
23
|
-
const
|
|
24
|
-
const details = require(modulePath);
|
|
46
|
+
const details = getPackageJson(root, packageName);
|
|
25
47
|
if (details.version) {
|
|
26
48
|
identifiers.push(`${packageName}@${details.version}`);
|
|
27
|
-
if (details.name !== packageName) {
|
|
49
|
+
if (details.name && details.name !== packageName) {
|
|
28
50
|
identifiers.push(`${details.name}@${details.version}`);
|
|
29
51
|
}
|
|
30
52
|
}
|
|
@@ -43,17 +65,33 @@ function getModulePathOrDefault(root, name) {
|
|
|
43
65
|
function createDependencies(imports, exports, opts) {
|
|
44
66
|
const { root, appName, externals } = opts;
|
|
45
67
|
const assignments = [];
|
|
68
|
+
const asyncAssignments = [];
|
|
46
69
|
if (appName) {
|
|
47
70
|
assignments.push(`deps['${appName}']={}`);
|
|
48
71
|
}
|
|
49
|
-
for (const
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
72
|
+
for (const external of externals) {
|
|
73
|
+
if (external.endsWith('?')) {
|
|
74
|
+
const name = external.replace(/\?+$/, '');
|
|
75
|
+
const identifiers = getIdentifiers(root, name);
|
|
76
|
+
const path = getModulePathOrDefault(root, name);
|
|
77
|
+
for (const id of identifiers) {
|
|
78
|
+
asyncAssignments.push(`registerModule(${JSON.stringify(id)}, () => import(${JSON.stringify(path)}))`);
|
|
79
|
+
}
|
|
56
80
|
}
|
|
81
|
+
else {
|
|
82
|
+
const name = external;
|
|
83
|
+
const identifiers = getIdentifiers(root, name);
|
|
84
|
+
const path = getModulePathOrDefault(root, name);
|
|
85
|
+
const ref = `_${imports.length}`;
|
|
86
|
+
imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
|
|
87
|
+
for (const id of identifiers) {
|
|
88
|
+
assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (asyncAssignments.length) {
|
|
93
|
+
imports.push(`import { registerModule } from 'piral-base'`);
|
|
94
|
+
assignments.push(...asyncAssignments);
|
|
57
95
|
}
|
|
58
96
|
exports.push(`
|
|
59
97
|
export function fillDependencies(deps) {
|
package/lib/tools/codegen.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":";;;AAAA,yFAAyF;AACzF,4DAA+D;
|
|
1
|
+
{"version":3,"file":"codegen.js","sourceRoot":"","sources":["../../src/tools/codegen.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "piral-core",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.1.0-beta.5752",
|
|
4
4
|
"description": "The core library for creating a Piral instance.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"portal",
|
|
@@ -72,8 +72,8 @@
|
|
|
72
72
|
"test": "echo \"Error: run tests from root\" && exit 1"
|
|
73
73
|
},
|
|
74
74
|
"dependencies": {
|
|
75
|
-
"piral-base": "
|
|
76
|
-
"piral-debug-utils": "
|
|
75
|
+
"piral-base": "1.1.0-beta.5752",
|
|
76
|
+
"piral-debug-utils": "1.1.0-beta.5752",
|
|
77
77
|
"zustand": "^3.0.0"
|
|
78
78
|
},
|
|
79
79
|
"devDependencies": {
|
|
@@ -93,5 +93,5 @@
|
|
|
93
93
|
"react-router-dom",
|
|
94
94
|
"tslib"
|
|
95
95
|
],
|
|
96
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "a25a97f00b21282f33439320bef90ccbcc27ee96"
|
|
97
97
|
}
|
package/src/tools/codegen.ts
CHANGED
|
@@ -1,12 +1,42 @@
|
|
|
1
1
|
// this file is bundled, so the references here will not be at runtime (i.e., for a user)
|
|
2
2
|
import { getModulePath } from 'piral-cli/src/external/resolve';
|
|
3
|
+
import { readFileSync, existsSync } from 'fs';
|
|
4
|
+
import { resolve, dirname } from 'path';
|
|
5
|
+
|
|
6
|
+
function findPackagePath(moduleDir: string) {
|
|
7
|
+
const packageJson = 'package.json';
|
|
8
|
+
const packagePath = resolve(moduleDir, packageJson);
|
|
9
|
+
|
|
10
|
+
if (existsSync(packagePath)) {
|
|
11
|
+
return packagePath;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
const newDir = resolve(moduleDir, '..');
|
|
15
|
+
|
|
16
|
+
if (newDir !== moduleDir) {
|
|
17
|
+
return findPackagePath(newDir);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
return undefined;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
function getPackageJson(root: string, packageName: string) {
|
|
24
|
+
const moduleDir = dirname(getModulePath(root, packageName));
|
|
25
|
+
|
|
26
|
+
try {
|
|
27
|
+
const packagePath = findPackagePath(moduleDir);
|
|
28
|
+
const content = readFileSync(packagePath, 'utf8');
|
|
29
|
+
return JSON.parse(content) || {};
|
|
30
|
+
} catch {
|
|
31
|
+
return {};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
3
34
|
|
|
4
35
|
function getRouterVersion(root: string) {
|
|
5
36
|
const router = 'react-router';
|
|
6
37
|
|
|
7
38
|
try {
|
|
8
|
-
const
|
|
9
|
-
const { version } = require(modulePath);
|
|
39
|
+
const { version } = getPackageJson(root, router);
|
|
10
40
|
const [major] = version.split('.');
|
|
11
41
|
return parseInt(major, 10);
|
|
12
42
|
} catch {
|
|
@@ -16,17 +46,15 @@ function getRouterVersion(root: string) {
|
|
|
16
46
|
}
|
|
17
47
|
|
|
18
48
|
function getIdentifiers(root: string, packageName: string) {
|
|
19
|
-
const packageJson = `${packageName}/package.json`;
|
|
20
49
|
const identifiers = [packageName];
|
|
21
50
|
|
|
22
51
|
try {
|
|
23
|
-
const
|
|
24
|
-
const details = require(modulePath);
|
|
52
|
+
const details = getPackageJson(root, packageName);
|
|
25
53
|
|
|
26
54
|
if (details.version) {
|
|
27
55
|
identifiers.push(`${packageName}@${details.version}`);
|
|
28
56
|
|
|
29
|
-
if (details.name !== packageName) {
|
|
57
|
+
if (details.name && details.name !== packageName) {
|
|
30
58
|
identifiers.push(`${details.name}@${details.version}`);
|
|
31
59
|
}
|
|
32
60
|
}
|
|
@@ -63,22 +91,40 @@ interface CodegenOptions {
|
|
|
63
91
|
export function createDependencies(imports: Array<string>, exports: Array<string>, opts: CodegenOptions) {
|
|
64
92
|
const { root, appName, externals } = opts;
|
|
65
93
|
const assignments: Array<string> = [];
|
|
94
|
+
const asyncAssignments: Array<string> = [];
|
|
66
95
|
|
|
67
96
|
if (appName) {
|
|
68
97
|
assignments.push(`deps['${appName}']={}`);
|
|
69
98
|
}
|
|
70
99
|
|
|
71
|
-
for (const
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
100
|
+
for (const external of externals) {
|
|
101
|
+
if (external.endsWith('?')) {
|
|
102
|
+
const name = external.replace(/\?+$/, '');
|
|
103
|
+
const identifiers = getIdentifiers(root, name);
|
|
104
|
+
const path = getModulePathOrDefault(root, name);
|
|
76
105
|
|
|
77
|
-
|
|
78
|
-
|
|
106
|
+
for (const id of identifiers) {
|
|
107
|
+
asyncAssignments.push(`registerModule(${JSON.stringify(id)}, () => import(${JSON.stringify(path)}))`);
|
|
108
|
+
}
|
|
109
|
+
} else {
|
|
110
|
+
const name = external;
|
|
111
|
+
const identifiers = getIdentifiers(root, name);
|
|
112
|
+
const path = getModulePathOrDefault(root, name);
|
|
113
|
+
const ref = `_${imports.length}`;
|
|
114
|
+
imports.push(`import * as ${ref} from ${JSON.stringify(path)}`);
|
|
115
|
+
|
|
116
|
+
for (const id of identifiers) {
|
|
117
|
+
assignments.push(`deps[${JSON.stringify(id)}]=${ref}`);
|
|
118
|
+
}
|
|
79
119
|
}
|
|
80
120
|
}
|
|
81
121
|
|
|
122
|
+
if (asyncAssignments.length) {
|
|
123
|
+
imports.push(`import { registerModule } from 'piral-base'`);
|
|
124
|
+
assignments.push(...asyncAssignments);
|
|
125
|
+
|
|
126
|
+
}
|
|
127
|
+
|
|
82
128
|
exports.push(`
|
|
83
129
|
export function fillDependencies(deps) {
|
|
84
130
|
${assignments.join(';')}
|