|
import fs from 'fs';
|
|
|
|
const packageJSONPromises = Promise.all([
|
|
import('../package.json', { assert: { type: 'json' } }),
|
|
import('../dist/icons-contribution.json', { assert: { type: 'json' } }),
|
|
]);
|
|
|
|
const scssPromises = Promise.all([
|
|
fs.promises.readFile('./dist/glicons.scss', 'utf8'),
|
|
fs.promises.readFile('./src/webviews/apps/shared/glicons.scss', 'utf8'),
|
|
]);
|
|
|
|
let pending = [];
|
|
|
|
// Update the icons contribution point in package.json
|
|
const [{ default: packageJSON }, { default: icons }] = await packageJSONPromises;
|
|
|
|
if (JSON.stringify(packageJSON.contributes.icons) !== JSON.stringify(icons.icons)) {
|
|
packageJSON.contributes.icons = icons;
|
|
const json = `${JSON.stringify(packageJSON, undefined, '\t')}\n`;
|
|
pending.push(fs.promises.writeFile('./package.json', json));
|
|
}
|
|
|
|
// Update the scss file
|
|
const [newScss, scss] = await scssPromises;
|
|
|
|
if (scss !== newScss) {
|
|
pending.push(fs.promises.writeFile('./src/webviews/apps/shared/glicons.scss', newScss));
|
|
}
|
|
|
|
pending.push(fs.promises.rm('./dist/icons-contribution.json'), fs.promises.rm('./dist/glicons.scss'));
|
|
await Promise.allSettled(pending);
|