mirror of
				https://github.com/excalidraw/excalidraw.git
				synced 2025-10-31 19:04:35 +01:00 
			
		
		
		
	 a8064ba3ee
			
		
	
	a8064ba3ee
	
	
	
		
			
			* build: Welcome ESM and Bye Bye UMD * remove package * create unbundled esm build * update script for example * fix typo * dummy commit * update autorelease script to build esm * revert dummy commit * move react, react-dom and testing library to dev dependencies * remove entry.js, publicPath and yarn install:deps script * fix * upgrade esbuild to fix glob import error for locales * remove webpack chunk names as thats not needed anymore * marking the code sideeffects free * make the library tree-shakeable and move fonts to fonts directory * allow side effects for css, scss files * remove tree-shaking * comment code for tree shaking * move to vite for example * bye bye webpack * ignore ts * separate build and output dir * use esbuild for creating bundle for example * update output dir * lint * create browser dev build with source maps and prod with minification * add dev and prod builds for bundler * lint * update script * remove await * load prod build * create minified build in dist * prod and dev builds using export field * remove import.meta * dummy * define import.meta prod and dev * fix * export types * add types field * typo * lint * Update scripts/buildPackage.js * move types inside export * newline
		
			
				
	
	
		
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const fs = require("fs");
 | |
| const { exec, execSync } = require("child_process");
 | |
| const core = require("@actions/core");
 | |
| 
 | |
| const excalidrawDir = `${__dirname}/../packages/excalidraw`;
 | |
| const excalidrawPackage = `${excalidrawDir}/package.json`;
 | |
| const pkg = require(excalidrawPackage);
 | |
| const isPreview = process.argv.slice(2)[0] === "preview";
 | |
| 
 | |
| const getShortCommitHash = () => {
 | |
|   return execSync("git rev-parse --short HEAD").toString().trim();
 | |
| };
 | |
| 
 | |
| const publish = () => {
 | |
|   const tag = isPreview ? "preview" : "next";
 | |
| 
 | |
|   try {
 | |
|     execSync(`yarn  --frozen-lockfile`);
 | |
|     execSync(`yarn run build:esm`, { cwd: excalidrawDir });
 | |
|     execSync(`yarn --cwd ${excalidrawDir} publish --tag ${tag}`);
 | |
|     console.info(`Published ${pkg.name}@${tag}🎉`);
 | |
|     core.setOutput(
 | |
|       "result",
 | |
|       `**Preview version has been shipped** :rocket:
 | |
|     You can use [@excalidraw/excalidraw@${pkg.version}](https://www.npmjs.com/package/@excalidraw/excalidraw/v/${pkg.version}) for testing!`,
 | |
|     );
 | |
|   } catch (error) {
 | |
|     core.setOutput("result", "package couldn't be published :warning:!");
 | |
|     console.error(error);
 | |
|     process.exit(1);
 | |
|   }
 | |
| };
 | |
| // get files changed between prev and head commit
 | |
| exec(`git diff --name-only HEAD^ HEAD`, async (error, stdout, stderr) => {
 | |
|   if (error || stderr) {
 | |
|     console.error(error);
 | |
|     core.setOutput("result", ":warning: Package couldn't be published!");
 | |
|     process.exit(1);
 | |
|   }
 | |
|   const changedFiles = stdout.trim().split("\n");
 | |
| 
 | |
|   const excalidrawPackageFiles = changedFiles.filter((file) => {
 | |
|     return (
 | |
|       file.indexOf("packages/excalidraw") >= 0 ||
 | |
|       file.indexOf("buildPackage.js") > 0
 | |
|     );
 | |
|   });
 | |
|   if (!excalidrawPackageFiles.length) {
 | |
|     console.info("Skipping release as no valid diff found");
 | |
|     core.setOutput("result", "Skipping release as no valid diff found");
 | |
|     process.exit(0);
 | |
|   }
 | |
| 
 | |
|   // update package.json
 | |
|   let version = `${pkg.version}-${getShortCommitHash()}`;
 | |
| 
 | |
|   // update readme
 | |
| 
 | |
|   if (isPreview) {
 | |
|     // use pullNumber-commithash as the version for preview
 | |
|     const pullRequestNumber = process.argv.slice(3)[0];
 | |
|     version = `${pkg.version}-${pullRequestNumber}-${getShortCommitHash()}`;
 | |
|   }
 | |
|   pkg.version = version;
 | |
| 
 | |
|   fs.writeFileSync(excalidrawPackage, JSON.stringify(pkg, null, 2), "utf8");
 | |
| 
 | |
|   console.info("Publish in progress...");
 | |
|   publish();
 | |
| });
 |