blob: 3ea00dbe3c873dd192bde18f6c3980801336de5e [file] [log] [blame]
"use strict";
/**
* @license
* Copyright Google LLC All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.getDefaultComponentOptions = void 0;
const core_1 = require("@angular-devkit/core");
/**
* Returns the default options for the `@schematics/angular:component` schematic which would
* have been specified at project initialization (ng new or ng init).
*
* This is necessary because the Angular CLI only exposes the default values for the "--style",
* "--inlineStyle", "--skipTests" and "--inlineTemplate" options to the "component" schematic.
*/
function getDefaultComponentOptions(project) {
// Note: Not all options which are available when running "ng new" will be stored in the
// workspace config. List of options which will be available in the configuration:
// angular/angular-cli/blob/master/packages/schematics/angular/application/index.ts#L109-L131
let skipTests = getDefaultComponentOption(project, ['skipTests'], null);
// In case "skipTests" is not set explicitly, also look for the "spec" option. The "spec"
// option has been deprecated but can be still used in older Angular CLI projects.
// See: https://github.com/angular/angular-cli/commit/a12a4e02a4689b5bdbc6e740c0d9865afb55671a
if (skipTests === null) {
skipTests = !getDefaultComponentOption(project, ['spec'], true);
}
return {
style: getDefaultComponentOption(project, ['style', 'styleext'], 'css'),
inlineStyle: getDefaultComponentOption(project, ['inlineStyle'], false),
inlineTemplate: getDefaultComponentOption(project, ['inlineTemplate'], false),
skipTests: skipTests,
};
}
exports.getDefaultComponentOptions = getDefaultComponentOptions;
/**
* Gets the default value for the specified option. The default options will be determined
* by looking at the stored schematic options for `@schematics/angular:component` in the
* CLI workspace configuration.
*/
function getDefaultComponentOption(project, optionNames, fallbackValue) {
const schematicOptions = core_1.isJsonObject(project.extensions.schematics || null) ?
project.extensions.schematics : null;
const defaultSchematic = schematicOptions ?
schematicOptions['@schematics/angular:component'] : null;
for (const optionName of optionNames) {
if (defaultSchematic && defaultSchematic[optionName] != null) {
return defaultSchematic[optionName];
}
}
return fallbackValue;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrL3NjaGVtYXRpY3MvdXRpbHMvc2NoZW1hdGljLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7O0FBR0gsK0NBQThEO0FBRTlEOzs7Ozs7R0FNRztBQUNILFNBQWdCLDBCQUEwQixDQUFDLE9BQTBCO0lBQ25FLHdGQUF3RjtJQUN4RixrRkFBa0Y7SUFDbEYsNkZBQTZGO0lBQzdGLElBQUksU0FBUyxHQUFHLHlCQUF5QixDQUFlLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBRXRGLHlGQUF5RjtJQUN6RixrRkFBa0Y7SUFDbEYsOEZBQThGO0lBQzlGLElBQUksU0FBUyxLQUFLLElBQUksRUFBRTtRQUN0QixTQUFTLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztLQUNqRTtJQUVELE9BQU87UUFDTCxLQUFLLEVBQUUseUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUN2RSxXQUFXLEVBQUUseUJBQXlCLENBQUMsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSyxDQUFDO1FBQ3ZFLGNBQWMsRUFBRSx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLEtBQUssQ0FBQztRQUM3RSxTQUFTLEVBQUUsU0FBUztLQUNyQixDQUFDO0FBQ0osQ0FBQztBQW5CRCxnRUFtQkM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBUyx5QkFBeUIsQ0FBSSxPQUEwQixFQUFFLFdBQXFCLEVBQ2pELGFBQWdCO0lBQ3BELE1BQU0sZ0JBQWdCLEdBQUcsbUJBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBd0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQ3ZELE1BQU0sZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztRQUN2QyxnQkFBZ0IsQ0FBQywrQkFBK0IsQ0FBc0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBRWxGLEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO1FBQ3BDLElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzVELE9BQU8sZ0JBQWdCLENBQUMsVUFBVSxDQUFpQixDQUFDO1NBQ3JEO0tBQ0Y7SUFFRCxPQUFPLGFBQWEsQ0FBQztBQUN2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7UHJvamVjdERlZmluaXRpb259IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlL3NyYy93b3Jrc3BhY2UnO1xuaW1wb3J0IHtpc0pzb25PYmplY3QsIEpzb25PYmplY3R9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcblxuLyoqXG4gKiBSZXR1cm5zIHRoZSBkZWZhdWx0IG9wdGlvbnMgZm9yIHRoZSBgQHNjaGVtYXRpY3MvYW5ndWxhcjpjb21wb25lbnRgIHNjaGVtYXRpYyB3aGljaCB3b3VsZFxuICogaGF2ZSBiZWVuIHNwZWNpZmllZCBhdCBwcm9qZWN0IGluaXRpYWxpemF0aW9uIChuZyBuZXcgb3IgbmcgaW5pdCkuXG4gKlxuICogVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgQW5ndWxhciBDTEkgb25seSBleHBvc2VzIHRoZSBkZWZhdWx0IHZhbHVlcyBmb3IgdGhlIFwiLS1zdHlsZVwiLFxuICogXCItLWlubGluZVN0eWxlXCIsIFwiLS1za2lwVGVzdHNcIiBhbmQgXCItLWlubGluZVRlbXBsYXRlXCIgb3B0aW9ucyB0byB0aGUgXCJjb21wb25lbnRcIiBzY2hlbWF0aWMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWZhdWx0Q29tcG9uZW50T3B0aW9ucyhwcm9qZWN0OiBQcm9qZWN0RGVmaW5pdGlvbikge1xuICAvLyBOb3RlOiBOb3QgYWxsIG9wdGlvbnMgd2hpY2ggYXJlIGF2YWlsYWJsZSB3aGVuIHJ1bm5pbmcgXCJuZyBuZXdcIiB3aWxsIGJlIHN0b3JlZCBpbiB0aGVcbiAgLy8gd29ya3NwYWNlIGNvbmZpZy4gTGlzdCBvZiBvcHRpb25zIHdoaWNoIHdpbGwgYmUgYXZhaWxhYmxlIGluIHRoZSBjb25maWd1cmF0aW9uOlxuICAvLyBhbmd1bGFyL2FuZ3VsYXItY2xpL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL3NjaGVtYXRpY3MvYW5ndWxhci9hcHBsaWNhdGlvbi9pbmRleC50cyNMMTA5LUwxMzFcbiAgbGV0IHNraXBUZXN0cyA9IGdldERlZmF1bHRDb21wb25lbnRPcHRpb248Ym9vbGVhbnxudWxsPihwcm9qZWN0LCBbJ3NraXBUZXN0cyddLCBudWxsKTtcblxuICAvLyBJbiBjYXNlIFwic2tpcFRlc3RzXCIgaXMgbm90IHNldCBleHBsaWNpdGx5LCBhbHNvIGxvb2sgZm9yIHRoZSBcInNwZWNcIiBvcHRpb24uIFRoZSBcInNwZWNcIlxuICAvLyBvcHRpb24gaGFzIGJlZW4gZGVwcmVjYXRlZCBidXQgY2FuIGJlIHN0aWxsIHVzZWQgaW4gb2xkZXIgQW5ndWxhciBDTEkgcHJvamVjdHMuXG4gIC8vIFNlZTogaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci1jbGkvY29tbWl0L2ExMmE0ZTAyYTQ2ODliNWJkYmM2ZTc0MGMwZDk4NjVhZmI1NTY3MWFcbiAgaWYgKHNraXBUZXN0cyA9PT0gbnVsbCkge1xuICAgIHNraXBUZXN0cyA9ICFnZXREZWZhdWx0Q29tcG9uZW50T3B0aW9uKHByb2plY3QsIFsnc3BlYyddLCB0cnVlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc3R5bGU6IGdldERlZmF1bHRDb21wb25lbnRPcHRpb24ocHJvamVjdCwgWydzdHlsZScsICdzdHlsZWV4dCddLCAnY3NzJyksXG4gICAgaW5saW5lU3R5bGU6IGdldERlZmF1bHRDb21wb25lbnRPcHRpb24ocHJvamVjdCwgWydpbmxpbmVTdHlsZSddLCBmYWxzZSksXG4gICAgaW5saW5lVGVtcGxhdGU6IGdldERlZmF1bHRDb21wb25lbnRPcHRpb24ocHJvamVjdCwgWydpbmxpbmVUZW1wbGF0ZSddLCBmYWxzZSksXG4gICAgc2tpcFRlc3RzOiBza2lwVGVzdHMsXG4gIH07XG59XG5cbi8qKlxuICogR2V0cyB0aGUgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIHNwZWNpZmllZCBvcHRpb24uIFRoZSBkZWZhdWx0IG9wdGlvbnMgd2lsbCBiZSBkZXRlcm1pbmVkXG4gKiBieSBsb29raW5nIGF0IHRoZSBzdG9yZWQgc2NoZW1hdGljIG9wdGlvbnMgZm9yIGBAc2NoZW1hdGljcy9hbmd1bGFyOmNvbXBvbmVudGAgaW4gdGhlXG4gKiBDTEkgd29ya3NwYWNlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmZ1bmN0aW9uIGdldERlZmF1bHRDb21wb25lbnRPcHRpb248VD4ocHJvamVjdDogUHJvamVjdERlZmluaXRpb24sIG9wdGlvbk5hbWVzOiBzdHJpbmdbXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tWYWx1ZTogVCk6IFQge1xuICBjb25zdCBzY2hlbWF0aWNPcHRpb25zID0gaXNKc29uT2JqZWN0KHByb2plY3QuZXh0ZW5zaW9ucy5zY2hlbWF0aWNzIHx8IG51bGwpID9cbiAgICAgIHByb2plY3QuZXh0ZW5zaW9ucy5zY2hlbWF0aWNzIGFzIEpzb25PYmplY3QgOiBudWxsO1xuICBjb25zdCBkZWZhdWx0U2NoZW1hdGljID0gc2NoZW1hdGljT3B0aW9ucyA/XG4gICAgICBzY2hlbWF0aWNPcHRpb25zWydAc2NoZW1hdGljcy9hbmd1bGFyOmNvbXBvbmVudCddIGFzIEpzb25PYmplY3QgfCBudWxsIDogbnVsbDtcblxuICBmb3IgKGNvbnN0IG9wdGlvbk5hbWUgb2Ygb3B0aW9uTmFtZXMpIHtcbiAgICBpZiAoZGVmYXVsdFNjaGVtYXRpYyAmJiBkZWZhdWx0U2NoZW1hdGljW29wdGlvbk5hbWVdICE9IG51bGwpIHtcbiAgICAgIHJldHVybiBkZWZhdWx0U2NoZW1hdGljW29wdGlvbk5hbWVdIGFzIHVua25vd24gYXMgVDtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZmFsbGJhY2tWYWx1ZTtcbn1cbiJdfQ==