rewriteBuilds.ts 1.6 KB

12345678910111213141516171819202122232425
  1. import { readFileSync, writeFileSync, unlinkSync } from 'fs';
  2. import { join } from 'path';
  3. const atClass = /\/\*\* \@class \*\//g, pure = '/*#__PURE__*/';
  4. const extraneousExports = /exports\.(.*) = void 0;\n/;
  5. const libDir = join(__dirname, '..', 'lib');
  6. const libIndex = join(libDir, 'index.js');
  7. const lib = readFileSync(libIndex, 'utf-8').replace(atClass, pure).replace(extraneousExports, '');
  8. writeFileSync(libIndex, lib);
  9. const esmDir = join(__dirname, '..', 'esm');
  10. const esmIndex = join(esmDir, 'index.js'),
  11. esmWK = join(esmDir, 'worker.js'),
  12. esmNWK = join(esmDir, 'node-worker.js');
  13. const esm = readFileSync(esmIndex, 'utf-8').replace(atClass, pure);
  14. const wk = readFileSync(esmWK, 'utf-8'),
  15. nwk = readFileSync(esmNWK, 'utf-8');
  16. unlinkSync(esmIndex), unlinkSync(esmWK), unlinkSync(esmNWK);
  17. unlinkSync(join(libDir, 'worker.d.ts')), unlinkSync(join(libDir, 'node-worker.d.ts'));
  18. const workerImport = /import (.*) from '\.\/node-worker';/;
  19. const workerRequire = /var (.*) = require\("\.\/node-worker"\);/;
  20. const defaultExport = /export default/;
  21. writeFileSync(join(esmDir, 'index.mjs'), esm.replace(workerImport, name => nwk.replace(defaultExport, `var ${name.slice(7, name.indexOf(' ', 8))} =`)));
  22. writeFileSync(join(esmDir, 'browser.js'), esm.replace(workerImport, name => wk.replace(defaultExport, `var ${name.slice(7, name.indexOf(' ', 8))} =`)));
  23. writeFileSync(join(libDir, 'node.js'), lib.replace(workerRequire, name => nwk.replace(defaultExport, `var ${name.slice(4, name.indexOf(' ', 5))} =`)));
  24. writeFileSync(join(libDir, 'browser.js'), lib.replace(workerRequire, name => wk.replace(defaultExport, `var ${name.slice(4, name.indexOf(' ', 5))} =`)));