@schematics/angular 22.0.0-next.7 → 22.0.0-next.8
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/config/index.js +1 -1
- package/migrations/migrate-karma-to-vitest/karma-config-analyzer.js +1 -0
- package/migrations/migrate-karma-to-vitest/karma-config-analyzer.js.map +1 -1
- package/migrations/migrate-karma-to-vitest/karma-processor.d.ts +6 -1
- package/migrations/migrate-karma-to-vitest/karma-processor.js +14 -18
- package/migrations/migrate-karma-to-vitest/karma-processor.js.map +1 -1
- package/migrations/migrate-karma-to-vitest/migration.js +99 -27
- package/migrations/migrate-karma-to-vitest/migration.js.map +1 -1
- package/package.json +4 -4
- package/refactor/jasmine-vitest/index.js +1 -0
- package/refactor/jasmine-vitest/index.js.map +1 -1
- package/refactor/jasmine-vitest/schema.d.ts +4 -0
- package/refactor/jasmine-vitest/schema.json +5 -0
- package/refactor/jasmine-vitest/test-file-transformer.d.ts +1 -0
- package/refactor/jasmine-vitest/test-file-transformer.js +25 -2
- package/refactor/jasmine-vitest/test-file-transformer.js.map +1 -1
- package/refactor/jasmine-vitest/transformers/fake-async-flush-microtasks.d.ts +10 -0
- package/refactor/jasmine-vitest/transformers/fake-async-flush-microtasks.js +29 -0
- package/refactor/jasmine-vitest/transformers/fake-async-flush-microtasks.js.map +1 -0
- package/refactor/jasmine-vitest/transformers/fake-async-flush.d.ts +10 -0
- package/refactor/jasmine-vitest/transformers/fake-async-flush.js +45 -0
- package/refactor/jasmine-vitest/transformers/fake-async-flush.js.map +1 -0
- package/refactor/jasmine-vitest/transformers/fake-async-test.d.ts +14 -0
- package/refactor/jasmine-vitest/transformers/fake-async-test.js +145 -0
- package/refactor/jasmine-vitest/transformers/fake-async-test.js.map +1 -0
- package/refactor/jasmine-vitest/transformers/fake-async-tick.d.ts +10 -0
- package/refactor/jasmine-vitest/transformers/fake-async-tick.js +30 -0
- package/refactor/jasmine-vitest/transformers/fake-async-tick.js.map +1 -0
- package/refactor/jasmine-vitest/transformers/jasmine-misc.d.ts +1 -1
- package/refactor/jasmine-vitest/transformers/jasmine-misc.js +7 -4
- package/refactor/jasmine-vitest/transformers/jasmine-misc.js.map +1 -1
- package/refactor/jasmine-vitest/transformers/jasmine-spy.d.ts +2 -2
- package/refactor/jasmine-vitest/transformers/jasmine-spy.js +12 -9
- package/refactor/jasmine-vitest/transformers/jasmine-spy.js.map +1 -1
- package/refactor/jasmine-vitest/utils/ast-helpers.d.ts +12 -1
- package/refactor/jasmine-vitest/utils/ast-helpers.js +67 -8
- package/refactor/jasmine-vitest/utils/ast-helpers.js.map +1 -1
- package/refactor/jasmine-vitest/utils/constants.d.ts +8 -0
- package/refactor/jasmine-vitest/utils/constants.js +12 -0
- package/refactor/jasmine-vitest/utils/constants.js.map +1 -0
- package/refactor/jasmine-vitest/utils/refactor-context.d.ts +5 -0
- package/refactor/jasmine-vitest/utils/refactor-helpers.d.ts +39 -0
- package/refactor/jasmine-vitest/utils/refactor-helpers.js +58 -0
- package/refactor/jasmine-vitest/utils/refactor-helpers.js.map +1 -0
- package/refactor/jasmine-vitest/utils/todo-notes.d.ts +6 -0
- package/refactor/jasmine-vitest/utils/todo-notes.js +6 -0
- package/refactor/jasmine-vitest/utils/todo-notes.js.map +1 -1
- package/service/files/__name@dasherize__.__type@dasherize__.ts.template +3 -3
- package/service/schema.d.ts +4 -0
- package/service/schema.json +5 -0
- package/utility/latest-versions/package.json +1 -0
- package/utility/latest-versions.js +3 -3
|
@@ -13,10 +13,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
13
|
exports.addVitestValueImport = addVitestValueImport;
|
|
14
14
|
exports.addVitestTypeImport = addVitestTypeImport;
|
|
15
15
|
exports.getVitestAutoImports = getVitestAutoImports;
|
|
16
|
-
exports.createViCallExpression = createViCallExpression;
|
|
17
16
|
exports.createExpectCallExpression = createExpectCallExpression;
|
|
18
17
|
exports.createPropertyAccess = createPropertyAccess;
|
|
19
18
|
exports.getPromiseResolveRejectMethod = getPromiseResolveRejectMethod;
|
|
19
|
+
exports.isNamedImportFrom = isNamedImportFrom;
|
|
20
|
+
exports.removeImportSpecifiers = removeImportSpecifiers;
|
|
20
21
|
const typescript_1 = __importDefault(require("typescript"));
|
|
21
22
|
function addVitestValueImport(imports, importName) {
|
|
22
23
|
imports.add(importName);
|
|
@@ -40,13 +41,8 @@ function getVitestAutoImports(valueImports, typeImports) {
|
|
|
40
41
|
allSpecifiers.push(typescript_1.default.factory.createImportSpecifier(!isClauseTypeOnly, undefined, typescript_1.default.factory.createIdentifier(i)));
|
|
41
42
|
}
|
|
42
43
|
allSpecifiers.sort((a, b) => a.name.text.localeCompare(b.name.text));
|
|
43
|
-
|
|
44
|
-
undefined, typescript_1.default.factory.createNamedImports(allSpecifiers));
|
|
45
|
-
return typescript_1.default.factory.createImportDeclaration(undefined, importClause, typescript_1.default.factory.createStringLiteral('vitest'));
|
|
46
|
-
}
|
|
47
|
-
function createViCallExpression(methodName, args = [], typeArgs = undefined) {
|
|
48
|
-
const callee = typescript_1.default.factory.createPropertyAccessExpression(typescript_1.default.factory.createIdentifier('vi'), methodName);
|
|
49
|
-
return typescript_1.default.factory.createCallExpression(callee, typeArgs, args);
|
|
44
|
+
return typescript_1.default.factory.createImportDeclaration(undefined, typescript_1.default.factory.createImportClause(isClauseTypeOnly, // Set isTypeOnly on the clause if only type imports
|
|
45
|
+
undefined, typescript_1.default.factory.createNamedImports(allSpecifiers)), typescript_1.default.factory.createStringLiteral('vitest'));
|
|
50
46
|
}
|
|
51
47
|
function createExpectCallExpression(args, typeArgs = undefined) {
|
|
52
48
|
return typescript_1.default.factory.createCallExpression(typescript_1.default.factory.createIdentifier('expect'), typeArgs, args);
|
|
@@ -76,4 +72,67 @@ function getPromiseResolveRejectMethod(node) {
|
|
|
76
72
|
arguments: node.arguments,
|
|
77
73
|
};
|
|
78
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Checks if a named binding is imported from the given module in the source file.
|
|
77
|
+
* @param sourceFile The source file to search for imports.
|
|
78
|
+
* @param name The import name (e.g. 'flush', 'tick').
|
|
79
|
+
* @param moduleSpecifier The module path (e.g. '@angular/core/testing').
|
|
80
|
+
*/
|
|
81
|
+
function isNamedImportFrom(sourceFile, name, moduleSpecifier) {
|
|
82
|
+
return sourceFile.statements.some((statement) => {
|
|
83
|
+
if (!_isImportDeclarationWithNamedBindings(statement)) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
const specifier = statement.moduleSpecifier;
|
|
87
|
+
const modulePath = typescript_1.default.isStringLiteralLike(specifier) ? specifier.text : null;
|
|
88
|
+
if (modulePath !== moduleSpecifier) {
|
|
89
|
+
return false;
|
|
90
|
+
}
|
|
91
|
+
for (const element of statement.importClause.namedBindings.elements) {
|
|
92
|
+
const importedName = element.propertyName ? element.propertyName.text : element.name.text;
|
|
93
|
+
if (importedName === name) {
|
|
94
|
+
return true;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Removes specified import specifiers from ImportDeclarations.
|
|
101
|
+
* If all specifiers are removed from an import, the entire import is dropped.
|
|
102
|
+
*/
|
|
103
|
+
function removeImportSpecifiers(sourceFile, removals) {
|
|
104
|
+
const newStatements = sourceFile.statements
|
|
105
|
+
.map((statement) => {
|
|
106
|
+
if (!_isImportDeclarationWithNamedBindings(statement)) {
|
|
107
|
+
return statement;
|
|
108
|
+
}
|
|
109
|
+
const specifier = statement.moduleSpecifier;
|
|
110
|
+
const modulePath = typescript_1.default.isStringLiteralLike(specifier) ? specifier.text : null;
|
|
111
|
+
if (modulePath === null) {
|
|
112
|
+
return statement;
|
|
113
|
+
}
|
|
114
|
+
const namesToRemove = removals.get(modulePath);
|
|
115
|
+
if (namesToRemove === undefined || namesToRemove.size === 0) {
|
|
116
|
+
return statement;
|
|
117
|
+
}
|
|
118
|
+
const remaining = statement.importClause.namedBindings.elements.filter((el) => {
|
|
119
|
+
const name = el.propertyName ? el.propertyName.text : el.name.text;
|
|
120
|
+
return !namesToRemove.has(name);
|
|
121
|
+
});
|
|
122
|
+
if (remaining.length === 0) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
if (remaining.length === statement.importClause.namedBindings.elements.length) {
|
|
126
|
+
return statement;
|
|
127
|
+
}
|
|
128
|
+
return typescript_1.default.factory.updateImportDeclaration(statement, statement.modifiers, typescript_1.default.factory.updateImportClause(statement.importClause, undefined, statement.importClause.name, typescript_1.default.factory.createNamedImports(remaining)), statement.moduleSpecifier, statement.attributes);
|
|
129
|
+
})
|
|
130
|
+
.filter((statement) => statement !== undefined);
|
|
131
|
+
return typescript_1.default.factory.updateSourceFile(sourceFile, newStatements);
|
|
132
|
+
}
|
|
133
|
+
function _isImportDeclarationWithNamedBindings(statement) {
|
|
134
|
+
return (typescript_1.default.isImportDeclaration(statement) &&
|
|
135
|
+
statement.importClause?.namedBindings !== undefined &&
|
|
136
|
+
typescript_1.default.isNamedImports(statement.importClause.namedBindings));
|
|
137
|
+
}
|
|
79
138
|
//# sourceMappingURL=ast-helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ast-helpers.js","sourceRoot":"","sources":["ast-helpers.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAIH,oDAEC;AAED,kDAEC;AAED,
|
|
1
|
+
{"version":3,"file":"ast-helpers.js","sourceRoot":"","sources":["ast-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
7
|
+
*/
|
|
8
|
+
export declare const ANGULAR_CORE_TESTING = "@angular/core/testing";
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
+
*/
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.ANGULAR_CORE_TESTING = void 0;
|
|
11
|
+
exports.ANGULAR_CORE_TESTING = '@angular/core/testing';
|
|
12
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["constants.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;AAEU,QAAA,oBAAoB,GAAG,uBAAuB,CAAC"}
|
|
@@ -22,6 +22,11 @@ export interface RefactorContext {
|
|
|
22
22
|
readonly pendingVitestValueImports: Set<string>;
|
|
23
23
|
/** A set of Vitest type imports to be added to the file. */
|
|
24
24
|
readonly pendingVitestTypeImports: Set<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Map of module specifier -> names to remove from that import.
|
|
27
|
+
* Used when transforming identifiers that become inlined (e.g. flush -> vi.runAllTimersAsync).
|
|
28
|
+
*/
|
|
29
|
+
readonly pendingImportSpecifierRemovals: Map<string, Set<string>>;
|
|
25
30
|
}
|
|
26
31
|
/**
|
|
27
32
|
* A generic transformer function that operates on a specific type of ts.Node.
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google LLC All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
7
|
+
*/
|
|
8
|
+
import ts from 'typescript';
|
|
9
|
+
import { RefactorContext } from './refactor-context';
|
|
10
|
+
/**
|
|
11
|
+
* Marks an identifier to be removed from an import specifier.
|
|
12
|
+
*
|
|
13
|
+
* @param ctx The refactor context object.
|
|
14
|
+
* @param name The name of the identifier to remove from the import specifier.
|
|
15
|
+
* @param moduleSpecifier The module specifier to remove the identifier from.
|
|
16
|
+
*/
|
|
17
|
+
export declare function addImportSpecifierRemoval(ctx: RefactorContext, name: string, moduleSpecifier: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* Creates a call expression to a vitest method.
|
|
20
|
+
* This also adds the `vi` identifier to the context object,
|
|
21
|
+
* to import it later if addImports option is enabled.
|
|
22
|
+
*
|
|
23
|
+
* @param ctx The refactor context object.
|
|
24
|
+
* @param args The arguments to pass to the method.
|
|
25
|
+
* @param typeArgs The type arguments to pass to the method.
|
|
26
|
+
* @param methodeName The name of the vitest method to call.
|
|
27
|
+
* @returns The created identifier node.
|
|
28
|
+
*/
|
|
29
|
+
export declare function createViCallExpression(ctx: RefactorContext, methodName: string, args?: readonly ts.Expression[], typeArgs?: ts.TypeNode[] | undefined): ts.CallExpression;
|
|
30
|
+
/**
|
|
31
|
+
* Creates an identifier for a vitest value import.
|
|
32
|
+
* This also adds the identifier to the context object,
|
|
33
|
+
* to import it later if addImports option is enabled.
|
|
34
|
+
*
|
|
35
|
+
* @param ctx The refactor context object.
|
|
36
|
+
* @param name The name of the vitest identifier to require.
|
|
37
|
+
* @returns The created identifier node.
|
|
38
|
+
*/
|
|
39
|
+
export declare function requireVitestIdentifier(ctx: RefactorContext, name: string): ts.Identifier;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @license
|
|
4
|
+
* Copyright Google LLC All Rights Reserved.
|
|
5
|
+
*
|
|
6
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
7
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
8
|
+
*/
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.addImportSpecifierRemoval = addImportSpecifierRemoval;
|
|
14
|
+
exports.createViCallExpression = createViCallExpression;
|
|
15
|
+
exports.requireVitestIdentifier = requireVitestIdentifier;
|
|
16
|
+
const typescript_1 = __importDefault(require("typescript"));
|
|
17
|
+
/**
|
|
18
|
+
* Marks an identifier to be removed from an import specifier.
|
|
19
|
+
*
|
|
20
|
+
* @param ctx The refactor context object.
|
|
21
|
+
* @param name The name of the identifier to remove from the import specifier.
|
|
22
|
+
* @param moduleSpecifier The module specifier to remove the identifier from.
|
|
23
|
+
*/
|
|
24
|
+
function addImportSpecifierRemoval(ctx, name, moduleSpecifier) {
|
|
25
|
+
const removals = ctx.pendingImportSpecifierRemovals.get(moduleSpecifier) ?? new Set();
|
|
26
|
+
removals.add(name);
|
|
27
|
+
ctx.pendingImportSpecifierRemovals.set(moduleSpecifier, removals);
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Creates a call expression to a vitest method.
|
|
31
|
+
* This also adds the `vi` identifier to the context object,
|
|
32
|
+
* to import it later if addImports option is enabled.
|
|
33
|
+
*
|
|
34
|
+
* @param ctx The refactor context object.
|
|
35
|
+
* @param args The arguments to pass to the method.
|
|
36
|
+
* @param typeArgs The type arguments to pass to the method.
|
|
37
|
+
* @param methodeName The name of the vitest method to call.
|
|
38
|
+
* @returns The created identifier node.
|
|
39
|
+
*/
|
|
40
|
+
function createViCallExpression(ctx, methodName, args = [], typeArgs = undefined) {
|
|
41
|
+
const vi = requireVitestIdentifier(ctx, 'vi');
|
|
42
|
+
const callee = typescript_1.default.factory.createPropertyAccessExpression(vi, methodName);
|
|
43
|
+
return typescript_1.default.factory.createCallExpression(callee, typeArgs, args);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Creates an identifier for a vitest value import.
|
|
47
|
+
* This also adds the identifier to the context object,
|
|
48
|
+
* to import it later if addImports option is enabled.
|
|
49
|
+
*
|
|
50
|
+
* @param ctx The refactor context object.
|
|
51
|
+
* @param name The name of the vitest identifier to require.
|
|
52
|
+
* @returns The created identifier node.
|
|
53
|
+
*/
|
|
54
|
+
function requireVitestIdentifier(ctx, name) {
|
|
55
|
+
ctx.pendingVitestValueImports.add(name);
|
|
56
|
+
return typescript_1.default.factory.createIdentifier(name);
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=refactor-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"refactor-helpers.js","sourceRoot":"","sources":["refactor-helpers.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;AAYH,8DAQC;AAaD,wDAUC;AAWD,0DAIC;AAxDD,4DAA4B;AAG5B;;;;;;GAMG;AACH,SAAgB,yBAAyB,CACvC,GAAoB,EACpB,IAAY,EACZ,eAAuB;IAEvB,MAAM,QAAQ,GAAG,GAAG,CAAC,8BAA8B,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,IAAI,GAAG,EAAU,CAAC;IAC9F,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,8BAA8B,CAAC,GAAG,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC;AACpE,CAAC;AAED;;;;;;;;;;GAUG;AACH,SAAgB,sBAAsB,CACpC,GAAoB,EACpB,UAAkB,EAClB,OAAiC,EAAE,EACnC,WAAsC,SAAS;IAE/C,MAAM,EAAE,GAAG,uBAAuB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC9C,MAAM,MAAM,GAAG,oBAAE,CAAC,OAAO,CAAC,8BAA8B,CAAC,EAAE,EAAE,UAAU,CAAC,CAAC;IAEzE,OAAO,oBAAE,CAAC,OAAO,CAAC,oBAAoB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;AACjE,CAAC;AAED;;;;;;;;GAQG;AACH,SAAgB,uBAAuB,CAAC,GAAoB,EAAE,IAAY;IACxE,GAAG,CAAC,yBAAyB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAExC,OAAO,oBAAE,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC"}
|
|
@@ -148,6 +148,12 @@ export declare const TODO_NOTES: {
|
|
|
148
148
|
readonly 'unhandled-done-usage': {
|
|
149
149
|
readonly message: "The 'done' callback was used in an unhandled way. Please migrate manually.";
|
|
150
150
|
};
|
|
151
|
+
readonly 'flush-max-turns': {
|
|
152
|
+
readonly message: "flush(maxTurns) was called but maxTurns parameter is not migrated. Please migrate manually.";
|
|
153
|
+
};
|
|
154
|
+
readonly 'flush-return-value': {
|
|
155
|
+
readonly message: "flush() return value is not migrated. Please migrate manually.";
|
|
156
|
+
};
|
|
151
157
|
};
|
|
152
158
|
/**
|
|
153
159
|
* A union type of all possible "TODO" categories.
|
|
@@ -151,5 +151,11 @@ exports.TODO_NOTES = {
|
|
|
151
151
|
'unhandled-done-usage': {
|
|
152
152
|
message: "The 'done' callback was used in an unhandled way. Please migrate manually.",
|
|
153
153
|
},
|
|
154
|
+
'flush-max-turns': {
|
|
155
|
+
message: 'flush(maxTurns) was called but maxTurns parameter is not migrated. Please migrate manually.',
|
|
156
|
+
},
|
|
157
|
+
'flush-return-value': {
|
|
158
|
+
message: 'flush() return value is not migrated. Please migrate manually.',
|
|
159
|
+
},
|
|
154
160
|
};
|
|
155
161
|
//# sourceMappingURL=todo-notes.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"todo-notes.js","sourceRoot":"","sources":["todo-notes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"todo-notes.js","sourceRoot":"","sources":["todo-notes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { <%= injectable ? 'Injectable' : 'Service' %> } from '@angular/core';
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
<% if (injectable) { %>@Injectable({
|
|
4
4
|
providedIn: 'root',
|
|
5
|
-
})
|
|
5
|
+
})<% } else { %>@Service()<% } %>
|
|
6
6
|
export class <%= classifiedName %> {
|
|
7
7
|
|
|
8
8
|
}
|
package/service/schema.d.ts
CHANGED
|
@@ -14,6 +14,10 @@ export type Schema = {
|
|
|
14
14
|
* folder with the service's name will be created to contain the files.
|
|
15
15
|
*/
|
|
16
16
|
flat?: boolean;
|
|
17
|
+
/**
|
|
18
|
+
* When true, generates an `@Injectable` instead of `@Service`.
|
|
19
|
+
*/
|
|
20
|
+
injectable?: boolean;
|
|
17
21
|
/**
|
|
18
22
|
* The name for the new service. This will be used to create the service's class and spec
|
|
19
23
|
* files (e.g., `my-service.service.ts` and `my-service.service.spec.ts`).
|
package/service/schema.json
CHANGED
|
@@ -48,6 +48,11 @@
|
|
|
48
48
|
"type": "boolean",
|
|
49
49
|
"default": true,
|
|
50
50
|
"description": "When true, the 'type' option will be appended to the generated class name. When false, only the file name will include the type."
|
|
51
|
+
},
|
|
52
|
+
"injectable": {
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"default": false,
|
|
55
|
+
"description": "When true, generates an `@Injectable` instead of `@Service`."
|
|
51
56
|
}
|
|
52
57
|
},
|
|
53
58
|
"required": ["name", "project"]
|
|
@@ -16,8 +16,8 @@ exports.latestVersions = {
|
|
|
16
16
|
// As Angular CLI works with same minor versions of Angular Framework, a tilde match for the current
|
|
17
17
|
Angular: '^22.0.0-next.0',
|
|
18
18
|
NgPackagr: '^22.0.0-next.0',
|
|
19
|
-
DevkitBuildAngular: '^22.0.0-next.
|
|
20
|
-
AngularBuild: '^22.0.0-next.
|
|
21
|
-
AngularSSR: '^22.0.0-next.
|
|
19
|
+
DevkitBuildAngular: '^22.0.0-next.8',
|
|
20
|
+
AngularBuild: '^22.0.0-next.8',
|
|
21
|
+
AngularSSR: '^22.0.0-next.8',
|
|
22
22
|
};
|
|
23
23
|
//# sourceMappingURL=latest-versions.js.map
|