| 
									
										
										
										
											2023-05-16 18:20:48 -04:00
										 |  |  | import { defineConfig } from 'vite' | 
					
						
							|  |  |  | import { nodePolyfills } from 'vite-plugin-node-polyfills' | 
					
						
							|  |  |  | import { configDefaults } from 'vitest/config' | 
					
						
							|  |  |  | import react from '@vitejs/plugin-react' | 
					
						
							|  |  |  | import { crx } from '@crxjs/vite-plugin' | 
					
						
							|  |  |  | import manifest from './manifest.json' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-01-21 20:31:15 -05:00
										 |  |  | const viteManifestHackIssue846: Plugin & { | 
					
						
							|  |  |  |     renderCrxManifest: (manifest: any, bundle: any) => void | 
					
						
							|  |  |  | } = { | 
					
						
							|  |  |  |     // Workaround from https://github.com/crxjs/chrome-extension-tools/issues/846#issuecomment-1861880919.
 | 
					
						
							|  |  |  |     name: 'manifestHackIssue846', | 
					
						
							|  |  |  |     renderCrxManifest(_manifest, bundle) { | 
					
						
							|  |  |  |         bundle['manifest.json'] = bundle['.vite/manifest.json'] | 
					
						
							|  |  |  |         bundle['manifest.json'].fileName = 'manifest.json' | 
					
						
							|  |  |  |         delete bundle['.vite/manifest.json'] | 
					
						
							|  |  |  |     }, | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-05-16 18:20:48 -04:00
										 |  |  | export default defineConfig(() => { | 
					
						
							|  |  |  |     return { | 
					
						
							|  |  |  |         build: { | 
					
						
							|  |  |  |             outDir: 'build', | 
					
						
							|  |  |  |         }, | 
					
						
							| 
									
										
										
										
											2024-01-21 20:31:15 -05:00
										 |  |  |         plugins: [ | 
					
						
							|  |  |  |             react(), | 
					
						
							|  |  |  |             viteManifestHackIssue846, | 
					
						
							|  |  |  |             crx({ manifest }), | 
					
						
							|  |  |  |             nodePolyfills(), | 
					
						
							|  |  |  |         ], | 
					
						
							| 
									
										
										
										
											2023-05-16 18:20:48 -04:00
										 |  |  |         resolve: { | 
					
						
							|  |  |  |             alias: { | 
					
						
							|  |  |  |                 // Replaces node-fetch in kittycad.ts, cross-fetch wouldn't work
 | 
					
						
							|  |  |  |                 'node-fetch': 'isomorphic-fetch', | 
					
						
							|  |  |  |             }, | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |         test: { | 
					
						
							|  |  |  |             globals: true, | 
					
						
							| 
									
										
										
										
											2024-01-19 06:32:54 -05:00
										 |  |  |             environment: 'happy-dom', | 
					
						
							| 
									
										
										
										
											2023-05-16 18:20:48 -04:00
										 |  |  |             setupFiles: 'src/setupTests.ts', | 
					
						
							|  |  |  |             exclude: [...configDefaults.exclude, 'tests/*'], | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | }) |