Fixes https://github.com/webrecorder/browsertrix/issues/2064 ### Changes - Switches MDE library to one that supports shadow DOM - Refactors collection components to btrix components - Fixes collection detail not expanding and contracting correctly
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /* eslint-env node */
 | |
| import { fileURLToPath } from "url";
 | |
| 
 | |
| import commonjsPlugin from "@rollup/plugin-commonjs";
 | |
| import { esbuildPlugin } from "@web/dev-server-esbuild";
 | |
| import { importMapsPlugin } from "@web/dev-server-import-maps";
 | |
| import { fromRollup } from "@web/dev-server-rollup";
 | |
| import glob from "glob";
 | |
| import { typescriptPaths as typescriptPathsPlugin } from "rollup-plugin-typescript-paths";
 | |
| 
 | |
| const commonjs = fromRollup(commonjsPlugin);
 | |
| const typescriptPaths = fromRollup(typescriptPathsPlugin);
 | |
| 
 | |
| // Map css and assert imports to mock file
 | |
| const emptyImports = {};
 | |
| glob.sync("./src/**/*.css").forEach((filepath) => {
 | |
|   emptyImports[filepath] = fileURLToPath(
 | |
|     new URL("./src/__mocks__/_empty.js", import.meta.url),
 | |
|   );
 | |
| });
 | |
| glob.sync("./src/assets/**/*").forEach((filepath) => {
 | |
|   // Enable "~assets" imports, which doesn't work with `rollup-plugin-typescript-paths`
 | |
|   const aliasedImportPath = filepath.replace("./src/", "~");
 | |
| 
 | |
|   emptyImports[aliasedImportPath] = fileURLToPath(
 | |
|     new URL("./src/__mocks__/_empty.js", import.meta.url),
 | |
|   );
 | |
| });
 | |
| 
 | |
| export default {
 | |
|   nodeResolve: true,
 | |
|   rootDir: process.cwd(),
 | |
|   plugins: [
 | |
|     typescriptPaths({
 | |
|       preserveExtensions: true,
 | |
|       absolute: false,
 | |
|       nonRelative: true, // needed for non-ts files
 | |
|       transform(path) {
 | |
|         return `/${path}`;
 | |
|       },
 | |
|     }),
 | |
|     esbuildPlugin({
 | |
|       ts: true,
 | |
|       tsconfig: fileURLToPath(new URL("./tsconfig.json", import.meta.url)),
 | |
|       target: "esnext",
 | |
|     }),
 | |
|     commonjs({
 | |
|       include: [
 | |
|         // web-test-runner expects es modules,
 | |
|         // include umd/commonjs modules here:
 | |
|         "node_modules/url-pattern/**/*",
 | |
|         "node_modules/lodash/**/*",
 | |
|         "node_modules/color/**/*",
 | |
|         "node_modules/slugify/**/*",
 | |
|         "node_modules/pretty-ms/**/*",
 | |
|         "node_modules/parse-ms/**/*",
 | |
|       ],
 | |
|     }),
 | |
|     importMapsPlugin({
 | |
|       inject: {
 | |
|         importMap: {
 | |
|           imports: {
 | |
|             ...emptyImports,
 | |
|             "./src/shoelace": fileURLToPath(
 | |
|               new URL("./src/__mocks__/shoelace.js", import.meta.url),
 | |
|             ),
 | |
|             "tailwindcss/tailwind.css": fileURLToPath(
 | |
|               new URL("./src/__mocks__/_empty.js", import.meta.url),
 | |
|             ),
 | |
|             "@shoelace-style/shoelace/dist/themes/light.css": fileURLToPath(
 | |
|               new URL("./src/__mocks__/_empty.js", import.meta.url),
 | |
|             ),
 | |
|           },
 | |
|         },
 | |
|       },
 | |
|     }),
 | |
|   ],
 | |
| };
 |