@nativescript/nx
Version:
NativeScript Plugin for Nx
49 lines • 2.8 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.applicationGenerator = applicationGenerator;
const tslib_1 = require("tslib");
const devkit_1 = require("@nx/devkit");
const js_1 = require("@nx/js");
const utils_1 = require("../../utils");
const app_resources_1 = require("../app-resources/app-resources");
const ts_solution_setup_1 = require("@nx/js/src/utils/typescript/ts-solution-setup");
const normalize_options_1 = require("./lib/normalize-options");
const target_defaults_utils_1 = require("@nx/devkit/src/generators/target-defaults-utils");
const log_show_project_command_1 = require("@nx/devkit/src/utils/log-show-project-command");
const create_files_1 = require("./lib/create-files");
const project_json_1 = require("./lib/project-json");
const add_linting_1 = require("./lib/add-linting");
function applicationGenerator(tree, schema) {
return tslib_1.__awaiter(this, void 0, void 0, function* () {
(0, ts_solution_setup_1.assertNotUsingTsSolutionSetup)(tree, 'nativescript', 'application');
if (!schema.directory) {
throw new Error((0, utils_1.missingArgument)('name', 'Provide a directory for your NativeScript app.', 'nx g @nativescript/nx:app <directory>'));
}
const commonOptions = (0, utils_1.preRun)(tree, schema, true);
schema = Object.assign(Object.assign({}, schema), (0, utils_1.getAppNamingConvention)(schema, 'nativescript'));
const options = yield (0, normalize_options_1.normalizeOptions)(tree, schema);
const tasks = [];
tasks.push(yield (0, js_1.initGenerator)(tree, Object.assign(Object.assign({}, options), { skipFormat: true })));
(0, target_defaults_utils_1.addBuildTargetDefaults)(tree, options.buildExecutor);
(0, devkit_1.addProjectConfiguration)(tree, options.name, (0, project_json_1.getProjectConfiguration)(options));
(0, create_files_1.createFiles)(tree, options);
// add extra files per options
// if (options.routing && ['angular'].includes(options.framework)) {
// createFiles(tree, options, 'routing');
// }
// add app resources
(0, app_resources_1.appResources)(tree, {
path: options.projectRoot,
});
tasks.push(yield (0, add_linting_1.addLinting)(tree, options));
(0, utils_1.updatePluginSettings)(tree, options);
tasks.push((0, utils_1.updatePluginDependencies)(tree, options));
if (!options.skipFormat) {
yield (0, devkit_1.formatFiles)(tree);
}
tasks.push(() => (0, log_show_project_command_1.logShowProjectCommand)(options.name));
return (0, devkit_1.runTasksInSerial)(...tasks);
});
}
exports.default = applicationGenerator;
//# sourceMappingURL=application.js.map
;