41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
| import childProcess from 'node:child_process';
 | |
| import path from 'node:path';
 | |
| import process from 'node:process';
 | |
| import url from 'node:url';
 | |
| import {defineConfig} from 'vite';
 | |
| 
 | |
| const currentDir = path.dirname(url.fileURLToPath(import.meta.url));
 | |
| 
 | |
| const buildDir = path.join(currentDir, 'public');
 | |
| const sourceDir = path.join(currentDir, 'source');
 | |
| 
 | |
| function gitRevParse(): string {
 | |
|   const revParse = childProcess.spawnSync(
 | |
|     'git',
 | |
|     ['rev-parse', '--short', '--verify', 'main'],
 | |
|     {encoding: 'utf8'},
 | |
|   );
 | |
| 
 | |
|   if (revParse.error) {
 | |
|     throw revParse.error;
 | |
|   }
 | |
| 
 | |
|   return JSON.stringify(revParse.stdout.trim());
 | |
| }
 | |
| 
 | |
| const hrefPlusVersion = process.env.npm_package_version ?? '<unknown version>';
 | |
| 
 | |
| export default defineConfig({
 | |
|   build: {
 | |
|     outDir: buildDir,
 | |
|     sourcemap: true,
 | |
|   },
 | |
|   define: {
 | |
|     hrefPlusVersion: JSON.stringify(hrefPlusVersion),
 | |
|     hrefPlusCommitHash: gitRevParse(),
 | |
|     hrefPlusUserAgent: `"href-plus/${hrefPlusVersion} (https://git.bauke.xyz/Bauke/href-plus)"`,
 | |
|   },
 | |
|   publicDir: path.join(sourceDir, 'assets'),
 | |
|   root: sourceDir,
 | |
| });
 |