@nstudio/schematics
Version:
Cross-platform (xplat) tools for Nx workspaces.
99 lines • 4.98 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const schematics_1 = require("@angular-devkit/schematics");
const path_1 = require("path");
const fs = require("fs");
const utils_1 = require("../../utils");
function updateRootPackage(tree, context) {
return utils_1.updateJsonInTree("package.json", json => {
json.dependencies = json.dependencies || {};
if (json.dependencies['nativescript-angular']) {
json.dependencies['nativescript-angular'] = '~6.1.0';
}
if (json.dependencies['tns-core-modules']) {
json.dependencies['tns-core-modules'] = '~4.2.0';
}
if (json.dependencies['@ionic-native/core']) {
json.dependencies['@ionic-native/core'] = '5.0.0-beta.14';
}
if (json.dependencies['@ionic-native/splash-screen']) {
json.dependencies['@ionic-native/splash-screen'] = '5.0.0-beta.14';
}
if (json.dependencies['@ionic-native/status-bar']) {
json.dependencies['@ionic-native/status-bar'] = '5.0.0-beta.14';
}
if (json.dependencies['@ionic/angular']) {
json.dependencies['@ionic/angular'] = '~4.0.0-beta.1';
}
if (json.dependencies['@ionic/ng-toolkit']) {
json.dependencies['@ionic/ng-toolkit'] = '~1.0.0';
}
if (json.dependencies['@ionic/schematics-angular']) {
json.dependencies['@ionic/schematics-angular'] = '~1.0.0';
}
json.devDependencies = json.devDependencies || {};
if (json.devDependencies['tns-platform-declarations']) {
json.devDependencies['tns-platform-declarations'] = '~4.2.0';
}
return json;
})(tree, context);
}
function updateNativeScriptApps(tree, context) {
const appsDir = tree.getDir("apps");
const appFolders = appsDir.subdirs;
const cwd = process.cwd();
const webpackConfigPath = path_1.join(cwd, 'node_modules/@nstudio/schematics/src/app.nativescript/_files/webpack.config.js');
// console.log('webpackConfigPath:', webpackConfigPath);
const webpackConfig = fs.readFileSync(webpackConfigPath, 'UTF-8');
// update {N} apps and configs
for (const dir of appFolders) {
// console.log(dir);
if (dir.indexOf("nativescript-") === 0) {
const appDir = `${appsDir.path}/${dir}`;
// console.log('appDir:', appDir);
utils_1.createOrUpdate(tree, `${appDir}/webpack.config.js`, webpackConfig);
// update {N} app deps
const packagePath = `${appDir}/package.json`;
const packageJson = utils_1.getJsonFromFile(tree, packagePath);
if (packageJson) {
packageJson.dependencies = packageJson.dependencies || {};
packageJson.devDependencies = packageJson.devDependencies || {};
packageJson.devDependencies = Object.assign({}, packageJson.devDependencies, { "@angular/compiler-cli": "~6.1.1", "nativescript-dev-webpack": "~0.15.0", "@ngtools/webpack": "~6.1.1" });
// console.log('path:',path);
// console.log('packageJson overwrite:', JSON.stringify(packageJson));
tree = utils_1.updateJsonFile(tree, packagePath, packageJson);
}
}
}
return tree;
}
function updateIonicApps(tree, context) {
const appsDir = tree.getDir("apps");
const appFolders = appsDir.subdirs;
// update Ionic apps and configs
for (const dir of appFolders) {
// console.log(dir);
if (dir.indexOf("ionic-") === 0) {
const appDir = `${appsDir.path}/${dir}`;
// console.log('appDir:', appDir);
// update Ionic app deps
const packagePath = `${appDir}/package.json`;
const packageJson = utils_1.getJsonFromFile(tree, packagePath);
if (packageJson) {
packageJson.dependencies = packageJson.dependencies || {};
packageJson.dependencies = Object.assign({}, packageJson.dependencies, { "@capacitor/android": "^1.0.0-beta.3", "@capacitor/cli": "^1.0.0-beta.3", "@capacitor/core": "^1.0.0-beta.3", "@capacitor/ios": "^1.0.0-beta.3" });
packageJson.devDependencies = packageJson.devDependencies || {};
packageJson.devDependencies = Object.assign({}, packageJson.devDependencies, { "@angular-devkit/architect": "0.7.2", "@angular-devkit/build-angular": "0.7.2", "@angular-devkit/core": "0.7.2", "@angular-devkit/schematics": "0.7.2" });
// console.log('path:',path);
// console.log('packageJson overwrite:', JSON.stringify(packageJson));
tree = utils_1.updateJsonFile(tree, packagePath, packageJson);
}
}
}
return tree;
}
function default_1() {
return schematics_1.chain([updateRootPackage, updateNativeScriptApps, updateIonicApps]);
}
exports.default = default_1;
//# sourceMappingURL=update-6-2-0.js.map