@redhat-cloud-services/frontend-components-config-utilities 4.12.9 → 4.13.1
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/federated-modules.d.ts +4 -1
- package/federated-modules.js +37 -4
- package/package.json +2 -2
- package/resolve-shared-import.d.ts +1 -0
- package/resolve-shared-import.js +14 -0
package/federated-modules.d.ts
CHANGED
|
@@ -19,10 +19,13 @@ export type FederatedModulesConfig = {
|
|
|
19
19
|
useFileHash?: boolean;
|
|
20
20
|
separateRuntime?: boolean;
|
|
21
21
|
exclude?: string[];
|
|
22
|
+
bundleChromeShared?: boolean;
|
|
22
23
|
eager?: boolean;
|
|
23
24
|
pluginMetadata?: PluginBuildMetadata;
|
|
24
25
|
extensions?: EncodedExtension[];
|
|
25
26
|
};
|
|
27
|
+
export declare const bundleChromeSharedLocally: (root: string, sharedModules?: Record<string, WebpackSharedConfig>) => Record<string, WebpackSharedConfig>;
|
|
28
|
+
export declare const omitHostConsumedShared: (sharedModules?: Record<string, WebpackSharedConfig>) => Record<string, WebpackSharedConfig>;
|
|
26
29
|
export declare const createSharedDeps: (include: {
|
|
27
30
|
[module: string]: WebpackSharedConfig;
|
|
28
31
|
}, dependencies: {
|
|
@@ -32,5 +35,5 @@ export declare const createSharedDeps: (include: {
|
|
|
32
35
|
};
|
|
33
36
|
export declare const applyImpliedDeps: (sharedDeps: Record<string, WebpackSharedConfig>, include: Record<string, WebpackSharedConfig>, dependencies: Record<string, string>, impliedDeps: Record<string, string[]>) => Record<string, WebpackSharedConfig>;
|
|
34
37
|
export declare const mergeSharedDeps: (sharedDeps: Record<string, WebpackSharedConfig>, shared: Record<string, WebpackSharedConfig>[], chromeProvided: Record<string, WebpackSharedConfig>, logger?: typeof fecLogger) => Record<string, WebpackSharedConfig>;
|
|
35
|
-
declare const federatedModules: ({ root, dependencies: depsProp, exposes, shared, debug, moduleName, useFileHash, separateRuntime, exclude, pluginMetadata, extensions, }: FederatedModulesConfig) => DynamicRemotePlugin;
|
|
38
|
+
declare const federatedModules: ({ root, dependencies: depsProp, exposes, shared, debug, moduleName, useFileHash, separateRuntime, exclude, bundleChromeShared, pluginMetadata, extensions, }: FederatedModulesConfig) => DynamicRemotePlugin;
|
|
36
39
|
export default federatedModules;
|
package/federated-modules.js
CHANGED
|
@@ -47,11 +47,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
47
47
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
48
48
|
};
|
|
49
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
-
exports.mergeSharedDeps = exports.applyImpliedDeps = exports.createSharedDeps = exports.createIncludes = void 0;
|
|
50
|
+
exports.mergeSharedDeps = exports.applyImpliedDeps = exports.createSharedDeps = exports.omitHostConsumedShared = exports.bundleChromeSharedLocally = exports.createIncludes = void 0;
|
|
51
51
|
var path_1 = require("path");
|
|
52
52
|
var dynamic_plugin_sdk_webpack_1 = require("@openshift/dynamic-plugin-sdk-webpack");
|
|
53
53
|
var jsVarName_1 = __importDefault(require("./jsVarName"));
|
|
54
54
|
var fec_logger_1 = __importStar(require("./fec-logger"));
|
|
55
|
+
var resolve_shared_import_1 = require("./resolve-shared-import");
|
|
55
56
|
var defaultPluginMetaDataJSON = {
|
|
56
57
|
version: '1.0.0',
|
|
57
58
|
extensions: [],
|
|
@@ -80,6 +81,32 @@ var createIncludes = function () { return ({
|
|
|
80
81
|
},
|
|
81
82
|
}); };
|
|
82
83
|
exports.createIncludes = createIncludes;
|
|
84
|
+
var bundleChromeSharedLocally = function (root, sharedModules) {
|
|
85
|
+
if (sharedModules === void 0) { sharedModules = {}; }
|
|
86
|
+
return Object.fromEntries(Object.entries(sharedModules).map(function (_a) {
|
|
87
|
+
var moduleName = _a[0], config = _a[1];
|
|
88
|
+
if (config.import !== false) {
|
|
89
|
+
return [moduleName, config];
|
|
90
|
+
}
|
|
91
|
+
var importPath = (0, resolve_shared_import_1.resolveSharedImportPath)(root, moduleName);
|
|
92
|
+
if (!importPath) {
|
|
93
|
+
return [moduleName, config];
|
|
94
|
+
}
|
|
95
|
+
return [
|
|
96
|
+
moduleName,
|
|
97
|
+
__assign(__assign({}, config), { eager: true, import: importPath }),
|
|
98
|
+
];
|
|
99
|
+
}));
|
|
100
|
+
};
|
|
101
|
+
exports.bundleChromeSharedLocally = bundleChromeSharedLocally;
|
|
102
|
+
var omitHostConsumedShared = function (sharedModules) {
|
|
103
|
+
if (sharedModules === void 0) { sharedModules = {}; }
|
|
104
|
+
return Object.fromEntries(Object.entries(sharedModules).filter(function (_a) {
|
|
105
|
+
var config = _a[1];
|
|
106
|
+
return typeof config.import === 'string';
|
|
107
|
+
}));
|
|
108
|
+
};
|
|
109
|
+
exports.omitHostConsumedShared = omitHostConsumedShared;
|
|
83
110
|
var getRootPackage = function (key) {
|
|
84
111
|
if (key.startsWith('@')) {
|
|
85
112
|
return key.split('/').slice(0, 2).join('/');
|
|
@@ -149,15 +176,18 @@ function hasVersionSpecified(config) {
|
|
|
149
176
|
return Object.values(config).every(function (c) { return typeof c.version === 'string'; });
|
|
150
177
|
}
|
|
151
178
|
var federatedModules = function (_a) {
|
|
152
|
-
var root = _a.root, depsProp = _a.dependencies, exposes = _a.exposes, _b = _a.shared, shared = _b === void 0 ? [] : _b, debug = _a.debug, moduleName = _a.moduleName, _c = _a.useFileHash, useFileHash = _c === void 0 ? true : _c, _d = _a.separateRuntime, separateRuntime = _d === void 0 ? false : _d, _e = _a.exclude, exclude = _e === void 0 ? [] : _e, pluginMetadata = _a.pluginMetadata,
|
|
153
|
-
var
|
|
179
|
+
var root = _a.root, depsProp = _a.dependencies, exposes = _a.exposes, _b = _a.shared, shared = _b === void 0 ? [] : _b, debug = _a.debug, moduleName = _a.moduleName, _c = _a.useFileHash, useFileHash = _c === void 0 ? true : _c, _d = _a.separateRuntime, separateRuntime = _d === void 0 ? false : _d, _e = _a.exclude, exclude = _e === void 0 ? [] : _e, _f = _a.bundleChromeShared, bundleChromeShared = _f === void 0 ? false : _f, pluginMetadata = _a.pluginMetadata, _g = _a.extensions, extensions = _g === void 0 ? [] : _g;
|
|
180
|
+
var _h = (0, exports.createIncludes)(), chromeProvided = _h.chromeProvided, defaultShared = _h.defaultShared, impliedDeps = _h.impliedDeps;
|
|
154
181
|
var include = __assign(__assign({}, chromeProvided), defaultShared);
|
|
155
|
-
var
|
|
182
|
+
var _j = depsProp ? { dependencies: depsProp, insights: undefined } : require((0, path_1.resolve)(root, './package.json')) || {}, _k = _j.dependencies, dependencies = _k === void 0 ? {} : _k, insights = _j.insights;
|
|
156
183
|
var appName = moduleName || (insights && (0, jsVarName_1.default)(insights.appname));
|
|
157
184
|
var filename = "".concat(appName, ".").concat(useFileHash ? "[contenthash]." : '', "js");
|
|
158
185
|
var sharedDeps = __assign(__assign({}, (0, exports.createSharedDeps)(chromeProvided, dependencies, [])), (0, exports.createSharedDeps)(defaultShared, dependencies, exclude));
|
|
159
186
|
sharedDeps = (0, exports.applyImpliedDeps)(sharedDeps, include, dependencies, impliedDeps);
|
|
160
187
|
sharedDeps = (0, exports.mergeSharedDeps)(sharedDeps, shared, chromeProvided);
|
|
188
|
+
if (bundleChromeShared) {
|
|
189
|
+
sharedDeps = (0, exports.omitHostConsumedShared)((0, exports.bundleChromeSharedLocally)(root, sharedDeps));
|
|
190
|
+
}
|
|
161
191
|
if (debug) {
|
|
162
192
|
console.log('Using package at path: ', (0, path_1.resolve)(root, './package.json'));
|
|
163
193
|
console.log('Using appName: ', appName);
|
|
@@ -167,6 +197,9 @@ var federatedModules = function (_a) {
|
|
|
167
197
|
if (exclude.length > 0) {
|
|
168
198
|
console.log('Excluding default packages', exclude);
|
|
169
199
|
}
|
|
200
|
+
if (bundleChromeShared) {
|
|
201
|
+
console.log('Bundling chrome-provided shared modules from local node_modules');
|
|
202
|
+
}
|
|
170
203
|
}
|
|
171
204
|
if (!exposes) {
|
|
172
205
|
(0, fec_logger_1.default)(fec_logger_1.LogType.warn, 'No exposed modules provided! Falling back to ./src/AppEntry as "./RootApp"');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redhat-cloud-services/frontend-components-config-utilities",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.13.1",
|
|
4
4
|
"description": "Utilities for shared config used in Red Hat Cloud Services project.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"build": "tsc"
|
|
22
22
|
},
|
|
23
23
|
"peerDependencies": {
|
|
24
|
-
"webpack": "^5.
|
|
24
|
+
"webpack": "^5.111.1"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
27
|
"@openshift/dynamic-plugin-sdk-webpack": "^4.1.0",
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const resolveSharedImportPath: (root: string, moduleName: string) => string | null;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveSharedImportPath = void 0;
|
|
4
|
+
var path_1 = require("path");
|
|
5
|
+
var resolveSharedImportPath = function (root, moduleName) {
|
|
6
|
+
try {
|
|
7
|
+
return require.resolve(moduleName, { paths: [(0, path_1.resolve)(root)] });
|
|
8
|
+
}
|
|
9
|
+
catch (_a) {
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
exports.resolveSharedImportPath = resolveSharedImportPath;
|
|
14
|
+
//# sourceMappingURL=resolve-shared-import.js.map
|