@o3r/schematics 9.0.0-rc.7 → 9.0.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 +4 -4
- package/src/modules/modules.helpers.d.ts +30 -7
- package/src/modules/modules.helpers.d.ts.map +1 -1
- package/src/modules/modules.helpers.js +38 -23
- package/src/modules/modules.helpers.js.map +1 -1
- package/src/utility/collection.d.ts +13 -0
- package/src/utility/collection.d.ts.map +1 -1
- package/src/utility/collection.js +26 -1
- package/src/utility/collection.js.map +1 -1
- package/src/utility/package-manager-runner.d.ts +19 -10
- package/src/utility/package-manager-runner.d.ts.map +1 -1
- package/src/utility/package-manager-runner.js +1 -3
- package/src/utility/package-manager-runner.js.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@o3r/schematics",
|
|
3
|
-
"version": "9.0.0
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"description": "Schematics module of the Otter framework",
|
|
5
5
|
"main": "./src/index.js",
|
|
6
6
|
"keywords": [
|
|
@@ -59,9 +59,9 @@
|
|
|
59
59
|
"@nx/jest": "~16.5.0",
|
|
60
60
|
"@nx/js": "~16.5.0",
|
|
61
61
|
"@nx/linter": "~16.5.0",
|
|
62
|
-
"@o3r/build-helpers": "^9.0.0
|
|
63
|
-
"@o3r/dev-tools": "^9.0.0
|
|
64
|
-
"@o3r/eslint-plugin": "^9.0.0
|
|
62
|
+
"@o3r/build-helpers": "^9.0.0",
|
|
63
|
+
"@o3r/dev-tools": "^9.0.0",
|
|
64
|
+
"@o3r/eslint-plugin": "^9.0.0",
|
|
65
65
|
"@schematics/angular": "~16.0.5",
|
|
66
66
|
"@types/jest": "~29.5.2",
|
|
67
67
|
"@types/node": "^18.0.0",
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { NpmRegistryPackage } from './modules.constants';
|
|
2
2
|
import type { logging } from '@angular-devkit/core';
|
|
3
|
+
import { PackageManagerOptions, SupportedPackageManagerExecutors } from '../utility';
|
|
3
4
|
/**
|
|
4
5
|
* Determine if the given keyword is an Otter tag
|
|
5
6
|
*
|
|
@@ -7,24 +8,46 @@ import type { logging } from '@angular-devkit/core';
|
|
|
7
8
|
* @param expect tag expected for the Otter keyword
|
|
8
9
|
*/
|
|
9
10
|
export declare const isOtterTag: <T extends string | undefined>(keyword: any, expect?: T | undefined) => keyword is `otter-${T extends undefined ? "" : T}`;
|
|
11
|
+
/** Options for getAvailableModules function */
|
|
12
|
+
export interface AvailableModuleOptions extends PackageManagerOptions {
|
|
13
|
+
/**
|
|
14
|
+
* Determine if only the packages that are NOT installed should be returned
|
|
15
|
+
*
|
|
16
|
+
* @default false
|
|
17
|
+
*/
|
|
18
|
+
onlyNotInstalled?: boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Npm Registry to fetch to get the package information
|
|
21
|
+
*
|
|
22
|
+
* @default registry.npmjs.org
|
|
23
|
+
*/
|
|
24
|
+
npmRegistryToFetch?: string;
|
|
25
|
+
}
|
|
10
26
|
/**
|
|
11
27
|
* Get Available Otter modules on NPMjs.org
|
|
12
28
|
*
|
|
13
29
|
* @param keyword Keyword to search for Otter modules
|
|
14
30
|
* @param scopeWhitelist List of whitelisted scopes
|
|
15
|
-
* @param
|
|
31
|
+
* @param options
|
|
16
32
|
*/
|
|
17
|
-
export declare function getAvailableModules(keyword: string, scopeWhitelist: string[] | readonly string[],
|
|
33
|
+
export declare function getAvailableModules(keyword: string, scopeWhitelist: string[] | readonly string[], options?: AvailableModuleOptions): Promise<NpmRegistryPackage[]>;
|
|
34
|
+
/** Options for getAvailableModulesWithLatestPackage function */
|
|
35
|
+
export interface AvailableModuleOptionsWithLatestPackage extends AvailableModuleOptions {
|
|
36
|
+
/**
|
|
37
|
+
* List of whitelisted scopes
|
|
38
|
+
*
|
|
39
|
+
* @default {@see OTTER_MODULE_SUPPORTED_SCOPES}
|
|
40
|
+
*/
|
|
41
|
+
scopeWhitelist?: string[] | readonly string[];
|
|
42
|
+
}
|
|
18
43
|
/**
|
|
19
44
|
* Get Available Otter modules on NPMjs.org and get latest package information
|
|
20
45
|
* Similar to {@link getAvailableModules} with additional calls to retrieve all the package's information
|
|
21
46
|
*
|
|
22
47
|
* @param keyword Keyword to search for Otter modules
|
|
23
|
-
* @param
|
|
24
|
-
* @param onlyNotInstalled Determine if only the packages that are NOT installed should be returned
|
|
25
|
-
* @param logger Logger to use to report call failure (as debug message)
|
|
48
|
+
* @param options
|
|
26
49
|
*/
|
|
27
|
-
export declare function getAvailableModulesWithLatestPackage(keyword
|
|
50
|
+
export declare function getAvailableModulesWithLatestPackage(keyword: string | undefined, options: AvailableModuleOptionsWithLatestPackage): Promise<NpmRegistryPackage[]>;
|
|
28
51
|
/**
|
|
29
52
|
* Format a module description to be displayed in the terminal
|
|
30
53
|
*
|
|
@@ -33,5 +56,5 @@ export declare function getAvailableModulesWithLatestPackage(keyword?: string, s
|
|
|
33
56
|
* @param keywordTags Mapping of the NPM package Keywords and a displayed tag
|
|
34
57
|
* @param logger Logger to use to report package read failure (as debug message)
|
|
35
58
|
*/
|
|
36
|
-
export declare function formatModuleDescription(npmPackage: NpmRegistryPackage, runner?:
|
|
59
|
+
export declare function formatModuleDescription(npmPackage: NpmRegistryPackage, runner?: SupportedPackageManagerExecutors, keywordTags?: Record<string, string>, logger?: logging.LoggerApi): string;
|
|
37
60
|
//# sourceMappingURL=modules.helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.helpers.d.ts","sourceRoot":"","sources":["../../../src/modules/modules.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuH,MAAM,qBAAqB,CAAC;AAG9K,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"modules.helpers.d.ts","sourceRoot":"","sources":["../../../src/modules/modules.helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAuH,MAAM,qBAAqB,CAAC;AAG9K,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAUpD,OAAO,EAAqB,qBAAqB,EAAE,gCAAgC,EAAE,MAAM,YAAY,CAAC;AAmDxG;;;;;GAKG;AACH,eAAO,MAAM,UAAU,0CAA2C,GAAG,+EAGpE,CAAC;AAEF,+CAA+C;AAC/C,MAAM,WAAW,sBAAuB,SAAQ,qBAAqB;IACnE;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,sBAAsB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAsBxK;AAED,gEAAgE;AAChE,MAAM,WAAW,uCAAwC,SAAQ,sBAAsB;IACrF;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,MAAM,EAAE,CAAC;CAC/C;AAED;;;;;;GAMG;AACH,wBAAsB,oCAAoC,CAAC,OAAO,oBAA+B,EAAE,OAAO,EAAE,uCAAuC,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAoBlL;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,kBAAkB,EAAE,MAAM,GAAE,gCAAwC,EAAE,WAAW,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,UA8B7L"}
|
|
@@ -11,6 +11,8 @@ const path = require("node:path");
|
|
|
11
11
|
const node_util_1 = require("node:util");
|
|
12
12
|
const node_child_process_1 = require("node:child_process");
|
|
13
13
|
const chalk = require("chalk");
|
|
14
|
+
const utility_1 = require("../utility");
|
|
15
|
+
const DEFAULT_NPM_REGISTRY = 'registry.npmjs.org';
|
|
14
16
|
async function promiseGetRequest(url) {
|
|
15
17
|
const res = await new Promise((resolve, reject) => (0, node_https_1.get)(url, resolve)
|
|
16
18
|
.on('error', (err) => reject(err)));
|
|
@@ -26,20 +28,32 @@ async function promiseGetRequest(url) {
|
|
|
26
28
|
*
|
|
27
29
|
* @param search search text
|
|
28
30
|
* @param packageManager Package manager to use, determined automatically if not specified
|
|
31
|
+
* @param packageManagerOptions
|
|
32
|
+
* @param logger
|
|
29
33
|
*/
|
|
30
|
-
async function npmSearchExec(search,
|
|
31
|
-
const manager =
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
34
|
+
async function npmSearchExec(search, packageManagerOptions, logger) {
|
|
35
|
+
const manager = (0, utility_1.getPackageManager)(packageManagerOptions);
|
|
36
|
+
switch (manager) {
|
|
37
|
+
case 'npm': {
|
|
38
|
+
const remoteModulesPromise = (0, node_util_1.promisify)(node_child_process_1.exec)(`npm search "${search}" --json`);
|
|
39
|
+
try {
|
|
40
|
+
const results = JSON.parse((await remoteModulesPromise).stdout);
|
|
41
|
+
return results
|
|
42
|
+
.reduce((acc, pck) => {
|
|
43
|
+
acc.objects.push({ package: pck });
|
|
44
|
+
return acc;
|
|
45
|
+
}, { objects: [] });
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
return undefined;
|
|
49
|
+
}
|
|
41
50
|
}
|
|
42
|
-
|
|
51
|
+
case 'yarn': {
|
|
52
|
+
logger?.warn('The Yarn Package Manager is not supported, the Rest API will be used (the registry configuration will be ignored)');
|
|
53
|
+
return undefined;
|
|
54
|
+
}
|
|
55
|
+
default: {
|
|
56
|
+
logger?.warn('Not supported Package Manager, the Rest API will be used');
|
|
43
57
|
return undefined;
|
|
44
58
|
}
|
|
45
59
|
}
|
|
@@ -60,15 +74,16 @@ exports.isOtterTag = isOtterTag;
|
|
|
60
74
|
*
|
|
61
75
|
* @param keyword Keyword to search for Otter modules
|
|
62
76
|
* @param scopeWhitelist List of whitelisted scopes
|
|
63
|
-
* @param
|
|
77
|
+
* @param options
|
|
64
78
|
*/
|
|
65
|
-
async function getAvailableModules(keyword, scopeWhitelist,
|
|
79
|
+
async function getAvailableModules(keyword, scopeWhitelist, options) {
|
|
66
80
|
const search = `keywords:${keyword}`;
|
|
67
|
-
const
|
|
81
|
+
const npmRegistry = options?.npmRegistryToFetch || DEFAULT_NPM_REGISTRY;
|
|
82
|
+
const registry = await npmSearchExec(search) || await promiseGetRequest(`https://${npmRegistry}/-/v1/search?text=${search}&size=250`);
|
|
68
83
|
let packages = registry.objects
|
|
69
84
|
.filter((pck) => pck.package?.scope && scopeWhitelist.includes(pck.package?.scope))
|
|
70
85
|
.map((pck) => pck.package);
|
|
71
|
-
if (onlyNotInstalled) {
|
|
86
|
+
if (options?.onlyNotInstalled) {
|
|
72
87
|
packages = packages
|
|
73
88
|
.filter((pck) => {
|
|
74
89
|
try {
|
|
@@ -88,23 +103,23 @@ exports.getAvailableModules = getAvailableModules;
|
|
|
88
103
|
* Similar to {@link getAvailableModules} with additional calls to retrieve all the package's information
|
|
89
104
|
*
|
|
90
105
|
* @param keyword Keyword to search for Otter modules
|
|
91
|
-
* @param
|
|
92
|
-
* @param onlyNotInstalled Determine if only the packages that are NOT installed should be returned
|
|
93
|
-
* @param logger Logger to use to report call failure (as debug message)
|
|
106
|
+
* @param options
|
|
94
107
|
*/
|
|
95
|
-
async function getAvailableModulesWithLatestPackage(keyword = modules_constants_1.OTTER_MODULE_KEYWORD,
|
|
96
|
-
const
|
|
108
|
+
async function getAvailableModulesWithLatestPackage(keyword = modules_constants_1.OTTER_MODULE_KEYWORD, options) {
|
|
109
|
+
const scopeWhitelist = options.scopeWhitelist || modules_constants_1.OTTER_MODULE_SUPPORTED_SCOPES;
|
|
110
|
+
const packages = await getAvailableModules(keyword, scopeWhitelist, options);
|
|
111
|
+
const npmRegistry = options?.npmRegistryToFetch || DEFAULT_NPM_REGISTRY;
|
|
97
112
|
return Promise.all(packages
|
|
98
113
|
.map(async (pck) => {
|
|
99
114
|
try {
|
|
100
|
-
const pckInfo = await promiseGetRequest(`https
|
|
115
|
+
const pckInfo = await promiseGetRequest(`https://${npmRegistry}/${pck.name}/latest`);
|
|
101
116
|
return {
|
|
102
117
|
...pck,
|
|
103
118
|
package: pckInfo
|
|
104
119
|
};
|
|
105
120
|
}
|
|
106
121
|
catch {
|
|
107
|
-
logger?.debug(`Failed to retrieve information for ${pck.name}`);
|
|
122
|
+
options.logger?.debug(`Failed to retrieve information for ${pck.name}`);
|
|
108
123
|
return pck;
|
|
109
124
|
}
|
|
110
125
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modules.helpers.js","sourceRoot":"","sources":["../../../src/modules/modules.helpers.ts"],"names":[],"mappings":";;;AAAA,2DAA8K;AAI9K,gEAAoE;AACpE,mCAAmC;AACnC,2CAAiC;AACjC,qCAA8B;AAC9B,8BAA8B;AAC9B,kCAAkC;AAClC,yCAAsC;AACtC,2DAA0C;AAC1C,+BAA+B;
|
|
1
|
+
{"version":3,"file":"modules.helpers.js","sourceRoot":"","sources":["../../../src/modules/modules.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,4 +7,17 @@ import type { WorkspaceSchema } from '../interfaces';
|
|
|
7
7
|
* @returns the updated workspace
|
|
8
8
|
*/
|
|
9
9
|
export declare function registerCollectionSchematics(workspace: WorkspaceSchema, collection: string): WorkspaceSchema;
|
|
10
|
+
/**
|
|
11
|
+
* Get default options for a schematic
|
|
12
|
+
* This will look inside angular.json file for schematics with keys containing wildcards like `*:ng-add` or `@o3r/core:*`
|
|
13
|
+
*
|
|
14
|
+
* @param workspace
|
|
15
|
+
* @param collection
|
|
16
|
+
* @param schematicName
|
|
17
|
+
* @param options
|
|
18
|
+
* @param options.projectName
|
|
19
|
+
*/
|
|
20
|
+
export declare function getDefaultOptionsForSchematic(workspace: WorkspaceSchema | null, collection: string, schematicName: string, options: {
|
|
21
|
+
projectName: string | null;
|
|
22
|
+
}): Record<string, string>;
|
|
10
23
|
//# sourceMappingURL=collection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/utility/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAO5G"}
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../../src/utility/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,eAAe,CAO5G;AAED;;;;;;;;;GASG;AACH,wBAAgB,6BAA6B,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;CAAC,0BAchK"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.registerCollectionSchematics = void 0;
|
|
3
|
+
exports.getDefaultOptionsForSchematic = exports.registerCollectionSchematics = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* Register the collection schematic to the workspace
|
|
6
6
|
*
|
|
@@ -17,4 +17,29 @@ function registerCollectionSchematics(workspace, collection) {
|
|
|
17
17
|
return workspace;
|
|
18
18
|
}
|
|
19
19
|
exports.registerCollectionSchematics = registerCollectionSchematics;
|
|
20
|
+
/**
|
|
21
|
+
* Get default options for a schematic
|
|
22
|
+
* This will look inside angular.json file for schematics with keys containing wildcards like `*:ng-add` or `@o3r/core:*`
|
|
23
|
+
*
|
|
24
|
+
* @param workspace
|
|
25
|
+
* @param collection
|
|
26
|
+
* @param schematicName
|
|
27
|
+
* @param options
|
|
28
|
+
* @param options.projectName
|
|
29
|
+
*/
|
|
30
|
+
function getDefaultOptionsForSchematic(workspace, collection, schematicName, options) {
|
|
31
|
+
if (!workspace) {
|
|
32
|
+
return {};
|
|
33
|
+
}
|
|
34
|
+
const schematicsDefaultParams = [
|
|
35
|
+
workspace.schematics,
|
|
36
|
+
...options.projectName ? [workspace.projects[options.projectName]?.schematics] : []
|
|
37
|
+
];
|
|
38
|
+
return schematicsDefaultParams.flatMap((schematics) => schematics ?
|
|
39
|
+
Object.entries(schematics)
|
|
40
|
+
.filter(([key, _]) => key === `*:${schematicName}` || key === `${collection}:*`)
|
|
41
|
+
.map(([_, value]) => value) :
|
|
42
|
+
[]).reduce((out, defaultParams) => ({ ...out, ...defaultParams }), {});
|
|
43
|
+
}
|
|
44
|
+
exports.getDefaultOptionsForSchematic = getDefaultOptionsForSchematic;
|
|
20
45
|
//# sourceMappingURL=collection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/utility/collection.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,4BAA4B,CAAC,SAA0B,EAAE,UAAkB;IACzF,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC;IACrB,SAAS,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC5D,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACxD;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAPD,oEAOC"}
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../../src/utility/collection.ts"],"names":[],"mappings":";;;AAEA;;;;;;GAMG;AACH,SAAgB,4BAA4B,CAAC,SAA0B,EAAE,UAAkB;IACzF,SAAS,CAAC,GAAG,KAAK,EAAE,CAAC;IACrB,SAAS,CAAC,GAAG,CAAC,oBAAoB,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE;QAC5D,SAAS,CAAC,GAAG,CAAC,oBAAoB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;KACxD;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAPD,oEAOC;AAED;;;;;;;;;GASG;AACH,SAAgB,6BAA6B,CAAC,SAAiC,EAAE,UAAkB,EAAE,aAAqB,EAAE,OAAqC;IAC/J,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,EAAE,CAAC;KACX;IACD,MAAM,uBAAuB,GAAG;QAC9B,SAAS,CAAC,UAAU;QACpB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,EAAE;KACpF,CAAC;IACF,OAAO,uBAAuB,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC;QACjE,MAAM,CAAC,OAAO,CAAyB,UAAU,CAAC;aAC/C,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,KAAK,KAAK,aAAa,EAAE,IAAI,GAAG,KAAK,GAAG,UAAU,IAAI,CAAC;aAC/E,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QAC/B,EAAE,CACH,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC,EAAC,GAAG,GAAG,EAAE,GAAG,aAAa,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACrE,CAAC;AAdD,sEAcC"}
|
|
@@ -1,6 +1,20 @@
|
|
|
1
1
|
import { WorkspaceSchema } from '../interfaces';
|
|
2
|
-
|
|
2
|
+
import { logging } from '@angular-devkit/core';
|
|
3
|
+
/** Support NPM package managers */
|
|
3
4
|
export type SupportedPackageManagers = 'npm' | 'yarn';
|
|
5
|
+
/** Support NPM package managers */
|
|
6
|
+
export type SupportedPackageManagerRunners = `${SupportedPackageManagers} run` | 'yarn';
|
|
7
|
+
/** Support NPM package managers */
|
|
8
|
+
export type SupportedPackageManagerExecutors = `${SupportedPackageManagers} exec` | 'yarn' | 'npx';
|
|
9
|
+
/** Option to determine Package Manager */
|
|
10
|
+
export interface PackageManagerOptions {
|
|
11
|
+
/** Workspace configuration */
|
|
12
|
+
workspaceConfig?: WorkspaceSchema | string | null;
|
|
13
|
+
/** Package manager to enforce, will be used if supported */
|
|
14
|
+
enforcedNpmManager?: string | null;
|
|
15
|
+
/** Logger to use to report call failure (as debug message) */
|
|
16
|
+
logger?: logging.LoggerApi;
|
|
17
|
+
}
|
|
4
18
|
/**
|
|
5
19
|
* Determine if the given packager manager is supported
|
|
6
20
|
*
|
|
@@ -11,24 +25,19 @@ export declare function isSupportedPackageManager(name?: any): name is Supported
|
|
|
11
25
|
* Get package manager used in runs
|
|
12
26
|
* Defaults to the package manager setup in process.env if no package manager set in angular.json
|
|
13
27
|
*
|
|
14
|
-
* @param options
|
|
15
|
-
* @param options.enforcedNpmManager package manager to enforce, will be used if supported
|
|
16
|
-
* @param options
|
|
28
|
+
* @param options Option to determine the final package manager
|
|
17
29
|
*/
|
|
18
|
-
export declare function getPackageManager(options?:
|
|
19
|
-
workspaceConfig?: WorkspaceSchema | string | null;
|
|
20
|
-
enforcedNpmManager?: string | null;
|
|
21
|
-
}): SupportedPackageManagers;
|
|
30
|
+
export declare function getPackageManager(options?: PackageManagerOptions): SupportedPackageManagers;
|
|
22
31
|
/**
|
|
23
32
|
* Get command to run scripts with your package manager
|
|
24
33
|
*
|
|
25
34
|
* @param workspaceConfig Workspace configuration
|
|
26
35
|
*/
|
|
27
|
-
export declare function getPackageManagerRunner(workspaceConfig?: WorkspaceSchema | string | null):
|
|
36
|
+
export declare function getPackageManagerRunner(workspaceConfig?: WorkspaceSchema | string | null): SupportedPackageManagerRunners;
|
|
28
37
|
/**
|
|
29
38
|
* Get command to execute bin command with your package manager
|
|
30
39
|
*
|
|
31
40
|
* @param workspaceConfig Workspace configuration
|
|
32
41
|
*/
|
|
33
|
-
export declare function getPackageManagerExecutor(workspaceConfig?: WorkspaceSchema | string | null):
|
|
42
|
+
export declare function getPackageManagerExecutor(workspaceConfig?: WorkspaceSchema | string | null): SupportedPackageManagerExecutors;
|
|
34
43
|
//# sourceMappingURL=package-manager-runner.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager-runner.d.ts","sourceRoot":"","sources":["../../../src/utility/package-manager-runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"package-manager-runner.d.ts","sourceRoot":"","sources":["../../../src/utility/package-manager-runner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAE/C,mCAAmC;AACnC,MAAM,MAAM,wBAAwB,GAAG,KAAK,GAAG,MAAM,CAAC;AAEtD,mCAAmC;AACnC,MAAM,MAAM,8BAA8B,GAAG,GAAG,wBAAwB,MAAM,GAAG,MAAM,CAAC;AAExF,mCAAmC;AACnC,MAAM,MAAM,gCAAgC,GAAG,GAAG,wBAAwB,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;AAEnG,0CAA0C;AAC1C,MAAM,WAAW,qBAAqB;IACpC,8BAA8B;IAC9B,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CAAC;IAElD,4DAA4D;IAC5D,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnC,8DAA8D;IAC9D,MAAM,CAAC,EAAE,OAAO,CAAC,SAAS,CAAC;CAC5B;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI,IAAI,wBAAwB,CAEtF;AAaD;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,qBAAqB,4BAWhE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,kCAExF;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,eAAe,CAAC,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,oCAE1F"}
|
|
@@ -25,9 +25,7 @@ function getPackageManagerName(enforcedNpmManager) {
|
|
|
25
25
|
* Get package manager used in runs
|
|
26
26
|
* Defaults to the package manager setup in process.env if no package manager set in angular.json
|
|
27
27
|
*
|
|
28
|
-
* @param options
|
|
29
|
-
* @param options.enforcedNpmManager package manager to enforce, will be used if supported
|
|
30
|
-
* @param options
|
|
28
|
+
* @param options Option to determine the final package manager
|
|
31
29
|
*/
|
|
32
30
|
function getPackageManager(options) {
|
|
33
31
|
let packageManagerFromWorkspace;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-manager-runner.js","sourceRoot":"","sources":["../../../src/utility/package-manager-runner.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;
|
|
1
|
+
{"version":3,"file":"package-manager-runner.js","sourceRoot":"","sources":["../../../src/utility/package-manager-runner.ts"],"names":[],"mappings":";;;AAAA,4CAA4C;AAyB5C;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,IAAU;IAClD,OAAO,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,KAAK,CAAC;AAC3C,CAAC;AAFD,8DAEC;AAED;;;;GAIG;AACH,SAAS,qBAAqB,CAAC,kBAA6C;IAC1E,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,OAAO,CAAC,GAAG,EAAE,wBAAwB,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC;IACzI,MAAM,qBAAqB,GAAG,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC;IACpF,OAAO,kBAAkB,IAAI,uBAAuB,IAAI,qBAAqB,IAAI,KAAK,CAAC;AACzF,CAAC;AAED;;;;;GAKG;AACH,SAAgB,iBAAiB,CAAC,OAA+B;IAC/D,IAAI,2BAA+C,CAAC;IACpD,IAAI,OAAO,EAAE,eAAe,EAAE;QAC5B,MAAM,cAAc,GAAG,CAAC,OAAO,OAAO,EAAE,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAE,WAAW,CAAC,KAAK,CAAC,OAAO,EAAE,eAAe,CAAgC,CAAC,CAAC,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QAC/K,IAAI,cAAc,EAAE,GAAG,EAAE,cAAc,EAAE;YACvC,2BAA2B,GAAG,cAAc,CAAC,GAAG,CAAC,cAAc,CAAC;SACjE;KACF;IACD,MAAM,kBAAkB,GAAG,OAAO,EAAE,kBAAkB,IAAI,yBAAyB,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC;IACzJ,MAAM,mBAAmB,GAAG,yBAAyB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7H,OAAO,qBAAqB,CAAC,kBAAkB,IAAI,mBAAmB,CAAC,CAAC;AAC1E,CAAC;AAXD,8CAWC;AAED;;;;GAIG;AACH,SAAgB,uBAAuB,CAAC,eAAiD;IACvF,OAAO,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,MAAwC,CAAC;AAC3F,CAAC;AAFD,0DAEC;AAED;;;;GAIG;AACH,SAAgB,yBAAyB,CAAC,eAAiD;IACzF,OAAO,iBAAiB,CAAC,EAAE,eAAe,EAAE,CAAC,GAAG,OAA2C,CAAC;AAC9F,CAAC;AAFD,8DAEC"}
|