@ikamva/ngx-tailwindcss
Version:
Tailwind CSS angular schematic
109 lines • 4.12 kB
JavaScript
;
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