@yeoman/types 0.4.0 → 0.5.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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yeoman/types",
3
- "version": "0.4.0",
3
+ "version": "0.5.0",
4
4
  "private": false,
5
5
  "description": "Common API for yeoman's generator/environment stack",
6
6
  "keywords": [
@@ -56,5 +56,5 @@
56
56
  "access": "public",
57
57
  "registry": "https://registry.npmjs.org/"
58
58
  },
59
- "gitHead": "fddebd6424725b9636af96a643a25f00f7314a77"
59
+ "gitHead": "3ed560f6ed88dc0e2cc414b77676462f2934aad2"
60
60
  }
@@ -4,9 +4,16 @@ import type { MemFsEditorFile } from 'mem-fs-editor';
4
4
 
5
5
  import type { BaseGeneratorOptions } from '../generator/generator-options.js';
6
6
  import type { BaseGenerator, BaseGeneratorConstructor } from '../generator/generator.js';
7
- import type { GetGeneratorConstructor, GetGeneratorOptions } from '../generator/utils.js';
7
+ import type { GetGeneratorConstructor } from '../generator/utils.js';
8
8
  import type { InputOutputAdapter } from './adapter.js';
9
- import type { GeneratorMeta, LookupGeneratorMeta, LookupOptions, BaseGeneratorMeta } from './methods-options.js';
9
+ import type {
10
+ GeneratorMeta,
11
+ LookupGeneratorMeta,
12
+ LookupOptions,
13
+ BaseGeneratorMeta,
14
+ InstantiateOptions,
15
+ ComposeOptions,
16
+ } from './methods-options.js';
10
17
 
11
18
  export type EnvironmentConstructor<A extends InputOutputAdapter = InputOutputAdapter> = new (
12
19
  options?: BaseEnvironmentOptions,
@@ -39,7 +46,7 @@ export type ApplyTransformsOptions = {
39
46
  name?: string;
40
47
  log?: boolean;
41
48
  stream?: ReturnType<Store<MemFsEditorFile>['stream']>;
42
- streamOptions: Parameters<Store<MemFsEditorFile>['stream']>[0];
49
+ streamOptions?: Parameters<Store<MemFsEditorFile>['stream']>[0];
43
50
  };
44
51
 
45
52
  export type BaseEnvironment<A = InputOutputAdapter, S extends Store<MemFsEditorFile> = Store<MemFsEditorFile>> = {
@@ -65,14 +72,17 @@ export type BaseEnvironment<A = InputOutputAdapter, S extends Store<MemFsEditorF
65
72
 
66
73
  create<G extends BaseGenerator = BaseGenerator>(
67
74
  namespaceOrPath: string | GetGeneratorConstructor<G>,
68
- args: string[],
69
- options?: Partial<Omit<GetGeneratorOptions<G>, 'env' | 'resolved' | 'namespace'>>,
75
+ instantiateOptions: InstantiateOptions<G>,
70
76
  ): Promise<G>;
71
77
 
72
78
  instantiate<G extends BaseGenerator = BaseGenerator>(
73
79
  generator: GetGeneratorConstructor<G>,
74
- args: string[],
75
- options?: Partial<Omit<GetGeneratorOptions<G>, 'env' | 'resolved' | 'namespace'>>,
80
+ instantiateOptions: InstantiateOptions<G>,
81
+ ): Promise<G>;
82
+
83
+ composeWith<G extends BaseGenerator = BaseGenerator>(
84
+ generator: string | GetGeneratorConstructor<G>,
85
+ composeOptions?: ComposeOptions<G>,
76
86
  ): Promise<G>;
77
87
 
78
88
  /**
@@ -117,10 +127,9 @@ export type BaseEnvironment<A = InputOutputAdapter, S extends Store<MemFsEditorF
117
127
  *
118
128
  * @param dependency The name of the dependency.
119
129
  */
120
- // eslint-disable-next-line @typescript-eslint/unified-signatures
121
- getVersion(dependency: string): string;
130
+ getVersion(dependency: string): string | undefined;
122
131
 
123
- queueGenerator<G extends BaseGenerator = BaseGenerator>(generator: G, schedule?: boolean): Promise<G>;
132
+ queueGenerator<G extends BaseGenerator = BaseGenerator>(generator: G, queueOptions?: { schedule?: boolean }): Promise<G>;
124
133
 
125
134
  rootGenerator<G extends BaseGenerator = BaseGenerator>(): G;
126
135
 
@@ -133,7 +142,7 @@ export type BaseEnvironment<A = InputOutputAdapter, S extends Store<MemFsEditorF
133
142
  * @param filePath The filepath to the generator or an npm package name.
134
143
  * @param meta Generator metadata.
135
144
  */
136
- register(filePath: string, meta?: Partial<BaseGeneratorMeta>): void;
145
+ register(filePath: string, meta?: Partial<BaseGeneratorMeta>): GeneratorMeta;
137
146
 
138
147
  /**
139
148
  * Registers a stubbed generator to this environment.
@@ -141,7 +150,7 @@ export type BaseEnvironment<A = InputOutputAdapter, S extends Store<MemFsEditorF
141
150
  * @param generator The generator constructor.
142
151
  * @param meta Generator metadata.
143
152
  */
144
- register(generator: unknown, meta: BaseGeneratorMeta): void;
153
+ register(generator: unknown, meta: BaseGeneratorMeta): GeneratorMeta;
145
154
 
146
155
  /**
147
156
  * Queue tasks
@@ -181,7 +190,7 @@ export type BaseEnvironment<A = InputOutputAdapter, S extends Store<MemFsEditorF
181
190
  * @param packageNamespace The package-namespace to check.
182
191
  * @returns A value indicating whether a package with the specified `packageNamespace` has been registered.
183
192
  */
184
- isPackageRegistered(packageNamespace?: string): boolean;
193
+ isPackageRegistered(packageNamespace: string): boolean;
185
194
 
186
195
  /**
187
196
  * Gets the namespaces of all registered packages.
@@ -191,5 +200,5 @@ export type BaseEnvironment<A = InputOutputAdapter, S extends Store<MemFsEditorF
191
200
  /**
192
201
  * Returns stored generators meta
193
202
  */
194
- getGeneratorMeta(namespace: string): GeneratorMeta;
203
+ getGeneratorMeta(namespace: string): GeneratorMeta | undefined;
195
204
  };
@@ -1,4 +1,4 @@
1
- import { type BaseGenerator, type GetGeneratorConstructor } from '../index.js';
1
+ import type { GetGeneratorOptions, BaseGenerator, GetGeneratorConstructor } from '../index.js';
2
2
 
3
3
  /**
4
4
  * Provides options for the `lookup` method.
@@ -51,17 +51,17 @@ export type LookupGeneratorMeta = {
51
51
  /**
52
52
  * The resolved path to the generator.
53
53
  */
54
- generatorPath: string;
54
+ generatorPath?: string;
55
55
 
56
56
  /**
57
57
  * The namespace of the generator.
58
58
  */
59
- namespace: string;
59
+ namespace?: string;
60
60
 
61
61
  /**
62
62
  * The path to the package containing the generator.
63
63
  */
64
- packagePath: string;
64
+ packagePath?: string;
65
65
  };
