@toolsplus/nx-forge 4.0.1 → 4.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/executors/build/executor.js +4 -4
- package/src/executors/build/executor.js.map +1 -1
- package/src/executors/build/lib/patch-manifest-yml.d.ts +5 -3
- package/src/executors/build/lib/patch-manifest-yml.js +110 -7
- package/src/executors/build/lib/patch-manifest-yml.js.map +1 -1
- package/src/executors/build/lib/{process-custom-ui-dependencies.d.ts → process-resource-dependencies.d.ts} +5 -3
- package/src/executors/build/lib/{process-custom-ui-dependencies.js → process-resource-dependencies.js} +21 -21
- package/src/executors/build/lib/process-resource-dependencies.js.map +1 -0
- package/src/executors/build/schema.d.ts +1 -0
- package/src/executors/build/schema.json +5 -0
- package/src/executors/package/executor.js +4 -4
- package/src/executors/package/executor.js.map +1 -1
- package/src/executors/package/schema.d.ts +1 -0
- package/src/executors/package/schema.json +5 -0
- package/src/executors/build/lib/process-custom-ui-dependencies.js.map +0 -1
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@ const tslib_1 = require("tslib");
|
|
|
4
4
|
const node_fs_1 = require("node:fs");
|
|
5
5
|
const devkit_1 = require("@nx/devkit");
|
|
6
6
|
const normalize_options_1 = require("./lib/normalize-options");
|
|
7
|
-
const
|
|
7
|
+
const process_resource_dependencies_1 = require("./lib/process-resource-dependencies");
|
|
8
8
|
const patch_manifest_yml_1 = require("./lib/patch-manifest-yml");
|
|
9
9
|
const generate_package_json_1 = require("./lib/generate-package-json");
|
|
10
10
|
const compile_webpack_1 = require("./lib/compile-webpack");
|
|
@@ -49,9 +49,9 @@ function runExecutor(rawOptions, context) {
|
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
(0, copy_forge_app_assets_1.copyForgeAppAssets)(options);
|
|
52
|
-
const
|
|
53
|
-
yield (0, patch_manifest_yml_1.patchManifestYml)(options);
|
|
54
|
-
(0, generate_package_json_1.generatePackageJson)(context.projectName, context.projectGraph,
|
|
52
|
+
const resources = yield (0, process_resource_dependencies_1.processResourceDependencies)(Object.assign(Object.assign({}, options), { resourcePath: options.customUIPath }), context);
|
|
53
|
+
yield (0, patch_manifest_yml_1.patchManifestYml)(Object.assign(Object.assign({}, options), { resourcePath: options.customUIPath }));
|
|
54
|
+
(0, generate_package_json_1.generatePackageJson)(context.projectName, context.projectGraph, resources, options);
|
|
55
55
|
devkit_1.logger.info('Executor ran for build');
|
|
56
56
|
return {
|
|
57
57
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/executors/build/executor.ts"],"names":[],"mappings":";;;AAAA,qCAA6C;AAE7C,uCAAoC;AAEpC,+DAA2D;AAC3D,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/executors/build/executor.ts"],"names":[],"mappings":";;;AAAA,qCAA6C;AAE7C,uCAAoC;AAEpC,+DAA2D;AAC3D,uFAAkF;AAClF,iEAA4D;AAC5D,uEAAkE;AAClE,2DAAuD;AACvD,uEAAiE;AAEjE,SAAS,UAAU,CAAC,IAAc;IAChC,IAAI,CAAC;QACH,OAAO,IAAA,kBAAQ,EAAC,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC;IACjC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAA8B,WAAW,CACvC,UAAgC,EAChC,OAAwB;;;QAExB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GACxB,OAAO,CAAC,sBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAY,CAAC,CAAC;QAEjE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,8BAA8B,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,wBAAwB,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,OAAO,GAAG,IAAA,oCAAgB,EAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE7E,IAAI,UAAU,CAAC,GAAG,OAAO,CAAC,WAAW,eAAe,CAAC,EAAE,CAAC;YACtD,MAAM,WAAW,GAAG,IAAA,gCAAc,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;;gBACrD,KAA2B,eAAA,gBAAA,sBAAA,WAAW,CAAA,iBAAA,2FAAE,CAAC;oBAAd,2BAAW;oBAAX,WAAW;oBAA3B,MAAM,MAAM,KAAA,CAAA;oBACrB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;wBACpB,MAAM,IAAI,KAAK,CACb,uCAAuC,OAAO,CAAC,WAAW,GAAG,CAC9D,CAAC;oBACJ,CAAC;gBACH,CAAC;;;;;;;;;QACH,CAAC;QAED,IAAA,0CAAkB,EAAC,OAAO,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAG,MAAM,IAAA,2DAA2B,kCAC5C,OAAO,KAAE,YAAY,EAAE,OAAO,CAAC,YAAY,KAChD,OAAO,CACR,CAAC;QACF,MAAM,IAAA,qCAAgB,kCAAM,OAAO,KAAE,YAAY,EAAE,OAAO,CAAC,YAAY,IAAG,CAAC;QAC3E,IAAA,2CAAmB,EACjB,OAAO,CAAC,WAAY,EACpB,OAAO,CAAC,YAAa,EACrB,SAAS,EACT,OAAO,CACR,CAAC;QAEF,eAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;QACtC,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;;CACH;AA9CD,8BA8CC"}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { NormalizedOptions } from '../schema';
|
|
2
|
-
type Options = Pick<NormalizedOptions, 'root' | 'outputPath' | '
|
|
2
|
+
type Options = Pick<NormalizedOptions, 'root' | 'outputPath' | 'uiKit2Packaging'> & {
|
|
3
|
+
resourcePath: string;
|
|
4
|
+
};
|
|
3
5
|
/**
|
|
4
|
-
* Patches the output manifest.yml file to replace resource path parameters to point to the actual
|
|
6
|
+
* Patches the output manifest.yml file to replace resource path parameters to point to the actual resource build
|
|
5
7
|
* artifacts instead of the Nx project reference.
|
|
6
8
|
*
|
|
7
|
-
* This assumes that
|
|
9
|
+
* This assumes that resource artifacts have already been copied to the output directory in a previous step.
|
|
8
10
|
*
|
|
9
11
|
* @param options Executor options
|
|
10
12
|
*/
|
|
@@ -5,27 +5,130 @@ const tslib_1 = require("tslib");
|
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const devkit_1 = require("@nx/devkit");
|
|
7
7
|
const manifest_yml_1 = require("../../../utils/forge/manifest-yml");
|
|
8
|
+
const fs_1 = require("fs");
|
|
8
9
|
/**
|
|
9
|
-
* Patches the output manifest.yml file to replace resource path parameters to point to the actual
|
|
10
|
+
* Patches the output manifest.yml file to replace resource path parameters to point to the actual resource build
|
|
10
11
|
* artifacts instead of the Nx project reference.
|
|
11
12
|
*
|
|
12
|
-
* This assumes that
|
|
13
|
+
* This assumes that resource artifacts have already been copied to the output directory in a previous step.
|
|
13
14
|
*
|
|
14
15
|
* @param options Executor options
|
|
15
16
|
*/
|
|
16
17
|
function patchManifestYml(options) {
|
|
17
18
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
-
const
|
|
19
|
+
const absoluteOutputPath = (0, path_1.resolve)(options.root, options.outputPath);
|
|
20
|
+
const manifestPath = (0, devkit_1.joinPathFragments)(absoluteOutputPath, 'manifest.yml');
|
|
19
21
|
devkit_1.logger.info(`Patching ${manifestPath}...`);
|
|
20
22
|
const manifestSchema = yield (0, manifest_yml_1.readManifestYml)(manifestPath);
|
|
21
|
-
const
|
|
22
|
-
const patchedManifest = Object.assign(Object.assign({}, manifestSchema), { resources: resources.map((r) => patchResource(options.customUIPath, r)) });
|
|
23
|
+
const patchedManifest = patchManifestInternal(absoluteOutputPath, manifestSchema, options);
|
|
23
24
|
(0, manifest_yml_1.writeManifestYml)(manifestPath, patchedManifest);
|
|
24
25
|
devkit_1.logger.info(`Done patching ${manifestPath}.`);
|
|
25
26
|
});
|
|
26
27
|
}
|
|
27
28
|
exports.patchManifestYml = patchManifestYml;
|
|
28
|
-
function
|
|
29
|
-
|
|
29
|
+
function patchManifestInternal(absoluteOutputPath, manifestSchema, options) {
|
|
30
|
+
var _a;
|
|
31
|
+
const resources = manifestSchema.resources || [];
|
|
32
|
+
if (!options.uiKit2Packaging) {
|
|
33
|
+
return Object.assign(Object.assign({}, manifestSchema), { resources: resources.map((resource) => (Object.assign(Object.assign({}, resource), { path: `${options.resourcePath}/${resource.path}` }))) });
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
const resourceTypeIndex = getResourceTypeIndex((_a = manifestSchema.modules) !== null && _a !== void 0 ? _a : {}, resources);
|
|
37
|
+
return Object.assign(Object.assign({}, manifestSchema), { resources: resources.map((r) => patchResource(options.resourcePath, r, absoluteOutputPath, resourceTypeIndex[r.key])) });
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Computes an index from resource key to resource type which is either UI Kit 2 or Custom UI. The resource type
|
|
42
|
+
* is inferred from the module declaration. If a module has both the `resource` property and `render: native` declared,
|
|
43
|
+
* it means its resource has to be of type UI Kit 2. If a module, on the other hand, only declares the `resource`
|
|
44
|
+
* property, it means the resource must be a Custom UI.
|
|
45
|
+
*
|
|
46
|
+
* @param modules Modules declared in the manifest
|
|
47
|
+
* @param resources Resources declared in the manifest
|
|
48
|
+
*/
|
|
49
|
+
function getResourceTypeIndex(modules, resources) {
|
|
50
|
+
const modulesEntries = Object.entries(modules);
|
|
51
|
+
const resourceKeys = resources.map((r) => r.key);
|
|
52
|
+
const indexModuleDefinition = (acc, moduleType, moduleDefinition) => {
|
|
53
|
+
var _a;
|
|
54
|
+
const moduleResourceKey = moduleDefinition['resource'];
|
|
55
|
+
if (resourceKeys.includes(moduleResourceKey)) {
|
|
56
|
+
const type = moduleDefinition['render'] === 'native' ? 'ui-kit-2' : 'custom-ui';
|
|
57
|
+
const existingIndexEntry = acc[moduleResourceKey];
|
|
58
|
+
if (existingIndexEntry && existingIndexEntry.type !== type) {
|
|
59
|
+
devkit_1.logger.warn(`Inconsistent resource mapping in manifest.yml: Module ${moduleType} (${moduleDefinition['key']}) declares its resource to be of type ${type} but other modules with keys [${existingIndexEntry.modules
|
|
60
|
+
.map(([, m]) => m['key'])
|
|
61
|
+
.join(', ')}] pointing to the same resource appear to be of a different type`);
|
|
62
|
+
}
|
|
63
|
+
const existingModules = (_a = existingIndexEntry === null || existingIndexEntry === void 0 ? void 0 : existingIndexEntry.modules) !== null && _a !== void 0 ? _a : [];
|
|
64
|
+
return Object.assign(Object.assign({}, acc), { [moduleResourceKey]: {
|
|
65
|
+
type,
|
|
66
|
+
modules: [...existingModules, [moduleType, moduleDefinition]],
|
|
67
|
+
} });
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return acc;
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
const resourceTypeIndex = modulesEntries.reduce((acc, [moduleType, moduleDefinitions]) => {
|
|
74
|
+
return moduleDefinitions.reduce((innerAcc, moduleDefinition) => indexModuleDefinition(innerAcc, moduleType, moduleDefinition), acc);
|
|
75
|
+
}, {});
|
|
76
|
+
const resourceTypeIndexKeySet = new Set(Object.keys(resourceTypeIndex));
|
|
77
|
+
const resourceKeySet = new Set(resourceKeys);
|
|
78
|
+
if (resourceTypeIndexKeySet.size === resourceKeySet.size &&
|
|
79
|
+
[...resourceTypeIndexKeySet].every((k) => resourceKeySet.has(k))) {
|
|
80
|
+
return resourceTypeIndex;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const missingResourceKeys = [...resourceKeySet].filter((k) => !resourceTypeIndexKeySet.has(k));
|
|
84
|
+
devkit_1.logger.warn(`Failed to find module definition for resources with keys ${missingResourceKeys}`);
|
|
85
|
+
return resourceTypeIndex;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Returns the final resource path based on the given resource type.
|
|
90
|
+
*
|
|
91
|
+
* Verifies that the path/file exists in the computed directory. UI Kit 2 builds are expected to produce an accepted
|
|
92
|
+
* bundle filename.
|
|
93
|
+
*
|
|
94
|
+
* @param resourcePath Path where all resource build artifacts are placed, relative to the app root directory
|
|
95
|
+
* @param resourceType Type of the given resource, `ui-kit-2` or `custom-ui`
|
|
96
|
+
* @param resource Resource to process
|
|
97
|
+
* @param absoluteOutputPath Absolute project output path
|
|
98
|
+
*/
|
|
99
|
+
function getVerifiedResourcePath(resourcePath, resourceType, resource, absoluteOutputPath) {
|
|
100
|
+
const resourceProjectName = resource.path;
|
|
101
|
+
const relativeResourcePath = (0, path_1.join)(resourcePath, resourceProjectName);
|
|
102
|
+
const absoluteResourcePath = (0, path_1.join)(absoluteOutputPath, relativeResourcePath);
|
|
103
|
+
if (!(0, fs_1.existsSync)(absoluteResourcePath)) {
|
|
104
|
+
throw new Error(`Failed to patch resource with key '${resource.key}': No resource artifacts found in ${absoluteOutputPath}. Did you forget to build the resource?`);
|
|
105
|
+
}
|
|
106
|
+
if (resourceType === 'custom-ui') {
|
|
107
|
+
devkit_1.logger.info(`Detected resource '${resource.key}' as Custom UI dependency`);
|
|
108
|
+
return relativeResourcePath;
|
|
109
|
+
}
|
|
110
|
+
devkit_1.logger.info(`Detected resource '${resource.key}' as UI Kit 2 dependency`);
|
|
111
|
+
const acceptedUiKit2EntryPoints = [
|
|
112
|
+
'index.js',
|
|
113
|
+
'index.jsx',
|
|
114
|
+
'main.js',
|
|
115
|
+
'main.jsx',
|
|
116
|
+
];
|
|
117
|
+
const entryPointFile = acceptedUiKit2EntryPoints.find((entryPointFile) => (0, fs_1.existsSync)((0, path_1.join)(absoluteResourcePath, entryPointFile)));
|
|
118
|
+
if (entryPointFile) {
|
|
119
|
+
return `${relativeResourcePath}/${entryPointFile}`;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
throw new Error(`Failed to patch resource with key '${resource.key}': Could not find entry point file in ${absoluteResourcePath}. Make sure the UI Kit 2 build produces a files with one of these names: [${acceptedUiKit2EntryPoints.join(',')}]`);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
function patchResource(resourcePath, resource, absoluteOutputPath, resourceContext) {
|
|
126
|
+
devkit_1.logger.info(`Patching resource with key '${resource.key}'...`);
|
|
127
|
+
if (!resourceContext) {
|
|
128
|
+
devkit_1.logger.warn(`Resource with key '${resource.key}' appears not to be used by any module. Skip patching.`);
|
|
129
|
+
return resource;
|
|
130
|
+
}
|
|
131
|
+
const verifiedResourcePath = getVerifiedResourcePath(resourcePath, resourceContext.type, resource, absoluteOutputPath);
|
|
132
|
+
return Object.assign(Object.assign({}, resource), { path: verifiedResourcePath });
|
|
30
133
|
}
|
|
31
134
|
//# sourceMappingURL=patch-manifest-yml.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patch-manifest-yml.js","sourceRoot":"","sources":["../../../../../../../packages/nx-forge/src/executors/build/lib/patch-manifest-yml.ts"],"names":[],"mappings":";;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"patch-manifest-yml.js","sourceRoot":"","sources":["../../../../../../../packages/nx-forge/src/executors/build/lib/patch-manifest-yml.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { ExecutorContext } from '@nx/devkit';
|
|
2
2
|
import { Resources } from '@forge/manifest';
|
|
3
3
|
import { NormalizedOptions } from '../schema';
|
|
4
|
-
type Options = Pick<NormalizedOptions, 'root' | 'outputPath' | '
|
|
4
|
+
type Options = Pick<NormalizedOptions, 'root' | 'outputPath' | 'resourceOutputPathMap'> & {
|
|
5
|
+
resourcePath: string;
|
|
6
|
+
};
|
|
5
7
|
/**
|
|
6
|
-
* Verifies that
|
|
8
|
+
* Verifies that resource projects are correctly linked to the Nx Forge app and copies build artifacts into the app's
|
|
7
9
|
* output directory. In particular, this will make sure that each resource listed in the manifest.yml has its path
|
|
8
10
|
* configured to point to a Nx project in this workspace.
|
|
9
11
|
*
|
|
10
12
|
* @param options Executor options
|
|
11
13
|
* @param context Executor context
|
|
12
14
|
*/
|
|
13
|
-
export declare function
|
|
15
|
+
export declare function processResourceDependencies(options: Options, context: ExecutorContext): Promise<Resources>;
|
|
14
16
|
export {};
|
|
@@ -1,30 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.processResourceDependencies = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const fs_extra_1 = require("fs-extra");
|
|
6
6
|
const fs_1 = require("fs");
|
|
7
7
|
const devkit_1 = require("@nx/devkit");
|
|
8
8
|
const manifest_yml_1 = require("../../../utils/forge/manifest-yml");
|
|
9
9
|
/**
|
|
10
|
-
* Verifies that
|
|
10
|
+
* Verifies that resource projects are correctly linked to the Nx Forge app and copies build artifacts into the app's
|
|
11
11
|
* output directory. In particular, this will make sure that each resource listed in the manifest.yml has its path
|
|
12
12
|
* configured to point to a Nx project in this workspace.
|
|
13
13
|
*
|
|
14
14
|
* @param options Executor options
|
|
15
15
|
* @param context Executor context
|
|
16
16
|
*/
|
|
17
|
-
function
|
|
17
|
+
function processResourceDependencies(options, context) {
|
|
18
18
|
var _a;
|
|
19
19
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
20
20
|
const manifestPath = (0, devkit_1.joinPathFragments)(context.root, context.projectsConfigurations.projects[context.projectName].root, 'manifest.yml');
|
|
21
21
|
const manifestSchema = yield (0, manifest_yml_1.readManifestYml)(manifestPath);
|
|
22
22
|
const resources = (_a = manifestSchema.resources) !== null && _a !== void 0 ? _a : [];
|
|
23
|
-
resources.forEach((r) =>
|
|
23
|
+
resources.forEach((r) => verifyAndCopyResourceDependency(r, context, options));
|
|
24
24
|
return resources;
|
|
25
25
|
});
|
|
26
26
|
}
|
|
27
|
-
exports.
|
|
27
|
+
exports.processResourceDependencies = processResourceDependencies;
|
|
28
28
|
const getResourceOutputPath = (options, resourceProjectGraphNode, configurationName) => {
|
|
29
29
|
var _a, _b;
|
|
30
30
|
const resourceProjectName = resourceProjectGraphNode.data.name;
|
|
@@ -48,22 +48,22 @@ const getResourceOutputPath = (options, resourceProjectGraphNode, configurationN
|
|
|
48
48
|
}
|
|
49
49
|
throw new Error(`Failed to infer output path for resource project '${resourceProjectName}': Try to define an explicit output path mapping using the 'resourceOutputPathMap' option of this executor. Add an entry to the mapping object as follows: {'${resourceProjectName}': '<replace-with-project-output-path>'}.`);
|
|
50
50
|
};
|
|
51
|
-
const
|
|
52
|
-
const
|
|
53
|
-
const
|
|
54
|
-
const
|
|
55
|
-
if (!
|
|
56
|
-
throw new Error(`Nx workspace is missing project for
|
|
51
|
+
const verifyAndCopyResourceDependency = (resource, context, options) => {
|
|
52
|
+
const resourceProjectName = resource.path;
|
|
53
|
+
const resourceProjectGraphNode = context.projectGraph.nodes[resourceProjectName];
|
|
54
|
+
const resourceProjectConfiguration = resourceProjectGraphNode === null || resourceProjectGraphNode === void 0 ? void 0 : resourceProjectGraphNode.data;
|
|
55
|
+
if (!resourceProjectGraphNode || !resourceProjectConfiguration) {
|
|
56
|
+
throw new Error(`Nx workspace is missing project for resource path ${resourceProjectName}. Make sure the resource path references a project in your Nx workspace.`);
|
|
57
57
|
}
|
|
58
|
-
const
|
|
59
|
-
const
|
|
60
|
-
if (!
|
|
61
|
-
!(0, fs_1.existsSync)(
|
|
62
|
-
(0, fs_1.readdirSync)(
|
|
63
|
-
throw new Error(`Project ${
|
|
58
|
+
const resourceBuildTargetOutputPath = getResourceOutputPath(options, resourceProjectGraphNode, context.configurationName);
|
|
59
|
+
const absoluteResourceBuildTargetOutputPath = (0, devkit_1.joinPathFragments)(context.root, resourceBuildTargetOutputPath);
|
|
60
|
+
if (!resourceBuildTargetOutputPath ||
|
|
61
|
+
!(0, fs_1.existsSync)(absoluteResourceBuildTargetOutputPath) ||
|
|
62
|
+
(0, fs_1.readdirSync)(absoluteResourceBuildTargetOutputPath).length === 0) {
|
|
63
|
+
throw new Error(`Project ${resourceProjectName} has no build artifacts in output directory '${resourceBuildTargetOutputPath}'. Make sure the project produces compatible build artifacts.`);
|
|
64
64
|
}
|
|
65
|
-
devkit_1.logger.info(`Copying ${
|
|
66
|
-
(0, fs_extra_1.copySync)(
|
|
67
|
-
devkit_1.logger.info(`Done copying ${
|
|
65
|
+
devkit_1.logger.info(`Copying ${resourceProjectName} resource build artifacts...`);
|
|
66
|
+
(0, fs_extra_1.copySync)(absoluteResourceBuildTargetOutputPath, (0, devkit_1.joinPathFragments)(options.root, options.outputPath, options.resourcePath, resourceProjectName), { recursive: true });
|
|
67
|
+
devkit_1.logger.info(`Done copying ${resourceProjectName} resource build artifacts.`);
|
|
68
68
|
};
|
|
69
|
-
//# sourceMappingURL=process-
|
|
69
|
+
//# sourceMappingURL=process-resource-dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"process-resource-dependencies.js","sourceRoot":"","sources":["../../../../../../../packages/nx-forge/src/executors/build/lib/process-resource-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,11 @@
|
|
|
41
41
|
"x-completion-type": "file",
|
|
42
42
|
"x-completion-glob": "webpack?(*)@(.js|.ts)",
|
|
43
43
|
"x-priority": "important"
|
|
44
|
+
},
|
|
45
|
+
"uiKit2Packaging": {
|
|
46
|
+
"type": "boolean",
|
|
47
|
+
"description": "Enables UI Kit 2 compatible packaging.",
|
|
48
|
+
"default": false
|
|
44
49
|
}
|
|
45
50
|
},
|
|
46
51
|
"required": ["outputPath"]
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.normalizeOptions = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const devkit_1 = require("@nx/devkit");
|
|
6
|
-
const
|
|
6
|
+
const process_resource_dependencies_1 = require("../build/lib/process-resource-dependencies");
|
|
7
7
|
const patch_manifest_yml_1 = require("../build/lib/patch-manifest-yml");
|
|
8
8
|
const generate_package_json_1 = require("../build/lib/generate-package-json");
|
|
9
9
|
const copy_forge_app_assets_1 = require("../build/lib/copy-forge-app-assets");
|
|
@@ -25,9 +25,9 @@ function runExecutor(rawOptions, context) {
|
|
|
25
25
|
}
|
|
26
26
|
const options = normalizeOptions(rawOptions, context.root, sourceRoot, root);
|
|
27
27
|
(0, copy_forge_app_assets_1.copyForgeAppAssets)(options);
|
|
28
|
-
const
|
|
29
|
-
yield (0, patch_manifest_yml_1.patchManifestYml)(Object.assign(Object.assign({}, options), {
|
|
30
|
-
(0, generate_package_json_1.generatePackageJson)(context.projectName, context.projectGraph,
|
|
28
|
+
const resources = yield (0, process_resource_dependencies_1.processResourceDependencies)(Object.assign(Object.assign({}, options), { resourcePath: options.resourcePath }), context);
|
|
29
|
+
yield (0, patch_manifest_yml_1.patchManifestYml)(Object.assign(Object.assign({}, options), { resourcePath: options.resourcePath }));
|
|
30
|
+
(0, generate_package_json_1.generatePackageJson)(context.projectName, context.projectGraph, resources, options);
|
|
31
31
|
devkit_1.logger.info('Executor ran for package');
|
|
32
32
|
return {
|
|
33
33
|
success: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/executors/package/executor.ts"],"names":[],"mappings":";;;;AAAA,uCAAqD;AAErD,
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../../../packages/nx-forge/src/executors/package/executor.ts"],"names":[],"mappings":";;;;AAAA,uCAAqD;AAErD,8FAAyF;AACzF,wEAAmE;AACnE,8EAAyE;AACzE,8EAAwE;AAExE,SAAgB,gBAAgB,CAC9B,OAA8B,EAC9B,IAAY,EACZ,UAAkB,EAClB,WAAmB;;IAEnB,uCACK,OAAO,KACV,IAAI;QACJ,UAAU;QACV,WAAW,EACX,YAAY,EAAE,MAAA,OAAO,CAAC,YAAY,mCAAI,WAAW,EACjD,qBAAqB,EAAE,MAAA,OAAO,CAAC,qBAAqB,mCAAI,EAAE,IAC1D;AACJ,CAAC;AAdD,4CAcC;AAED,SAA8B,WAAW,CACvC,UAAiC,EACjC,OAAwB;;QAExB,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,GACxB,OAAO,CAAC,sBAAuB,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAY,CAAC,CAAC;QAEjE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,8BAA8B,CAAC,CAAC;QACxE,CAAC;QAED,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,CAAC,WAAW,wBAAwB,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,OAAO,GAAG,gBAAgB,CAAC,UAAU,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;QAE7E,IAAA,0CAAkB,EAAC,OAAO,CAAC,CAAC;QAE5B,MAAM,SAAS,GAAG,MAAM,IAAA,2DAA2B,kCAC5C,OAAO,KAAE,YAAY,EAAE,OAAO,CAAC,YAAY,KAChD,OAAO,CACR,CAAC;QAEF,MAAM,IAAA,qCAAgB,kCAAM,OAAO,KAAE,YAAY,EAAE,OAAO,CAAC,YAAY,IAAG,CAAC;QAE3E,IAAA,2CAAmB,EACjB,OAAO,CAAC,WAAY,EACpB,OAAO,CAAC,YAAa,EACrB,SAAS,EACT,OAAO,CACR,CAAC;QAEF,eAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,OAAO;YACL,OAAO,EAAE,IAAI;SACd,CAAC;IACJ,CAAC;CAAA;AArCD,8BAqCC"}
|
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
"type": "object",
|
|
18
18
|
"description": "Map of resource project names to their respective output path.",
|
|
19
19
|
"default": {}
|
|
20
|
+
},
|
|
21
|
+
"uiKit2Packaging": {
|
|
22
|
+
"type": "boolean",
|
|
23
|
+
"description": "Enables UI Kit 2 compatible packaging.",
|
|
24
|
+
"default": false
|
|
20
25
|
}
|
|
21
26
|
},
|
|
22
27
|
"required": ["outputPath"]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"process-custom-ui-dependencies.js","sourceRoot":"","sources":["../../../../../../../packages/nx-forge/src/executors/build/lib/process-custom-ui-dependencies.ts"],"names":[],"mappings":"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"}
|