mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-11-04 07:01:31 +08:00 
			
		
		
		
	
		
			
	
	
		
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								/**
							 | 
						||
| 
								 | 
							
								 * @module
							 | 
						||
| 
								 | 
							
								 *
							 | 
						||
| 
								 | 
							
								 * This script synchronizes the `package.json` version of the monorepo (root `package.json`)
							 | 
						||
| 
								 | 
							
								 * into the apps, so that it is properly displayed.
							 | 
						||
| 
								 | 
							
								 */
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import { fileURLToPath } from "url";
							 | 
						||
| 
								 | 
							
								import { dirname, join } from "path";
							 | 
						||
| 
								 | 
							
								import fs from "fs";
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function patchPackageJson(packageJsonPath: string, version: string) {
							 | 
						||
| 
								 | 
							
								    // Read the version from package.json and process it.
							 | 
						||
| 
								 | 
							
								    const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Write the adjusted version back in.
							 | 
						||
| 
								 | 
							
								    packageJson.version = version;
							 | 
						||
| 
								 | 
							
								    const formattedJson = JSON.stringify(packageJson, null, 2);
							 | 
						||
| 
								 | 
							
								    fs.writeFileSync(packageJsonPath, formattedJson);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function getVersion(packageJsonPath: string) {
							 | 
						||
| 
								 | 
							
								    const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf-8"));
							 | 
						||
| 
								 | 
							
								    return packageJson.version;
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function main() {
							 | 
						||
| 
								 | 
							
								    const scriptDir = dirname(fileURLToPath(import.meta.url));
							 | 
						||
| 
								 | 
							
								    const version = getVersion(join(scriptDir, "..", "package.json"));
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for (const appName of ["server", "client"]) {
							 | 
						||
| 
								 | 
							
								        patchPackageJson(join(scriptDir, "..", "apps", appName, "package.json"), version);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    for (const packageName of ["commons"]) {
							 | 
						||
| 
								 | 
							
								        patchPackageJson(join(scriptDir, "..", "packages", packageName, "package.json"), version);
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								main();
							 |