UNPKG

@ikamva/ngx-tailwindcss

Version:

Tailwind CSS angular schematic

109 lines 4.12 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; var __importStar = (this && this.__importStar) || function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k]; result["default"] = mod; return result; }; Object.defineProperty(exports, "__esModule", { value: true }); const schematics_1 = require("@angular-devkit/schematics"); const versions_json_1 = __importDefault(require("../../app/versions.json")); const semver = __importStar(require("semver")); exports.stringifyFormatted = (obj) => JSON.stringify(obj, null, 2); exports.overwriteIfExists = (tree, path, content) => { if (tree.exists(path)) { tree.overwrite(path, content); } else { tree.create(path, content); } }; function safeReadJSON(path, tree) { try { // tslint:disable-next-line:no-non-null-assertion return JSON.parse(tree.read(path).toString()); } catch (e) { throw new schematics_1.SchematicsException(`Error when parsing ${path}: ${e.message}`); } } exports.safeReadJSON = safeReadJSON; exports.addDependencies = (host, deps, context) => { const packageJson = host.exists('package.json') && safeReadJSON('package.json', host); if (packageJson === undefined) { throw new schematics_1.SchematicsException('Could not locate package.json'); } Object.keys(deps).forEach(depName => { const dep = deps[depName]; context.logger.info(`✅️ this ${depName} in Dev`); if (dep.dev) { const existingVersion = packageJson.devDependencies[depName]; if (existingVersion) { if (!semver.intersects(existingVersion, dep.version)) { // context.logger.warn(`⚠️ The ${depName} devDependency specified in your package.json`); // TODO offer to fix } } else { packageJson.devDependencies[depName] = dep.version; // context.logger.info(`✅️ Added ${packageJson.name} in Dev`); } } else { // context.logger.info(`✅️ Added ${packageJson.name}`); } }); exports.overwriteIfExists(host, 'package.json', exports.stringifyFormatted(packageJson)); }; // Adds Packages exports.addPackageJsonDependencies = () => { return (tree, context) => { try { context.logger.info('Why'); exports.addDependencies(tree, Object.assign({}, versions_json_1.default), context); } catch (error) { } return tree; }; }; // export function addPackageJsonDependencies(): Rule { // return (tree: Tree, _context: SchematicContext): Observable<Tree> => { // // Gets core version // const ngCoreVersionTag = getPackageVersionFromPackageJson( // tree, // "@angular/core" // ); // return of( // "tailwindcss", // "postcss-scss", // "postcss-import", // "postcss-loader", // "@angular-builders/custom-webpack" // ).pipe( // concatMap(name => getLatestNodeVersion(name)), // map((npmRegistryPackage: NpmRegistryPackage) => { // // Checks Angular Core version // const packageVersion = npmRegistryPackage.name === "@angular-builders/custom-webpack" // ? ngCoreVersionTag?.startsWith("8", 1) // ? "8.4.1" // : npmRegistryPackage.version // : npmRegistryPackage.version; // const nodeDependency: NodeDependency = { // type: NodeDependencyType.Dev, // name: npmRegistryPackage.name, // version: packageVersion, // overwrite: false // }; // addPackageJsonDependency(tree, nodeDependency); // _context.logger.info(`✅️ Added ${npmRegistryPackage.name}`); // return tree; // }) // ); // }; // } //# sourceMappingURL=addPackageJsonDependencies.1.js.map