release.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. const fs = require("fs");
  2. const { execSync } = require("child_process");
  3. const excalidrawDir = `${__dirname}/../src/packages/excalidraw`;
  4. const excalidrawPackage = `${excalidrawDir}/package.json`;
  5. const pkg = require(excalidrawPackage);
  6. const originalReadMe = fs.readFileSync(`${excalidrawDir}/README.md`, "utf8");
  7. const updateReadme = () => {
  8. const excalidrawIndex = originalReadMe.indexOf("### Excalidraw");
  9. // remove note for stable readme
  10. const data = originalReadMe.slice(excalidrawIndex);
  11. // update readme
  12. fs.writeFileSync(`${excalidrawDir}/README.md`, data, "utf8");
  13. };
  14. const publish = () => {
  15. try {
  16. execSync(`yarn --frozen-lockfile`);
  17. execSync(`yarn --frozen-lockfile`, { cwd: excalidrawDir });
  18. execSync(`yarn run build:umd`, { cwd: excalidrawDir });
  19. execSync(`yarn --cwd ${excalidrawDir} publish`);
  20. } catch (error) {
  21. console.error(error);
  22. process.exit(1);
  23. }
  24. };
  25. const release = () => {
  26. updateReadme();
  27. console.info("Note for stable readme removed");
  28. publish();
  29. console.info(`Published ${pkg.version}!`);
  30. // revert readme after release
  31. fs.writeFileSync(`${excalidrawDir}/README.md`, originalReadMe, "utf8");
  32. console.info("Readme reverted");
  33. };
  34. release();