debian-mirror-gitlab/scripts/frontend/stylelint/stylelint-utility-map.js

65 lines
1.6 KiB
JavaScript
Raw Normal View History

2019-07-07 11:18:12 +05:30
const fs = require('fs');
const path = require('path');
2021-04-17 20:07:23 +05:30
const postcss = require('postcss');
2019-07-07 11:18:12 +05:30
const prettier = require('prettier');
2021-06-08 01:23:25 +05:30
const sass = require('sass');
2019-07-07 11:18:12 +05:30
const utils = require('./stylelint-utils');
2021-04-17 20:07:23 +05:30
2019-07-07 11:18:12 +05:30
const ROOT_PATH = path.resolve(__dirname, '../../..');
const hashMapPath = path.resolve(__dirname, './utility-classes-map.js');
//
// This creates a JS based hash map (saved in utility-classes-map.js) of the different values in the utility classes
//
sass.render(
{
data: `
@import './functions';
@import './variables';
@import './mixins';
@import './utilities';
`,
includePaths: [path.resolve(ROOT_PATH, 'node_modules/bootstrap/scss')],
},
(err, result) => {
2021-04-17 20:07:23 +05:30
if (err) {
return console.error('Error ', err);
}
2019-07-07 11:18:12 +05:30
const cssResult = result.css.toString();
// We just use postcss to create a CSS tree
2021-04-17 20:07:23 +05:30
return postcss([])
2019-07-07 11:18:12 +05:30
.process(cssResult, {
2019-09-04 21:01:54 +05:30
// This suppresses a postcss warning
2019-07-07 11:18:12 +05:30
from: undefined,
})
2021-04-17 20:07:23 +05:30
.then((processedResult) => {
2019-07-07 11:18:12 +05:30
const selectorGroups = {};
2021-04-17 20:07:23 +05:30
utils.createPropertiesHashmap(
processedResult.root,
processedResult,
null,
null,
selectorGroups,
true,
);
2019-07-07 11:18:12 +05:30
const prettierOptions = prettier.resolveConfig.sync(hashMapPath);
const prettyHashmap = prettier.format(
`module.exports = ${JSON.stringify(selectorGroups)};`,
prettierOptions,
);
2021-04-17 20:07:23 +05:30
fs.writeFile(hashMapPath, prettyHashmap, (e) => {
if (e) {
return console.log(e);
2019-07-07 11:18:12 +05:30
}
2021-04-17 20:07:23 +05:30
return console.log('The file was saved!');
2019-07-07 11:18:12 +05:30
});
});
},
);