yeoman-environment 4.0.0 → 4.1.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/dist/composed-store.d.ts
CHANGED
|
@@ -22,5 +22,9 @@ export declare class ComposedStore {
|
|
|
22
22
|
uniqueBy?: undefined;
|
|
23
23
|
};
|
|
24
24
|
getUniqueByPathMap(root: string): Map<string, BaseGenerator>;
|
|
25
|
-
|
|
25
|
+
findFeature(featureName: string): Array<{
|
|
26
|
+
generatorId: string;
|
|
27
|
+
feature: any;
|
|
28
|
+
}>;
|
|
29
|
+
private findUniqueFeature;
|
|
26
30
|
}
|
package/dist/composed-store.js
CHANGED
|
@@ -11,10 +11,10 @@ export class ComposedStore {
|
|
|
11
11
|
this.log = log;
|
|
12
12
|
}
|
|
13
13
|
get customCommitTask() {
|
|
14
|
-
return this.
|
|
14
|
+
return this.findUniqueFeature('customCommitTask');
|
|
15
15
|
}
|
|
16
16
|
get customInstallTask() {
|
|
17
|
-
return this.
|
|
17
|
+
return this.findUniqueFeature('customInstallTask');
|
|
18
18
|
}
|
|
19
19
|
getGenerators() {
|
|
20
20
|
return { ...this.generators };
|
|
@@ -53,19 +53,22 @@ export class ComposedStore {
|
|
|
53
53
|
}
|
|
54
54
|
return this.uniqueByPathMap.get(root);
|
|
55
55
|
}
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
findFeature(featureName) {
|
|
57
|
+
return Object.entries(this.generators)
|
|
58
58
|
.map(([generatorId, generator]) => {
|
|
59
59
|
const { features = generator.getFeatures?.() } = generator;
|
|
60
60
|
const feature = features?.[featureName];
|
|
61
|
-
return feature ?
|
|
61
|
+
return feature ? { generatorId, feature } : undefined;
|
|
62
62
|
})
|
|
63
63
|
.filter(Boolean);
|
|
64
|
+
}
|
|
65
|
+
findUniqueFeature(featureName) {
|
|
66
|
+
const providedFeatures = this.findFeature(featureName);
|
|
64
67
|
if (providedFeatures.length > 0) {
|
|
65
68
|
if (providedFeatures.length > 1) {
|
|
66
|
-
this.log?.info?.(`Multiple ${featureName} tasks found (${providedFeatures.map((
|
|
69
|
+
this.log?.info?.(`Multiple ${featureName} tasks found (${providedFeatures.map(({ generatorId }) => generatorId).join(', ')}). Using the first.`);
|
|
67
70
|
}
|
|
68
|
-
const
|
|
71
|
+
const { generatorId, feature } = providedFeatures[0];
|
|
69
72
|
debug(`Feature ${featureName} provided by ${generatorId}`);
|
|
70
73
|
return feature;
|
|
71
74
|
}
|
|
@@ -49,6 +49,10 @@ export default class EnvironmentBase extends EventEmitter implements BaseEnviron
|
|
|
49
49
|
protected _rootGenerator?: BaseGenerator;
|
|
50
50
|
protected compatibilityMode?: false | 'v4';
|
|
51
51
|
constructor(options?: EnvironmentOptions);
|
|
52
|
+
findFeature(featureName: string): Array<{
|
|
53
|
+
generatorId: string;
|
|
54
|
+
feature: any;
|
|
55
|
+
}>;
|
|
52
56
|
applyTransforms(transformStreams: FilePipelineTransform[], options?: ApplyTransformsOptions): Promise<void>;
|
|
53
57
|
/**
|
|
54
58
|
* Get a single generator from the registered list of generators. The lookup is
|
package/dist/environment-base.js
CHANGED
|
@@ -136,6 +136,9 @@ export default class EnvironmentBase extends EventEmitter {
|
|
|
136
136
|
this.experimental = experimental || process.argv.includes('--experimental');
|
|
137
137
|
this.alias(/^([^:]+)$/, '$1:app');
|
|
138
138
|
}
|
|
139
|
+
findFeature(featureName) {
|
|
140
|
+
return this.composedStore.findFeature(featureName);
|
|
141
|
+
}
|
|
139
142
|
async applyTransforms(transformStreams, options = {}) {
|
|
140
143
|
const { streamOptions = { filter: file => isFilePending(file) }, stream = this.sharedFs.stream(streamOptions), name = 'Transforming', } = options;
|
|
141
144
|
if (!Array.isArray(transformStreams)) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "yeoman-environment",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.1.1",
|
|
4
4
|
"description": "Handles the lifecyle and bootstrapping of generators in a specific environment",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"development",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"prettier": "3.0.3",
|
|
91
91
|
"prettier-plugin-packagejson": "^2.4.6",
|
|
92
92
|
"rimraf": "^5.0.5",
|
|
93
|
-
"sinon": "^
|
|
93
|
+
"sinon": "^17.0.0",
|
|
94
94
|
"sinon-test": "^3.1.5",
|
|
95
95
|
"strip-ansi": "^7.1.0",
|
|
96
96
|
"typescript": "5.2.2",
|
|
@@ -99,8 +99,9 @@
|
|
|
99
99
|
"yeoman-environment": "file:./",
|
|
100
100
|
"yeoman-generator-2": "npm:yeoman-generator@^2.0.5",
|
|
101
101
|
"yeoman-generator-4": "npm:yeoman-generator@^4.13.0",
|
|
102
|
-
"yeoman-generator-5": "npm:yeoman-generator@^5.
|
|
102
|
+
"yeoman-generator-5": "npm:yeoman-generator@^5.10.0",
|
|
103
103
|
"yeoman-generator-6": "npm:yeoman-generator@^6.0.1",
|
|
104
|
+
"yeoman-generator-7": "npm:yeoman-generator@^7.0.0",
|
|
104
105
|
"yeoman-test": "^8.1.0"
|
|
105
106
|
},
|
|
106
107
|
"overrides": {
|