@o3r/stylelint-plugin
Version:
In-house stylelint plugin to use in your own eslint configuration
51 lines • 2.07 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ngAdd = void 0;
const path = require("node:path");
const schematics_1 = require("@o3r/schematics");
const packageJsonPath = path.resolve(__dirname, '..', '..', 'package.json');
const dependenciesToInstall = [
'postcss',
'postcss-scss',
'stylelint'
];
/**
* Add Otter stylelint-plugin to an Angular Project
* @param options
*/
function ngAddFn(options) {
/* ng add rules */
return async (tree, context) => {
const { NodeDependencyType } = await Promise.resolve().then(() => require('@schematics/angular/utility/dependencies'));
const depsInfo = (0, schematics_1.getO3rPeerDeps)(packageJsonPath);
const workspaceProject = options.projectName ? (0, schematics_1.getWorkspaceConfig)(tree)?.projects[options.projectName] : undefined;
const dependencies = depsInfo.o3rPeerDeps.reduce((acc, dep) => {
acc[dep] = {
inManifest: [{
range: `~${depsInfo.packageVersion}`,
types: (0, schematics_1.getProjectNewDependenciesTypes)(workspaceProject)
}]
};
return acc;
}, (0, schematics_1.getPackageInstallConfig)(packageJsonPath, tree, options.projectName, true, !!options.exactO3rVersion));
Object.entries((0, schematics_1.getExternalDependenciesVersionRange)(dependenciesToInstall, packageJsonPath, context.logger)).forEach(([dep, range]) => {
dependencies[dep] = {
inManifest: [{
range,
types: [NodeDependencyType.Dev]
}]
};
});
return (0, schematics_1.setupDependencies)({
projectName: options.projectName,
dependencies
});
};
}
/**
* Add Otter stylelint-plugin to an Angular Project
* @param options
*/
const ngAdd = (options) => (0, schematics_1.createOtterSchematic)(ngAddFn)(options);
exports.ngAdd = ngAdd;
//# sourceMappingURL=index.js.map