66
66
 
67
67
  export type BaseGeneratorMeta = {
@@ -80,7 +80,14 @@ export type GeneratorMeta = BaseGeneratorMeta & {
80
80
  /** Import the module `import(meta.resolved)` */
81
81
  importModule?: () => Promise<unknown>;
82
82
  /** Intantiate the Generator `env.instantiate(await meta.importGenerator())` */
83
- instantiate: <G extends BaseGenerator = BaseGenerator>(args?: string[], options?: any) => Promise<G>;
83
+ instantiate: (args?: string[], options?: any) => Promise<BaseGenerator>;
84
84
  /** Intantiate the Generator passing help option */
85
- instantiateHelp: <G extends BaseGenerator = BaseGenerator>() => Promise<G>;
85
+ instantiateHelp: () => Promise<BaseGenerator>;
86
86
  };
87
+
88
+ export type InstantiateOptions<G extends BaseGenerator = BaseGenerator> = {
89
+ generatorArgs?: string[];
90
+ generatorOptions?: Partial<Omit<GetGeneratorOptions<G>, 'env' | 'resolved' | 'namespace'>> | undefined;
91
+ };
92
+
93
+ export type ComposeOptions<G extends BaseGenerator = BaseGenerator> = InstantiateOptions<G> & { schedule?: boolean };
@@ -24,6 +24,7 @@ export type BaseGenerator<
24
24
  readonly features: F | undefined;
25
25
  };
26
26
 
27
- export type BaseGeneratorConstructor<O extends GeneratorOptions = GeneratorOptions, F extends GeneratorFeatures = GeneratorFeatures> =
28
- | (new (args?: string[], options?: O, features?: F) => BaseGenerator<O, F>)
29
- | (new (options?: O, features?: F) => BaseGenerator<O, F>);
27
+ export type BaseGeneratorConstructor<
28
+ O extends GeneratorOptions = GeneratorOptions,
29
+ F extends GeneratorFeatures = GeneratorFeatures,
30
+ > = (new (args?: string[], options?: O, features?: F) => BaseGenerator<O, F>) & (new (options?: O, features?: F) => BaseGenerator<O, F>);