All files / packages/sds-components/scripts buildDist.js

0% Statements 0/21
0% Branches 0/12
100% Functions 0/0
0% Lines 0/21

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56                                                                                                               
import path from 'path';
import fs from 'fs-extra';
import { fileURLToPath } from 'url';
import arg from 'arg';
 
const __filename = fileURLToPath(import.meta.url);
const __dirname = path.dirname(__filename);
 
const root = path.resolve(__dirname, '../');
const dist = path.resolve(root, 'dist');
 
fs.emptyDirSync(dist);
 
const args = arg({
  '--version': String,
});
 
const filterDirectories = (src, folder) => {
  const directory = path.parse(src).dir;
  if (src.endsWith(folder) || directory.endsWith(folder)) {
    return true;
  }
};
 
const filterFunc = (src, dest) => {
  if (
    filterDirectories(src, '__tests__') ||
    filterDirectories(src, '__stories__') ||
    filterDirectories(src, '__assets__') ||
    filterDirectories(src, '__mocks__')
  ) {
    return false;
  }
  return true;
};
 
fs.copySync(path.resolve(root, 'src/sds'), path.resolve(dist, 'src/sds'), { filter: filterFunc });
fs.copySync(path.resolve(root, 'package.json'), path.resolve(dist, 'package.json'));
const packageJson = fs.readJsonSync(path.resolve(dist, 'package.json'));
const lwcConfig = fs.readJsonSync(path.resolve(root, 'lwc.config.json'));
 
if (args['--version'] === packageJson.version) {
  throw new Error(
    `The version ${args['--version']} is the current version. Please provide a new semver version.`,
  );
}
if (args['--version']) {
  packageJson.version = args['--version'];
  delete packageJson.scripts;
  delete packageJson.devDependencies;
  delete packageJson.volta;
  packageJson.name = '@salesforce-ux/sds-primitives';
  packageJson.lwc = lwcConfig;
  fs.outputJsonSync(path.resolve(dist, 'package.json'), packageJson, { spaces: 2 });
}