mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 21:11:30 +08:00 
			
		
		
		
	feat(deps): remove dependency on semver
This commit is contained in:
		
							parent
							
								
									d908c9044b
								
							
						
					
					
						commit
						ce45309818
					
				
							
								
								
									
										9
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										9
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -86,7 +86,6 @@ | ||||
|         "sanitize-filename": "1.6.3", | ||||
|         "sanitize-html": "2.14.0", | ||||
|         "sax": "1.4.1", | ||||
|         "semver": "7.7.1", | ||||
|         "serve-favicon": "2.5.0", | ||||
|         "session-file-store": "1.5.0", | ||||
|         "source-map-support": "0.5.21", | ||||
| @ -141,7 +140,6 @@ | ||||
|         "@types/safe-compare": "1.1.2", | ||||
|         "@types/sanitize-html": "2.13.0", | ||||
|         "@types/sax": "1.2.7", | ||||
|         "@types/semver": "7.5.8", | ||||
|         "@types/serve-favicon": "2.5.7", | ||||
|         "@types/session-file-store": "1.2.5", | ||||
|         "@types/source-map-support": "0.5.10", | ||||
| @ -4002,13 +4000,6 @@ | ||||
|         "@types/node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "node_modules/@types/semver": { | ||||
|       "version": "7.5.8", | ||||
|       "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.5.8.tgz", | ||||
|       "integrity": "sha512-I8EUhyrgfLrcTkzV3TSsGyl1tSuPrEDzr0yd5m90UgNxQkyDXULk3b6MlQqTCpZpNtWe1K0hzclnZkTcLBe2UQ==", | ||||
|       "dev": true, | ||||
|       "license": "MIT" | ||||
|     }, | ||||
|     "node_modules/@types/send": { | ||||
|       "version": "0.17.4", | ||||
|       "resolved": "https://registry.npmjs.org/@types/send/-/send-0.17.4.tgz", | ||||
|  | ||||
| @ -131,7 +131,6 @@ | ||||
|     "sanitize-filename": "1.6.3", | ||||
|     "sanitize-html": "2.14.0", | ||||
|     "sax": "1.4.1", | ||||
|     "semver": "7.7.1", | ||||
|     "serve-favicon": "2.5.0", | ||||
|     "session-file-store": "1.5.0", | ||||
|     "source-map-support": "0.5.21", | ||||
| @ -183,7 +182,6 @@ | ||||
|     "@types/safe-compare": "1.1.2", | ||||
|     "@types/sanitize-html": "2.13.0", | ||||
|     "@types/sax": "1.2.7", | ||||
|     "@types/semver": "7.5.8", | ||||
|     "@types/serve-favicon": "2.5.7", | ||||
|     "@types/session-file-store": "1.2.5", | ||||
|     "@types/source-map-support": "0.5.10", | ||||
|  | ||||
| @ -324,6 +324,48 @@ export function getResourceDir() { | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| // TODO: Deduplicate with src/public/app/services/utils.ts
 | ||||
| /** | ||||
|  * Compares two semantic version strings. | ||||
|  * Returns: | ||||
|  *   1  if v1 is greater than v2 | ||||
|  *   0  if v1 is equal to v2 | ||||
|  *   -1 if v1 is less than v2 | ||||
|  * | ||||
|  * @param v1 First version string | ||||
|  * @param v2 Second version string | ||||
|  * @returns | ||||
|  */ | ||||
| function compareVersions(v1: string, v2: string): number { | ||||
|     // Remove 'v' prefix and everything after dash if present
 | ||||
|     v1 = v1.replace(/^v/, "").split("-")[0]; | ||||
|     v2 = v2.replace(/^v/, "").split("-")[0]; | ||||
| 
 | ||||
|     const v1parts = v1.split(".").map(Number); | ||||
|     const v2parts = v2.split(".").map(Number); | ||||
| 
 | ||||
|     // Pad shorter version with zeros
 | ||||
|     while (v1parts.length < 3) v1parts.push(0); | ||||
|     while (v2parts.length < 3) v2parts.push(0); | ||||
| 
 | ||||
|     // Compare major version
 | ||||
|     if (v1parts[0] !== v2parts[0]) { | ||||
|         return v1parts[0] > v2parts[0] ? 1 : -1; | ||||
|     } | ||||
| 
 | ||||
|     // Compare minor version
 | ||||
|     if (v1parts[1] !== v2parts[1]) { | ||||
|         return v1parts[1] > v2parts[1] ? 1 : -1; | ||||
|     } | ||||
| 
 | ||||
|     // Compare patch version
 | ||||
|     if (v1parts[2] !== v2parts[2]) { | ||||
|         return v1parts[2] > v2parts[2] ? 1 : -1; | ||||
|     } | ||||
| 
 | ||||
|     return 0; | ||||
| } | ||||
| 
 | ||||
| export default { | ||||
|     randomSecureToken, | ||||
|     randomString, | ||||
| @ -360,5 +402,6 @@ export default { | ||||
|     getResourceDir, | ||||
|     isMac, | ||||
|     isWindows, | ||||
|     envToBoolean | ||||
|     envToBoolean, | ||||
|     compareVersions | ||||
| }; | ||||
|  | ||||
| @ -12,7 +12,8 @@ import ws from "./services/ws.js"; | ||||
| import utils from "./services/utils.js"; | ||||
| import port from "./services/port.js"; | ||||
| import host from "./services/host.js"; | ||||
| import semver from "semver"; | ||||
| 
 | ||||
| const MINIMUM_NODE_VERSION = "22.0.0"; | ||||
| 
 | ||||
| // setup basic error handling even before requiring dependencies, since those can produce errors as well
 | ||||
| 
 | ||||
| @ -32,8 +33,8 @@ function exit() { | ||||
| process.on("SIGINT", exit); | ||||
| process.on("SIGTERM", exit); | ||||
| 
 | ||||
| if (!semver.satisfies(process.version, ">=10.5.0")) { | ||||
|     console.error("Trilium only supports node.js 10.5 and later"); | ||||
| if (utils.compareVersions(process.version, MINIMUM_NODE_VERSION) < 0) { | ||||
|     console.error(`\nTrilium requires Node.js ${MINIMUM_NODE_VERSION} and later.\n`); | ||||
|     process.exit(1); | ||||
| } | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran