@ng-doc/add 22.0.0-beta.1 â 22.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/README.md +19 -29
- package/package.json +23 -21
- package/schematics/collection.json +14 -14
- package/schematics/ng-add/constants/modules.d.ts +22 -0
- package/schematics/ng-add/constants/modules.js +25 -11
- package/schematics/ng-add/constants/modules.js.map +1 -1
- package/schematics/ng-add/constants/styles.d.ts +4 -0
- package/schematics/ng-add/constants/styles.js +8 -1
- package/schematics/ng-add/constants/styles.js.map +1 -1
- package/schematics/ng-add/index.d.ts +5 -2
- package/schematics/ng-add/index.js +43 -14
- package/schematics/ng-add/index.js.map +1 -1
- package/schematics/ng-add/schema.d.ts +8 -0
- package/schematics/ng-add/schema.json +19 -14
- package/schematics/ng-add/steps/add-assets.d.ts +2 -3
- package/schematics/ng-add/steps/add-assets.js +9 -4
- package/schematics/ng-add/steps/add-assets.js.map +1 -1
- package/schematics/ng-add/steps/add-git-ignore.d.ts +1 -3
- package/schematics/ng-add/steps/add-git-ignore.js +9 -4
- package/schematics/ng-add/steps/add-git-ignore.js.map +1 -1
- package/schematics/ng-add/steps/add-layout.d.ts +2 -2
- package/schematics/ng-add/steps/add-layout.js +8 -2
- package/schematics/ng-add/steps/add-layout.js.map +1 -1
- package/schematics/ng-add/steps/add-ng-doc-app-config.d.ts +5 -1
- package/schematics/ng-add/steps/add-ng-doc-app-config.js +200 -54
- package/schematics/ng-add/steps/add-ng-doc-app-config.js.map +1 -1
- package/schematics/ng-add/steps/add-tsconfig-paths.js +2 -1
- package/schematics/ng-add/steps/add-tsconfig-paths.js.map +1 -1
- package/schematics/ng-add/steps/post-install.d.ts +4 -2
- package/schematics/ng-add/steps/post-install.js +4 -3
- package/schematics/ng-add/steps/post-install.js.map +1 -1
- package/schematics/ng-add/steps/raise-initial-budget.d.ts +22 -0
- package/schematics/ng-add/steps/raise-initial-budget.js +70 -0
- package/schematics/ng-add/steps/raise-initial-budget.js.map +1 -0
- package/schematics/ng-add/steps/replace-builders.d.ts +2 -2
- package/schematics/ng-add/steps/replace-builders.js +12 -4
- package/schematics/ng-add/steps/replace-builders.js.map +1 -1
- package/schematics/ng-add/steps/update-app-ts-config.js +2 -1
- package/schematics/ng-add/steps/update-app-ts-config.js.map +1 -1
- package/schematics/ng-add/utils/add-array-entry.d.ts +56 -0
- package/schematics/ng-add/utils/add-array-entry.js +325 -0
- package/schematics/ng-add/utils/add-array-entry.js.map +1 -0
- package/schematics/ng-add/utils/add-unique-import.d.ts +7 -3
- package/schematics/ng-add/utils/add-unique-import.js +21 -16
- package/schematics/ng-add/utils/add-unique-import.js.map +1 -1
- package/schematics/ng-add/utils/get-app-component.d.ts +4 -3
- package/schematics/ng-add/utils/get-app-component.js +7 -5
- package/schematics/ng-add/utils/get-app-component.js.map +1 -1
- package/schematics/ng-add/utils/get-app-template-path.d.ts +4 -8
- package/schematics/ng-add/utils/get-app-template-path.js +4 -4
- package/schematics/ng-add/utils/get-app-template-path.js.map +1 -1
- package/schematics/ng-add/utils/get-build-options-target.d.ts +17 -0
- package/schematics/ng-add/utils/get-build-options-target.js +27 -0
- package/schematics/ng-add/utils/get-build-options-target.js.map +1 -0
- package/schematics/ng-add/utils/get-main-path.d.ts +2 -2
- package/schematics/ng-add/utils/get-main-path.js +4 -3
- package/schematics/ng-add/utils/get-main-path.js.map +1 -1
- package/schematics/ng-add/utils/get-root-module.d.ts +14 -0
- package/schematics/ng-add/utils/get-root-module.js +31 -0
- package/schematics/ng-add/utils/get-root-module.js.map +1 -0
- package/schematics/ng-add/utils/select-engine.d.ts +38 -0
- package/schematics/ng-add/utils/select-engine.js +97 -0
- package/schematics/ng-add/utils/select-engine.js.map +1 -0
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
import { Rule } from '@angular-devkit/schematics';
|
|
2
2
|
import { Schema } from '../schema';
|
|
3
3
|
/**
|
|
4
|
+
* Adds the NgDoc providers, the router and the layout components to the application.
|
|
4
5
|
*
|
|
5
|
-
*
|
|
6
|
+
* Calls that the application already has (`provideRouter`, `provideHttpClient`,
|
|
7
|
+
* `RouterModule.forRoot`) are extended rather than repeated, so the rule can run more than once.
|
|
8
|
+
* It adds no change-detection provider: the application keeps running with or without zone.js.
|
|
9
|
+
* @param options - The `ng add` options.
|
|
6
10
|
*/
|
|
7
11
|
export declare function addNgDocAppConfig(options: Schema): Rule;
|
|
@@ -4,13 +4,20 @@ exports.addNgDocAppConfig = addNgDocAppConfig;
|
|
|
4
4
|
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
5
5
|
const ng_morph_1 = require("ng-morph");
|
|
6
6
|
const modules_1 = require("../constants/modules");
|
|
7
|
+
const add_array_entry_1 = require("../utils/add-array-entry");
|
|
7
8
|
const add_unique_import_1 = require("../utils/add-unique-import");
|
|
8
9
|
const get_app_component_1 = require("../utils/get-app-component");
|
|
10
|
+
const get_initializer_1 = require("../utils/get-initializer");
|
|
9
11
|
const get_main_path_1 = require("../utils/get-main-path");
|
|
10
12
|
const get_project_1 = require("../utils/get-project");
|
|
13
|
+
const get_root_module_1 = require("../utils/get-root-module");
|
|
11
14
|
/**
|
|
15
|
+
* Adds the NgDoc providers, the router and the layout components to the application.
|
|
12
16
|
*
|
|
13
|
-
*
|
|
17
|
+
* Calls that the application already has (`provideRouter`, `provideHttpClient`,
|
|
18
|
+
* `RouterModule.forRoot`) are extended rather than repeated, so the rule can run more than once.
|
|
19
|
+
* It adds no change-detection provider: the application keeps running with or without zone.js.
|
|
20
|
+
* @param options - The `ng add` options.
|
|
14
21
|
*/
|
|
15
22
|
function addNgDocAppConfig(options) {
|
|
16
23
|
return async (tree, context) => {
|
|
@@ -25,75 +32,214 @@ function addNgDocAppConfig(options) {
|
|
|
25
32
|
return;
|
|
26
33
|
}
|
|
27
34
|
const mainPath = (0, get_main_path_1.getMainPath)(project);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
logger.error(`â Could not find the root component. Please configure your application manually.`);
|
|
35
|
-
return;
|
|
36
|
-
}
|
|
37
|
-
const [, options = bootstrapApplicationFn.addArgument(`{providers: []}`)] = bootstrapApplicationFn.getArguments();
|
|
38
|
-
if (!ng_morph_1.Node.isIdentifier(options) && !ng_morph_1.Node.isObjectLiteralExpression(options)) {
|
|
39
|
-
return;
|
|
40
|
-
}
|
|
41
|
-
const optionsObject = getOptionsObject(options);
|
|
42
|
-
modules_1.STANDALONE_APP.providers.forEach((provider) => {
|
|
43
|
-
(0, ng_morph_1.addProviderToBootstrapApplicationFn)(bootstrapApplicationFn, provider.initializer, {
|
|
44
|
-
unique: true,
|
|
45
|
-
});
|
|
46
|
-
provider.imports.forEach((providerImport) => {
|
|
47
|
-
(0, add_unique_import_1.addUniqueImport)(optionsObject.getSourceFile().getFilePath(), providerImport.name, providerImport.path);
|
|
48
|
-
});
|
|
49
|
-
});
|
|
50
|
-
modules_1.STANDALONE_APP.imports.forEach((component) => {
|
|
51
|
-
(0, ng_morph_1.addImportToComponent)(appComponent, component.initializer, { unique: true });
|
|
52
|
-
component.imports.forEach((componentImport) => {
|
|
53
|
-
(0, add_unique_import_1.addUniqueImport)(appComponent.getSourceFile().getFilePath(), componentImport.name, componentImport.path);
|
|
54
|
-
});
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
else if (bootstrapFn) {
|
|
58
|
-
const mainModule = (0, ng_morph_1.getMainModule)(mainPath);
|
|
59
|
-
if (!mainModule) {
|
|
60
|
-
logger.error(`â Could not find the root module. Please configure your application manually.`);
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
modules_1.MODULE_APP.imports.forEach((module) => {
|
|
64
|
-
(0, ng_morph_1.addImportToNgModule)(mainModule, module.initializer, { unique: true });
|
|
65
|
-
module.imports.forEach((mi) => {
|
|
66
|
-
(0, add_unique_import_1.addUniqueImport)(mainModule.getSourceFile().getFilePath(), mi.name, mi.path);
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
modules_1.MODULE_APP.providers.forEach((provider) => {
|
|
70
|
-
(0, ng_morph_1.addProviderToNgModule)(mainModule, provider.initializer, { unique: true });
|
|
71
|
-
provider.imports.forEach((providerImport) => {
|
|
72
|
-
(0, add_unique_import_1.addUniqueImport)(mainModule.getSourceFile().getFilePath(), providerImport.name, providerImport.path);
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
logger.error(`â Could not find the root module. Please configure your application manually.`);
|
|
35
|
+
const morphProject = (0, ng_morph_1.createProject)(tree, '/', ['**/*.ts', '**/*.json']);
|
|
36
|
+
// Angular CLI projects indent with two spaces; ts-morph defaults to four.
|
|
37
|
+
morphProject.manipulationSettings.set({ indentationText: ng_morph_1.IndentationText.TwoSpaces });
|
|
38
|
+
(0, ng_morph_1.setActiveProject)(morphProject);
|
|
39
|
+
const edits = planEdits(tree, mainPath, logger);
|
|
40
|
+
if (!edits) {
|
|
78
41
|
return;
|
|
79
42
|
}
|
|
43
|
+
// Imports go first: if one of them cannot be added, no array has been edited yet, and the
|
|
44
|
+
// edits made so far are dropped with the project (nothing is saved).
|
|
45
|
+
edits.forEach(({ file, entries }) => entries.forEach((entry) => addEntryImports(file.getFilePath(), entry.imports)));
|
|
46
|
+
edits.forEach(({ entries, apply }) => {
|
|
47
|
+
const results = apply();
|
|
48
|
+
entries.forEach((entry, index) => {
|
|
49
|
+
if (results[index] === 'extended') {
|
|
50
|
+
logger.info(`đ Extended the existing "${(0, add_array_entry_1.getEntryName)(entry)}" call.`);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
80
54
|
(0, ng_morph_1.saveActiveProject)();
|
|
81
55
|
logger.info('â
Done!');
|
|
82
56
|
}
|
|
83
57
|
catch (e) {
|
|
84
|
-
logger.error(`â Error: ${e}
|
|
58
|
+
logger.error(`â Error: ${e}. This step changed no source file; please configure your application manually.`);
|
|
59
|
+
}
|
|
60
|
+
finally {
|
|
61
|
+
// Unsaved edits must not reach the tree through a later step that saves the active project.
|
|
62
|
+
(0, ng_morph_1.resetActiveProject)();
|
|
85
63
|
}
|
|
86
64
|
};
|
|
87
65
|
}
|
|
88
66
|
/**
|
|
67
|
+
* An edit that adds entries to an array literal.
|
|
68
|
+
* @param array - The array.
|
|
69
|
+
* @param entries - The entries.
|
|
70
|
+
* @param logger - Receives what was merged and what needs a manual change.
|
|
71
|
+
*/
|
|
72
|
+
function arrayEdit(array, entries, logger) {
|
|
73
|
+
return {
|
|
74
|
+
file: array.getSourceFile(),
|
|
75
|
+
entries,
|
|
76
|
+
apply: () => (0, add_array_entry_1.addArrayEntries)(array, entries, logger),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Finds the arrays that the NgDoc entries go into, without adding anything yet.
|
|
81
|
+
* @param tree - The workspace tree.
|
|
82
|
+
* @param mainPath - Path of the application's main file.
|
|
83
|
+
* @param logger - Receives what could not be found.
|
|
84
|
+
* @returns The edits, or `undefined` when the application cannot be configured.
|
|
85
|
+
*/
|
|
86
|
+
function planEdits(tree, mainPath, logger) {
|
|
87
|
+
const bootstrapApplicationFn = (0, ng_morph_1.getBootstrapApplicationFn)(mainPath);
|
|
88
|
+
if (bootstrapApplicationFn) {
|
|
89
|
+
const appComponent = (0, get_app_component_1.getAppComponent)(tree, mainPath);
|
|
90
|
+
if (!appComponent) {
|
|
91
|
+
logger.error(`â Could not find the root component. Please configure your application manually.`);
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
const [, options = bootstrapApplicationFn.addArgument(`{providers: []}`)] = bootstrapApplicationFn.getArguments();
|
|
95
|
+
const optionsObject = ng_morph_1.Node.isIdentifier(options) || ng_morph_1.Node.isObjectLiteralExpression(options)
|
|
96
|
+
? getOptionsObject(options)
|
|
97
|
+
: undefined;
|
|
98
|
+
const providers = optionsObject && (0, add_array_entry_1.getArrayProperty)(optionsObject, 'providers');
|
|
99
|
+
if (!providers) {
|
|
100
|
+
logger.error(`â The "providers" of the application config are not an array literal. Please add NgDoc providers manually.`);
|
|
101
|
+
return undefined;
|
|
102
|
+
}
|
|
103
|
+
return [
|
|
104
|
+
arrayEdit(providers, modules_1.STANDALONE_APP.providers, logger),
|
|
105
|
+
{
|
|
106
|
+
file: appComponent.getSourceFile(),
|
|
107
|
+
entries: modules_1.STANDALONE_APP.imports,
|
|
108
|
+
apply: () => modules_1.STANDALONE_APP.imports.map((component) => {
|
|
109
|
+
(0, ng_morph_1.addImportToComponent)(appComponent, component.initializer, { unique: true });
|
|
110
|
+
return 'unchanged';
|
|
111
|
+
}),
|
|
112
|
+
},
|
|
113
|
+
];
|
|
114
|
+
}
|
|
115
|
+
if (!(0, get_root_module_1.getBootstrapModuleFn)(mainPath)) {
|
|
116
|
+
logger.error(`â Could not find the "bootstrapApplication" or "bootstrapModule" call in "${mainPath}". Please configure your application manually.`);
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
const mainModule = (0, get_root_module_1.getRootModule)(mainPath);
|
|
120
|
+
const metadata = mainModule && getNgModuleMetadata(mainModule);
|
|
121
|
+
if (!mainModule || !metadata) {
|
|
122
|
+
logger.error(`â Could not find the root module. Please configure your application manually.`);
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
const imports = (0, add_array_entry_1.getArrayProperty)(metadata, 'imports');
|
|
126
|
+
const providers = (0, add_array_entry_1.getArrayProperty)(metadata, 'providers');
|
|
127
|
+
if (!imports || !providers) {
|
|
128
|
+
logger.error(`â The "${imports ? 'providers' : 'imports'}" of "${mainModule.getName()}" are not an array literal. Please add NgDoc ${imports ? 'providers' : 'imports'} manually.`);
|
|
129
|
+
return undefined;
|
|
130
|
+
}
|
|
131
|
+
const [router, ...components] = modules_1.MODULE_APP.imports;
|
|
132
|
+
const routerEdit = planRouterEdit(imports, router, logger);
|
|
133
|
+
return [
|
|
134
|
+
...(routerEdit ? [routerEdit] : []),
|
|
135
|
+
arrayEdit(imports, components, logger),
|
|
136
|
+
arrayEdit(providers, modules_1.MODULE_APP.providers, logger),
|
|
137
|
+
];
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Decides where the NgDoc routes go in an NgModule application.
|
|
89
141
|
*
|
|
90
|
-
*
|
|
142
|
+
* `RouterModule.forRoot` must be called once: a second call throws at startup. So an existing
|
|
143
|
+
* call is extended, whether it is in the root module, in a module that the root module imports
|
|
144
|
+
* (`AppRoutingModule`), or in a variable that the root module imports. When an imported module
|
|
145
|
+
* cannot be inspected, nothing is added and the user is asked to add the routes.
|
|
146
|
+
* @param imports - The `imports` array of the root module.
|
|
147
|
+
* @param router - The `RouterModule.forRoot` entry.
|
|
148
|
+
* @param logger - Receives what needs a manual change.
|
|
149
|
+
*/
|
|
150
|
+
function planRouterEdit(imports, router, logger) {
|
|
151
|
+
const name = (0, add_array_entry_1.getEntryName)(router);
|
|
152
|
+
const found = findRouterLocations(imports, name);
|
|
153
|
+
const unknown = found.find((location) => location.kind === 'unknown');
|
|
154
|
+
const calls = found.filter((location) => location.kind !== 'unknown');
|
|
155
|
+
if (calls.length > 1) {
|
|
156
|
+
logger.warn(`â ī¸ "${name}" is called in ${calls.map((location) => location.owner).join(', ')}. Keep one call and add "${router.routes}" to it manually.`);
|
|
157
|
+
return undefined;
|
|
158
|
+
}
|
|
159
|
+
const [location] = calls;
|
|
160
|
+
if (location?.kind === 'array') {
|
|
161
|
+
return arrayEdit(location.array, [router], logger);
|
|
162
|
+
}
|
|
163
|
+
if (location?.kind === 'call') {
|
|
164
|
+
const call = location.call;
|
|
165
|
+
return {
|
|
166
|
+
file: call.getSourceFile(),
|
|
167
|
+
entries: [router],
|
|
168
|
+
apply: () => [(0, add_array_entry_1.extendCall)(call, router, logger) ? 'extended' : 'unchanged'],
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
if (unknown) {
|
|
172
|
+
logger.warn(`â ī¸ Could not check whether ${unknown.owner} calls "${name}", because its "imports" are not an array literal. Add "${router.routes}" to your router configuration manually.`);
|
|
173
|
+
return undefined;
|
|
174
|
+
}
|
|
175
|
+
return arrayEdit(imports, [router], logger);
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Looks for `name` calls in the `imports` of the root module and in what those imports refer to.
|
|
179
|
+
* @param imports - The `imports` array of the root module.
|
|
180
|
+
* @param name - The call to look for.
|
|
181
|
+
*/
|
|
182
|
+
function findRouterLocations(imports, name) {
|
|
183
|
+
const locations = [];
|
|
184
|
+
if ((0, add_array_entry_1.findArrayEntries)(imports, name).length) {
|
|
185
|
+
locations.push({ kind: 'array', array: imports, owner: 'the root module' });
|
|
186
|
+
}
|
|
187
|
+
imports.getElements().forEach((element) => {
|
|
188
|
+
const definition = ng_morph_1.Node.isIdentifier(element)
|
|
189
|
+
? element.getDefinitionNodes()[0]
|
|
190
|
+
: undefined;
|
|
191
|
+
if (ng_morph_1.Node.isVariableDeclaration(definition)) {
|
|
192
|
+
const initializer = definition.getInitializer();
|
|
193
|
+
if (ng_morph_1.Node.isCallExpression(initializer) && (0, add_array_entry_1.isEntry)(initializer, name)) {
|
|
194
|
+
locations.push({ kind: 'call', call: initializer, owner: `"${definition.getName()}"` });
|
|
195
|
+
}
|
|
196
|
+
return;
|
|
197
|
+
}
|
|
198
|
+
// Only modules of the application have a decorator here; library declarations have none.
|
|
199
|
+
if (!ng_morph_1.Node.isClassDeclaration(definition) || !definition.getDecorator('NgModule')) {
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const owner = `"${definition.getName()}"`;
|
|
203
|
+
const moduleImports = (0, get_initializer_1.getInitializer)(definition, 'NgModule', 'imports');
|
|
204
|
+
if (moduleImports && !ng_morph_1.Node.isArrayLiteralExpression(moduleImports)) {
|
|
205
|
+
locations.push({ kind: 'unknown', owner });
|
|
206
|
+
}
|
|
207
|
+
else if (ng_morph_1.Node.isArrayLiteralExpression(moduleImports) &&
|
|
208
|
+
(0, add_array_entry_1.findArrayEntries)(moduleImports, name).length) {
|
|
209
|
+
locations.push({ kind: 'array', array: moduleImports, owner });
|
|
210
|
+
}
|
|
211
|
+
});
|
|
212
|
+
return locations;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Adds named imports to a file unless it already has them.
|
|
216
|
+
* @param filePath - The file to update.
|
|
217
|
+
* @param imports - The named imports.
|
|
218
|
+
*/
|
|
219
|
+
function addEntryImports(filePath, imports) {
|
|
220
|
+
imports.forEach((entityImport) => (0, add_unique_import_1.addUniqueImport)(filePath, entityImport.name, entityImport.path));
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* Returns the metadata object of an `@NgModule` class.
|
|
224
|
+
* @param module - The module class.
|
|
225
|
+
*/
|
|
226
|
+
function getNgModuleMetadata(module) {
|
|
227
|
+
const decorator = module.getDecorator('NgModule');
|
|
228
|
+
if (!decorator) {
|
|
229
|
+
return undefined;
|
|
230
|
+
}
|
|
231
|
+
const [metadata = decorator.addArgument('{}')] = decorator.getArguments();
|
|
232
|
+
return ng_morph_1.Node.isObjectLiteralExpression(metadata) ? metadata : undefined;
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Resolves the options argument of `bootstrapApplication` to its object literal.
|
|
236
|
+
* @param options - The object literal or the identifier of the application config.
|
|
91
237
|
*/
|
|
92
238
|
function getOptionsObject(options) {
|
|
93
239
|
if (ng_morph_1.Node.isObjectLiteralExpression(options)) {
|
|
94
240
|
return options;
|
|
95
241
|
}
|
|
96
242
|
const definition = options.getDefinitionNodes()[0];
|
|
97
|
-
return definition
|
|
243
|
+
return definition?.getChildrenOfKind(ng_morph_1.SyntaxKind.ObjectLiteralExpression)[0];
|
|
98
244
|
}
|
|
99
245
|
//# sourceMappingURL=add-ng-doc-app-config.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-ng-doc-app-config.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/add-ng-doc-app-config.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"add-ng-doc-app-config.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/add-ng-doc-app-config.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
|
5
5
|
const ng_morph_1 = require("ng-morph");
|
|
6
6
|
const path = require("path");
|
|
7
7
|
const modules_1 = require("../constants/modules");
|
|
8
|
+
const get_build_options_target_1 = require("../utils/get-build-options-target");
|
|
8
9
|
const get_project_1 = require("../utils/get-project");
|
|
9
10
|
const get_project_name_1 = require("../utils/get-project-name");
|
|
10
11
|
/**
|
|
@@ -23,7 +24,7 @@ function addTsconfigPaths(options) {
|
|
|
23
24
|
logger.error(`â Target project not found. Please configure tsconfig paths manually.`);
|
|
24
25
|
return;
|
|
25
26
|
}
|
|
26
|
-
const buildTarget = project.targets.get(
|
|
27
|
+
const buildTarget = project.targets.get((0, get_build_options_target_1.getBuildOptionsTarget)(project));
|
|
27
28
|
const serveTarget = project.targets.get('serve');
|
|
28
29
|
const projectName = (0, get_project_name_1.getProjectName)(options, workspace);
|
|
29
30
|
if (buildTarget) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add-tsconfig-paths.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/add-tsconfig-paths.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"add-tsconfig-paths.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/add-tsconfig-paths.ts"],"names":[],"mappings":";;AAoBA,4CA2CC;AA9DD,qEAK+C;AAC/C,uCAAoC;AACpC,6BAA6B;AAE7B,kDAAsD;AAEtD,gFAA0E;AAC1E,sDAAkD;AAClD,gEAA2D;AAE3D;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,OAAe;IAC9C,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,OAAO,IAAA,2BAAe,EAAC,CAAC,SAA8B,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,oBAAoB,CAAC,CAAC;YAEhE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;YAC9C,MAAM,CAAC,IAAI,CAAC,uEAAuE,CAAC,CAAC;YAErF,IAAI,CAAC;gBACH,MAAM,OAAO,GAAkC,IAAA,wBAAU,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAE9E,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;oBAEtF,OAAO;gBACT,CAAC;gBAED,MAAM,WAAW,GAAiC,OAAO,CAAC,OAAO,CAAC,GAAG,CACnE,IAAA,gDAAqB,EAAC,OAAO,CAAC,CAC/B,CAAC;gBACF,MAAM,WAAW,GAAiC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC/E,MAAM,WAAW,GAAG,IAAA,iCAAc,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAEvD,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,YAAY,GAChB,WAAW,CAAC,OAAO,IAAK,WAAW,CAAC,OAAO,CAAC,UAAU,CAAY,CAAC;oBAErE,YAAY,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC/E,CAAC;gBAED,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,YAAY,GAChB,WAAW,CAAC,OAAO,IAAK,WAAW,CAAC,OAAO,CAAC,UAAU,CAAY,CAAC;oBAErE,YAAY,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,WAAW,CAAC,CAAC;gBAC/E,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB,CAAC,IAAU,EAAE,QAAgB,EAAE,WAAmB;IAC5E,MAAM,IAAI,GAAa,IAAI,mBAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEpD,MAAM,KAAK,GAAuB,IAAI,CAAC,GAAG,CAAC,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC,CAAC;IACzE,MAAM,GAAG,GAAuB,IAAI,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;IAEtD,IAAI,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC;QAClB,IAAI,CAAC,MAAM,CACT,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,wBAAc,EAAE,CAAC,EACjD,CAAC,YAAY,WAAW,WAAW,CAAC,CACrC,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,OAAO,EAAE,GAAG,wBAAc,IAAI,CAAC,EAAE,CAAC,YAAY,WAAW,IAAI,CAAC,CAAC,CAAC;IAClG,CAAC;SAAM,IAAI,GAAG,EAAE,CAAC;QACf,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,EAAE,WAAW,CAAC,CAAC;IACjF,CAAC;AACH,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { Rule } from '@angular-devkit/schematics';
|
|
2
|
+
import { NgDocEngine } from '../schema';
|
|
2
3
|
/**
|
|
3
|
-
*
|
|
4
|
+
* Says what to do next.
|
|
5
|
+
* @param engine - The engine that was set up.
|
|
4
6
|
*/
|
|
5
|
-
export declare function postInstall(): Rule;
|
|
7
|
+
export declare function postInstall(engine: NgDocEngine): Rule;
|
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.postInstall = postInstall;
|
|
4
4
|
/**
|
|
5
|
-
*
|
|
5
|
+
* Says what to do next.
|
|
6
|
+
* @param engine - The engine that was set up.
|
|
6
7
|
*/
|
|
7
|
-
function postInstall() {
|
|
8
|
+
function postInstall(engine) {
|
|
8
9
|
return async (tree, context) => {
|
|
9
|
-
context.logger.info(`[INFO]: Everything is done! Files for the "@ng-doc/generated" path will be created when you start your application.`);
|
|
10
|
+
context.logger.info(`[INFO]: Everything is done! Files for the "@ng-doc/generated" path will be created when you start your application${engine === 'vite' ? ' with "ng serve" or build it with "ng build"' : ''}.`);
|
|
10
11
|
};
|
|
11
12
|
}
|
|
12
13
|
//# sourceMappingURL=post-install.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"post-install.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/post-install.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"post-install.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/post-install.ts"],"names":[],"mappings":";;AAQA,kCAQC;AAZD;;;GAGG;AACH,SAAgB,WAAW,CAAC,MAAmB;IAC7C,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,OAAO,CAAC,MAAM,CAAC,IAAI,CACjB,qHACE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,EACvE,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { JsonValue } from '@angular-devkit/core';
|
|
2
|
+
import { Rule } from '@angular-devkit/schematics';
|
|
3
|
+
import { Schema } from '../schema';
|
|
4
|
+
/**
|
|
5
|
+
* The `maximumError` of the `initial` budget that the legacy setup gives a new application. The
|
|
6
|
+
* NgDoc runtime alone is larger than the 1 MB that `ng new` allows, so a new application would fail
|
|
7
|
+
* its first production build.
|
|
8
|
+
*/
|
|
9
|
+
export declare const NG_DOC_INITIAL_BUDGET = "5mb";
|
|
10
|
+
/**
|
|
11
|
+
* The size of a budget value in bytes, or undefined when it is not an absolute size (a percentage).
|
|
12
|
+
* @param value - A budget value such as `1MB` or `500kB`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function budgetBytes(value: JsonValue | undefined): number | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Raises the `maximumError` of the `initial` budgets of the build target from the `ng new` default
|
|
17
|
+
* (1 MB) to {@link NG_DOC_INITIAL_BUDGET}. A budget the project set itself, warnings and other
|
|
18
|
+
* budgets are kept. The Vite engine has no budgets, and a project that already used NgDoc chose its
|
|
19
|
+
* own, so only the legacy setup of a project new to NgDoc runs this step.
|
|
20
|
+
* @param options - The `ng add` options.
|
|
21
|
+
*/
|
|
22
|
+
export declare function raiseInitialBudget(options: Schema): Rule;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NG_DOC_INITIAL_BUDGET = void 0;
|
|
4
|
+
exports.budgetBytes = budgetBytes;
|
|
5
|
+
exports.raiseInitialBudget = raiseInitialBudget;
|
|
6
|
+
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
7
|
+
const get_project_1 = require("../utils/get-project");
|
|
8
|
+
/**
|
|
9
|
+
* The `maximumError` of the `initial` budget that the legacy setup gives a new application. The
|
|
10
|
+
* NgDoc runtime alone is larger than the 1 MB that `ng new` allows, so a new application would fail
|
|
11
|
+
* its first production build.
|
|
12
|
+
*/
|
|
13
|
+
exports.NG_DOC_INITIAL_BUDGET = '5mb';
|
|
14
|
+
/** The `maximumError` of the `initial` budget that `ng new` writes. */
|
|
15
|
+
const NG_NEW_INITIAL_BUDGET = 1024 ** 2;
|
|
16
|
+
const UNITS = { b: 1, kb: 1024, mb: 1024 ** 2, gb: 1024 ** 3 };
|
|
17
|
+
/**
|
|
18
|
+
* The size of a budget value in bytes, or undefined when it is not an absolute size (a percentage).
|
|
19
|
+
* @param value - A budget value such as `1MB` or `500kB`.
|
|
20
|
+
*/
|
|
21
|
+
function budgetBytes(value) {
|
|
22
|
+
const match = typeof value === 'string' ? /^\s*(\d+(?:\.\d+)?)\s*(b|kb|mb|gb)?\s*$/i.exec(value) : null;
|
|
23
|
+
return match ? Number(match[1]) * UNITS[(match[2] ?? 'b').toLowerCase()] : undefined;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Raises the `maximumError` of the `initial` budgets of the build target from the `ng new` default
|
|
27
|
+
* (1 MB) to {@link NG_DOC_INITIAL_BUDGET}. A budget the project set itself, warnings and other
|
|
28
|
+
* budgets are kept. The Vite engine has no budgets, and a project that already used NgDoc chose its
|
|
29
|
+
* own, so only the legacy setup of a project new to NgDoc runs this step.
|
|
30
|
+
* @param options - The `ng add` options.
|
|
31
|
+
*/
|
|
32
|
+
function raiseInitialBudget(options) {
|
|
33
|
+
return async (tree, context) => {
|
|
34
|
+
return (0, workspace_1.updateWorkspace)((workspace) => {
|
|
35
|
+
const logger = context.logger.createChild('raise-initial-budget');
|
|
36
|
+
const project = (0, get_project_1.getProject)(options, workspace);
|
|
37
|
+
const build = project?.targets.get('build');
|
|
38
|
+
const raised = [];
|
|
39
|
+
for (const [name, configuration] of [
|
|
40
|
+
['options', build?.options],
|
|
41
|
+
...Object.entries(build?.configurations ?? {}),
|
|
42
|
+
]) {
|
|
43
|
+
const budgets = configuration?.['budgets'];
|
|
44
|
+
if (!configuration || !Array.isArray(budgets)) {
|
|
45
|
+
continue;
|
|
46
|
+
}
|
|
47
|
+
const before = raised.length;
|
|
48
|
+
const next = budgets.map((budget) => {
|
|
49
|
+
const entry = budget;
|
|
50
|
+
const current = budgetBytes(entry['maximumError']);
|
|
51
|
+
if (entry['type'] !== 'initial' || current !== NG_NEW_INITIAL_BUDGET) {
|
|
52
|
+
return budget;
|
|
53
|
+
}
|
|
54
|
+
raised.push(`${name}: ${entry['maximumError']}`);
|
|
55
|
+
return { ...entry, maximumError: exports.NG_DOC_INITIAL_BUDGET };
|
|
56
|
+
});
|
|
57
|
+
// The array is replaced, not edited in place, so the workspace writer sees the change; an
|
|
58
|
+
// unchanged one is left alone, so a second run writes nothing.
|
|
59
|
+
if (raised.length > before) {
|
|
60
|
+
configuration['budgets'] = next;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
if (raised.length) {
|
|
64
|
+
context.logger.info(`[INFO]: Budgets`);
|
|
65
|
+
logger.info(`đ Raised the "initial" budget error to ${exports.NG_DOC_INITIAL_BUDGET} (was ${raised.join(', ')}): the NgDoc runtime is larger than the Angular CLI default.`);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=raise-initial-budget.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"raise-initial-budget.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/raise-initial-budget.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Rule } from '@angular-devkit/schematics';
|
|
2
2
|
import { Schema } from '../schema';
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
5
|
-
* @param options
|
|
4
|
+
* Sets the legacy NgDoc builders on the build and serve targets.
|
|
5
|
+
* @param options - The `ng add` options.
|
|
6
6
|
*/
|
|
7
7
|
export declare function replaceBuilders(options: Schema): Rule;
|
|
@@ -3,9 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.replaceBuilders = replaceBuilders;
|
|
4
4
|
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
5
5
|
const get_project_1 = require("../utils/get-project");
|
|
6
|
+
const NG_DOC_BUILDER_PREFIX = '@ng-doc/builder:';
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
* @param options
|
|
8
|
+
* Sets the legacy NgDoc builders on the build and serve targets.
|
|
9
|
+
* @param options - The `ng add` options.
|
|
9
10
|
*/
|
|
10
11
|
function replaceBuilders(options) {
|
|
11
12
|
return async (tree, context) => {
|
|
@@ -21,15 +22,22 @@ function replaceBuilders(options) {
|
|
|
21
22
|
}
|
|
22
23
|
const buildTarget = project.targets.get('build');
|
|
23
24
|
const serveTarget = project.targets.get('serve');
|
|
24
|
-
|
|
25
|
+
// A target that already runs an NgDoc builder keeps it.
|
|
26
|
+
if (buildTarget && !(buildTarget.builder ?? '').startsWith(NG_DOC_BUILDER_PREFIX)) {
|
|
25
27
|
buildTarget.builder = '@ng-doc/builder:application';
|
|
26
28
|
}
|
|
29
|
+
else if (buildTarget) {
|
|
30
|
+
logger.info(`âšī¸ "build" already uses "${buildTarget.builder}".`);
|
|
31
|
+
}
|
|
27
32
|
else {
|
|
28
33
|
logger.error(`â "build" target was not found, please add "@ng-doc/builder:application" builder manually.`);
|
|
29
34
|
}
|
|
30
|
-
if (serveTarget) {
|
|
35
|
+
if (serveTarget && !(serveTarget.builder ?? '').startsWith(NG_DOC_BUILDER_PREFIX)) {
|
|
31
36
|
serveTarget.builder = '@ng-doc/builder:dev-server';
|
|
32
37
|
}
|
|
38
|
+
else if (serveTarget) {
|
|
39
|
+
logger.info(`âšī¸ "serve" already uses "${serveTarget.builder}".`);
|
|
40
|
+
}
|
|
33
41
|
else {
|
|
34
42
|
logger.warn(`â "serve" target was not found, please add "@ng-doc/builder:dev-server" builder manually.`);
|
|
35
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replace-builders.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/replace-builders.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"replace-builders.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/replace-builders.ts"],"names":[],"mappings":";;AAiBA,0CA+CC;AA/DD,qEAK+C;AAG/C,sDAAkD;AAElD,MAAM,qBAAqB,GAAG,kBAAkB,CAAC;AAEjD;;;GAGG;AACH,SAAgB,eAAe,CAAC,OAAe;IAC7C,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,OAAO,IAAA,2BAAe,EAAC,CAAC,SAA8B,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;YAE9D,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACxC,MAAM,CAAC,IAAI,CAAC,4DAA4D,CAAC,CAAC;YAE1E,IAAI,CAAC;gBACH,MAAM,OAAO,GAAkC,IAAA,wBAAU,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAE9E,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,+DAA+D,CAAC,CAAC;oBAE9E,OAAO;gBACT,CAAC;gBAED,MAAM,WAAW,GAAiC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAC/E,MAAM,WAAW,GAAiC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAE/E,wDAAwD;gBACxD,IAAI,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAClF,WAAW,CAAC,OAAO,GAAG,6BAA6B,CAAC;gBACtD,CAAC;qBAAM,IAAI,WAAW,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,4BAA4B,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,KAAK,CACV,4FAA4F,CAC7F,CAAC;gBACJ,CAAC;gBAED,IAAI,WAAW,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,EAAE,CAAC;oBAClF,WAAW,CAAC,OAAO,GAAG,4BAA4B,CAAC;gBACrD,CAAC;qBAAM,IAAI,WAAW,EAAE,CAAC;oBACvB,MAAM,CAAC,IAAI,CAAC,4BAA4B,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;gBACnE,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,IAAI,CACT,2FAA2F,CAC5F,CAAC;gBACJ,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.updateAppTsConfig = updateAppTsConfig;
|
|
4
4
|
const workspace_1 = require("@schematics/angular/utility/workspace");
|
|
5
5
|
const ng_morph_1 = require("ng-morph");
|
|
6
|
+
const get_build_options_target_1 = require("../utils/get-build-options-target");
|
|
6
7
|
const get_project_1 = require("../utils/get-project");
|
|
7
8
|
/**
|
|
8
9
|
*
|
|
@@ -20,7 +21,7 @@ function updateAppTsConfig(options) {
|
|
|
20
21
|
logger.error(`â Target project not found. Please configure "compilerOptions" manually.`);
|
|
21
22
|
return;
|
|
22
23
|
}
|
|
23
|
-
const buildTarget = project.targets.get(
|
|
24
|
+
const buildTarget = project.targets.get((0, get_build_options_target_1.getBuildOptionsTarget)(project));
|
|
24
25
|
const serveTarget = project.targets.get('serve');
|
|
25
26
|
if (buildTarget) {
|
|
26
27
|
const tsConfigPath = buildTarget.options && buildTarget.options['tsConfig'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"update-app-ts-config.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/update-app-ts-config.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"update-app-ts-config.js","sourceRoot":"","sources":["../../../../../../libs/add/schematics/ng-add/steps/update-app-ts-config.ts"],"names":[],"mappings":";;AAiBA,8CA0CC;AA1DD,qEAK+C;AAC/C,uCAAoC;AAGpC,gFAA0E;AAC1E,sDAAkD;AAElD;;;GAGG;AACH,SAAgB,iBAAiB,CAAC,OAAe;IAC/C,OAAO,KAAK,EAAE,IAAU,EAAE,OAAyB,EAAE,EAAE;QACrD,OAAO,IAAA,2BAAe,EAAC,CAAC,SAA8B,EAAE,EAAE;YACxD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;YAElE,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YACxD,MAAM,CAAC,IAAI,CAAC,yCAAyC,CAAC,CAAC;YAEvD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAkC,IAAA,wBAAU,EAAC,OAAO,EAAE,SAAS,CAAC,CAAC;gBAE9E,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,MAAM,CAAC,KAAK,CAAC,0EAA0E,CAAC,CAAC;oBAEzF,OAAO;gBACT,CAAC;gBAED,MAAM,WAAW,GAAiC,OAAO,CAAC,OAAO,CAAC,GAAG,CACnE,IAAA,gDAAqB,EAAC,OAAO,CAAC,CAC/B,CAAC;gBACF,MAAM,WAAW,GAAiC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAE/E,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,YAAY,GAChB,WAAW,CAAC,OAAO,IAAK,WAAW,CAAC,OAAO,CAAC,UAAU,CAAY,CAAC;oBAErE,YAAY,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBAED,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,YAAY,GAChB,WAAW,CAAC,OAAO,IAAK,WAAW,CAAC,OAAO,CAAC,UAAU,CAAY,CAAC;oBAErE,YAAY,IAAI,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC7D,CAAC;gBAED,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACzB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,cAAc,CAAC,IAAU,EAAE,QAAgB;IAClD,MAAM,IAAI,GAAa,IAAI,mBAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAEpD,IAAI,CAAC,MAAM,CAAC,CAAC,iBAAiB,EAAE,8BAA8B,CAAC,EAAE,IAAI,CAAC,CAAC;AACzE,CAAC"}
|