You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

32 regels
1.1 KiB

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);