diff --git a/e2e/tests/manifest-content.test.ts b/e2e/tests/manifest-content.test.ts index 5c566395..fe742093 100644 --- a/e2e/tests/manifest-content.test.ts +++ b/e2e/tests/manifest-content.test.ts @@ -42,7 +42,7 @@ describe('Manifest Content', () => { await project.build({ manifestVersion: 2 }); const manifest = await project.getOutputManifest( - '.output/chromium-mv2/manifest.json', + '.output/chrome-mv2/manifest.json', ); expect(manifest[expectedType]).toEqual({ default_icon: { '16': '/icon/16.png' }, @@ -123,7 +123,7 @@ describe('Manifest Content', () => { await project.build({ manifestVersion: 2 }); const manifest = await project.getOutputManifest( - '.output/chromium-mv2/manifest.json', + '.output/chrome-mv2/manifest.json', ); expect(manifest.background).toEqual({ diff --git a/e2e/tests/output-structure.test.ts b/e2e/tests/output-structure.test.ts index db9f7dfd..c4a0e3a3 100644 --- a/e2e/tests/output-structure.test.ts +++ b/e2e/tests/output-structure.test.ts @@ -11,7 +11,7 @@ describe('Output Directory Structure', () => { await project.build(); expect(await project.serializeOutput()).toMatchInlineSnapshot(` - ".output/chromium-mv3/manifest.json + ".output/chrome-mv3/manifest.json ---------------------------------------- {\\"manifest_version\\":3,\\"name\\":\\"E2E Extension\\",\\"version\\":\\"0.0.0\\",\\"version_name\\":\\"0.0.0-test\\"}" `); @@ -44,31 +44,31 @@ describe('Output Directory Structure', () => { await project.build(); expect(await project.serializeOutput()).toMatchInlineSnapshot(` - ".output/chromium-mv3/assets/one-dedc7a05.css + ".output/chrome-mv3/assets/one-dedc7a05.css ---------------------------------------- body{color:#00f} ================================================================================ - .output/chromium-mv3/assets/two-74d94aed.css + .output/chrome-mv3/assets/two-74d94aed.css ---------------------------------------- body{color:red} ================================================================================ - .output/chromium-mv3/content-scripts/one.js + .output/chrome-mv3/content-scripts/one.js ---------------------------------------- (function(){\\"use strict\\";function c(n){return n}const e=\\"\\",t={matches:[\\"*://*/*\\"],main:()=>{}};(async()=>{try{await t.main()}catch(n){console.error(\`The content script crashed on startup! \`,n)}})()})(); ================================================================================ - .output/chromium-mv3/content-scripts/two.js + .output/chrome-mv3/content-scripts/two.js ---------------------------------------- (function(){\\"use strict\\";function c(n){return n}const e=\\"\\",t={matches:[\\"*://*/*\\"],main:()=>{}};(async()=>{try{await t.main()}catch(n){console.error(\`The content script crashed on startup! \`,n)}})()})(); ================================================================================ - .output/chromium-mv3/manifest.json + .output/chrome-mv3/manifest.json ---------------------------------------- {\\"manifest_version\\":3,\\"name\\":\\"E2E Extension\\",\\"version\\":\\"0.0.0\\",\\"version_name\\":\\"0.0.0-test\\",\\"content_scripts\\":[{\\"matches\\":[\\"*://*/*\\"],\\"css\\":[\\"assets/one-dedc7a05.css\\",\\"assets/two-74d94aed.css\\"],\\"js\\":[\\"content-scripts/one.js\\",\\"content-scripts/two.js\\"]}]}" `); diff --git a/e2e/tests/remote-code.test.ts b/e2e/tests/remote-code.test.ts index ab49c355..7d80458a 100644 --- a/e2e/tests/remote-code.test.ts +++ b/e2e/tests/remote-code.test.ts @@ -9,7 +9,7 @@ describe('Remote Code', () => { await project.build(); - const output = await project.serializeFile('.output/chromium-mv3/popup.js'); + const output = await project.serializeFile('.output/chrome-mv3/popup.js'); expect(output).toContain( // Some text that will hopefully be in future versions of this script 'umami.disabled', diff --git a/e2e/tests/user-config.test.ts b/e2e/tests/user-config.test.ts index a6c56c65..e2659bdb 100644 --- a/e2e/tests/user-config.test.ts +++ b/e2e/tests/user-config.test.ts @@ -20,12 +20,12 @@ describe('User Config', () => { const output = await project.serializeOutput(); expect(output).toMatchInlineSnapshot(` - ".output/chromium-mv3/background.js + ".output/chrome-mv3/background.js ---------------------------------------- (function(){\\"use strict\\";function o(n){return typeof n==\\"function\\"?{main:n}:n}const r=o(()=>console.log(\\"Hello background\\"));try{r.main()instanceof Promise&&console.warn(\\"The background's main() function return a promise, but it must be synchonous\\")}catch(n){throw console.error(\\"The background script crashed on startup!\\"),n}})(); ================================================================================ - .output/chromium-mv3/manifest.json + .output/chrome-mv3/manifest.json ---------------------------------------- {\\"manifest_version\\":3,\\"name\\":\\"E2E Extension\\",\\"version\\":\\"0.0.0\\",\\"version_name\\":\\"0.0.0-test\\",\\"background\\":{\\"service_worker\\":\\"background.js\\"}}" `); @@ -45,12 +45,12 @@ describe('User Config', () => { const output = await project.serializeOutput(); expect(output).toMatchInlineSnapshot(` - ".output/chromium-mv3/background.js + ".output/chrome-mv3/background.js ---------------------------------------- (function(){\\"use strict\\";function o(n){return typeof n==\\"function\\"?{main:n}:n}const r=o(()=>console.log(\\"Hello background\\"));try{r.main()instanceof Promise&&console.warn(\\"The background's main() function return a promise, but it must be synchonous\\")}catch(n){throw console.error(\\"The background script crashed on startup!\\"),n}})(); ================================================================================ - .output/chromium-mv3/manifest.json + .output/chrome-mv3/manifest.json ---------------------------------------- {\\"manifest_version\\":3,\\"name\\":\\"E2E Extension\\",\\"version\\":\\"0.0.0\\",\\"version_name\\":\\"0.0.0-test\\",\\"background\\":{\\"service_worker\\":\\"background.js\\"}}" `); diff --git a/e2e/utils.ts b/e2e/utils.ts index 3b4c0260..24c5c9df 100644 --- a/e2e/utils.ts +++ b/e2e/utils.ts @@ -124,7 +124,7 @@ export class TestProject { } async getOutputManifest( - path: string = '.output/chromium-mv3/manifest.json', + path: string = '.output/chrome-mv3/manifest.json', ): Promise { return await fs.readJson(resolve(this.root, path)); } diff --git a/src/cli/commands/prepare.ts b/src/cli/commands/prepare.ts index 93fe3016..06bcbe45 100644 --- a/src/cli/commands/prepare.ts +++ b/src/cli/commands/prepare.ts @@ -1,6 +1,6 @@ -import { getInternalConfig } from '../../utils/getInternalConfig'; -import { findEntrypoints } from '../../utils/findEntrypoints'; -import { generateTypesDir } from '../../utils/generateTypesDir'; +import { getInternalConfig } from '../../core/utils/getInternalConfig'; +import { findEntrypoints } from '../../core/build/findEntrypoints'; +import { generateTypesDir } from '../../core/build/generateTypesDir'; import { defineCommand } from '../utils/defineCommand'; import * as wxt from '../..'; diff --git a/src/cli/utils/defineCommand.ts b/src/cli/utils/defineCommand.ts index a6dddf01..21f86910 100644 --- a/src/cli/utils/defineCommand.ts +++ b/src/cli/utils/defineCommand.ts @@ -1,6 +1,6 @@ import { consola } from 'consola'; -import { printHeader } from './printHeader'; -import { formatDuration } from '../../utils/formatDuration'; +import { printHeader } from '../../core/log/printHeader'; +import { formatDuration } from '../../core/utils/formatDuration'; export function defineCommand( cb: (...args: TArgs) => void | boolean | Promise, diff --git a/src/client/defineContentScript.ts b/src/client/defineContentScript.ts index 7d93d19a..7e3d7d16 100644 --- a/src/client/defineContentScript.ts +++ b/src/client/defineContentScript.ts @@ -1,4 +1,4 @@ -import { ContentScriptDefinition } from '../types'; +import { ContentScriptDefinition } from '../core/types'; export function defineContentScript( definition: ContentScriptDefinition, diff --git a/src/utils/__tests__/findEntrypoints.test.ts b/src/core/build/__tests__/findEntrypoints.test.ts similarity index 98% rename from src/utils/__tests__/findEntrypoints.test.ts rename to src/core/build/__tests__/findEntrypoints.test.ts index fb5519a5..76f8b2f1 100644 --- a/src/utils/__tests__/findEntrypoints.test.ts +++ b/src/core/build/__tests__/findEntrypoints.test.ts @@ -1,4 +1,4 @@ -import { describe, it, expect, beforeEach, vi } from 'vitest'; +import { describe, it, expect, vi } from 'vitest'; import { BackgroundEntrypoint, ContentScriptEntrypoint, @@ -9,10 +9,10 @@ import { import { resolve } from 'path'; import { FindEntrypointsConfig, findEntrypoints } from '../findEntrypoints'; import fs from 'fs-extra'; -import { importTsFile } from '../importTsFile'; +import { importTsFile } from '../../utils/importTsFile'; import glob from 'fast-glob'; -vi.mock('../importTsFile'); +vi.mock('../../utils/importTsFile'); const importTsFileMock = vi.mocked(importTsFile); vi.mock('fast-glob'); diff --git a/src/utils/buildEntrypoints.ts b/src/core/build/buildEntrypoints.ts similarity index 95% rename from src/utils/buildEntrypoints.ts rename to src/core/build/buildEntrypoints.ts index 3a4a1636..08871e42 100644 --- a/src/utils/buildEntrypoints.ts +++ b/src/core/build/buildEntrypoints.ts @@ -1,9 +1,9 @@ import * as vite from 'vite'; import { BuildOutput, Entrypoint, InternalConfig } from '../types'; -import { groupEntrypoints } from './groupEntrypoints'; +import { groupEntrypoints } from '../utils/groupEntrypoints'; import * as plugins from '../vite-plugins'; -import { removeEmptyDirs } from './removeEmptyDirs'; -import { getEntrypointBundlePath } from './entrypoints'; +import { removeEmptyDirs } from '../utils/removeEmptyDirs'; +import { getEntrypointBundlePath } from '../utils/entrypoints'; import glob from 'fast-glob'; import fs from 'fs-extra'; import { dirname, resolve } from 'path'; diff --git a/src/utils/findEntrypoints.ts b/src/core/build/findEntrypoints.ts similarity index 98% rename from src/utils/findEntrypoints.ts rename to src/core/build/findEntrypoints.ts index 42692292..c1b53259 100644 --- a/src/utils/findEntrypoints.ts +++ b/src/core/build/findEntrypoints.ts @@ -13,9 +13,9 @@ import fs from 'fs-extra'; import picomatch from 'picomatch'; import { parseHTML } from 'linkedom'; import JSON5 from 'json5'; -import { importTsFile } from './importTsFile'; +import { importTsFile } from '../utils/importTsFile'; import glob from 'fast-glob'; -import { getEntrypointName } from './entrypoints'; +import { getEntrypointName } from '../utils/entrypoints'; /** * Return entrypoints and their configuration by looking through the diff --git a/src/utils/generateTypesDir.ts b/src/core/build/generateTypesDir.ts similarity index 95% rename from src/utils/generateTypesDir.ts rename to src/core/build/generateTypesDir.ts index ce30151f..5e82d077 100644 --- a/src/utils/generateTypesDir.ts +++ b/src/core/build/generateTypesDir.ts @@ -2,9 +2,9 @@ import { createUnimport } from 'unimport'; import { Entrypoint, InternalConfig } from '../types'; import fs from 'fs-extra'; import { relative, resolve } from 'path'; -import { getEntrypointBundlePath } from './entrypoints'; -import { getUnimportOptions } from './auto-imports'; -import { getGlobals } from './globals'; +import { getEntrypointBundlePath } from '../utils/entrypoints'; +import { getUnimportOptions } from '../utils/auto-imports'; +import { getGlobals } from '../utils/globals'; /** * Generate and write all the files inside the `InternalConfig.typesDir` directory. diff --git a/src/utils/printBuildSummary.ts b/src/core/log/printBuildSummary.ts similarity index 100% rename from src/utils/printBuildSummary.ts rename to src/core/log/printBuildSummary.ts diff --git a/src/cli/utils/printHeader.ts b/src/core/log/printHeader.ts similarity index 100% rename from src/cli/utils/printHeader.ts rename to src/core/log/printHeader.ts diff --git a/src/utils/printTable.ts b/src/core/log/printTable.ts similarity index 100% rename from src/utils/printTable.ts rename to src/core/log/printTable.ts diff --git a/src/runners/ExtensionRunner.ts b/src/core/runners/ExtensionRunner.ts similarity index 100% rename from src/runners/ExtensionRunner.ts rename to src/core/runners/ExtensionRunner.ts diff --git a/src/runners/createWebExtRunner.ts b/src/core/runners/createWebExtRunner.ts similarity index 100% rename from src/runners/createWebExtRunner.ts rename to src/core/runners/createWebExtRunner.ts diff --git a/src/types/external.ts b/src/core/types/external.ts similarity index 100% rename from src/types/external.ts rename to src/core/types/external.ts diff --git a/src/types/index.ts b/src/core/types/index.ts similarity index 100% rename from src/types/index.ts rename to src/core/types/index.ts diff --git a/src/types/internal.ts b/src/core/types/internal.ts similarity index 100% rename from src/types/internal.ts rename to src/core/types/internal.ts diff --git a/src/utils/ContentSecurityPolicy.ts b/src/core/utils/ContentSecurityPolicy.ts similarity index 100% rename from src/utils/ContentSecurityPolicy.ts rename to src/core/utils/ContentSecurityPolicy.ts diff --git a/src/utils/__tests__/ContentSecurityPolicy.test.ts b/src/core/utils/__tests__/ContentSecurityPolicy.test.ts similarity index 100% rename from src/utils/__tests__/ContentSecurityPolicy.test.ts rename to src/core/utils/__tests__/ContentSecurityPolicy.test.ts diff --git a/src/utils/__tests__/entrypoints.test.ts b/src/core/utils/__tests__/entrypoints.test.ts similarity index 100% rename from src/utils/__tests__/entrypoints.test.ts rename to src/core/utils/__tests__/entrypoints.test.ts diff --git a/src/utils/__tests__/groupEntrypoints.test.ts b/src/core/utils/__tests__/groupEntrypoints.test.ts similarity index 100% rename from src/utils/__tests__/groupEntrypoints.test.ts rename to src/core/utils/__tests__/groupEntrypoints.test.ts diff --git a/src/utils/auto-imports.ts b/src/core/utils/auto-imports.ts similarity index 100% rename from src/utils/auto-imports.ts rename to src/core/utils/auto-imports.ts diff --git a/src/utils/createFsCache.ts b/src/core/utils/createFsCache.ts similarity index 100% rename from src/utils/createFsCache.ts rename to src/core/utils/createFsCache.ts diff --git a/src/utils/defineConfig.ts b/src/core/utils/defineConfig.ts similarity index 100% rename from src/utils/defineConfig.ts rename to src/core/utils/defineConfig.ts diff --git a/src/utils/defineRunnerConfig.ts b/src/core/utils/defineRunnerConfig.ts similarity index 100% rename from src/utils/defineRunnerConfig.ts rename to src/core/utils/defineRunnerConfig.ts diff --git a/src/utils/entrypoints.ts b/src/core/utils/entrypoints.ts similarity index 100% rename from src/utils/entrypoints.ts rename to src/core/utils/entrypoints.ts diff --git a/src/utils/findOpenPort.ts b/src/core/utils/findOpenPort.ts similarity index 100% rename from src/utils/findOpenPort.ts rename to src/core/utils/findOpenPort.ts diff --git a/src/utils/formatDuration.ts b/src/core/utils/formatDuration.ts similarity index 100% rename from src/utils/formatDuration.ts rename to src/core/utils/formatDuration.ts diff --git a/src/utils/getInternalConfig.ts b/src/core/utils/getInternalConfig.ts similarity index 100% rename from src/utils/getInternalConfig.ts rename to src/core/utils/getInternalConfig.ts diff --git a/src/utils/globals.ts b/src/core/utils/globals.ts similarity index 100% rename from src/utils/globals.ts rename to src/core/utils/globals.ts diff --git a/src/utils/groupEntrypoints.ts b/src/core/utils/groupEntrypoints.ts similarity index 97% rename from src/utils/groupEntrypoints.ts rename to src/core/utils/groupEntrypoints.ts index 7932168a..dc1592e0 100644 --- a/src/utils/groupEntrypoints.ts +++ b/src/core/utils/groupEntrypoints.ts @@ -1,4 +1,4 @@ -import { Entrypoint } from '..'; +import { Entrypoint } from '../..'; import { EntrypointGroup } from '../types'; /** diff --git a/src/utils/importTsFile.ts b/src/core/utils/importTsFile.ts similarity index 100% rename from src/utils/importTsFile.ts rename to src/core/utils/importTsFile.ts diff --git a/src/utils/manifest.ts b/src/core/utils/manifest.ts similarity index 99% rename from src/utils/manifest.ts rename to src/core/utils/manifest.ts index cb1680e6..a01fe032 100644 --- a/src/utils/manifest.ts +++ b/src/core/utils/manifest.ts @@ -1,4 +1,4 @@ -import { Entrypoint } from '..'; +import { Entrypoint } from '../..'; import { Manifest } from 'webextension-polyfill'; import { BackgroundEntrypoint, diff --git a/src/utils/network.ts b/src/core/utils/network.ts similarity index 100% rename from src/utils/network.ts rename to src/core/utils/network.ts diff --git a/src/utils/promises.ts b/src/core/utils/promises.ts similarity index 100% rename from src/utils/promises.ts rename to src/core/utils/promises.ts diff --git a/src/utils/removeEmptyDirs.ts b/src/core/utils/removeEmptyDirs.ts similarity index 100% rename from src/utils/removeEmptyDirs.ts rename to src/core/utils/removeEmptyDirs.ts diff --git a/src/vite-plugins/devHtmlPrerender.ts b/src/core/vite-plugins/devHtmlPrerender.ts similarity index 100% rename from src/vite-plugins/devHtmlPrerender.ts rename to src/core/vite-plugins/devHtmlPrerender.ts diff --git a/src/vite-plugins/download.ts b/src/core/vite-plugins/download.ts similarity index 100% rename from src/vite-plugins/download.ts rename to src/core/vite-plugins/download.ts diff --git a/src/vite-plugins/index.ts b/src/core/vite-plugins/index.ts similarity index 100% rename from src/vite-plugins/index.ts rename to src/core/vite-plugins/index.ts diff --git a/src/vite-plugins/multipageMove.ts b/src/core/vite-plugins/multipageMove.ts similarity index 100% rename from src/vite-plugins/multipageMove.ts rename to src/core/vite-plugins/multipageMove.ts diff --git a/src/vite-plugins/unimport.ts b/src/core/vite-plugins/unimport.ts similarity index 100% rename from src/vite-plugins/unimport.ts rename to src/core/vite-plugins/unimport.ts diff --git a/src/vite-plugins/virtualEntrypoint.ts b/src/core/vite-plugins/virtualEntrypoint.ts similarity index 100% rename from src/vite-plugins/virtualEntrypoint.ts rename to src/core/vite-plugins/virtualEntrypoint.ts diff --git a/src/index.ts b/src/index.ts index 3b9f4d97..ba0926d3 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,24 +3,24 @@ import { WxtDevServer, InlineConfig, InternalConfig, -} from './types'; -import { getInternalConfig } from './utils/getInternalConfig'; -import { findEntrypoints } from './utils/findEntrypoints'; -import { buildEntrypoints } from './utils/buildEntrypoints'; -import { generateMainfest, writeManifest } from './utils/manifest'; -import { printBuildSummary } from './utils/printBuildSummary'; +} from './core/types'; +import { getInternalConfig } from './core/utils/getInternalConfig'; +import { findEntrypoints } from './core/build/findEntrypoints'; +import { buildEntrypoints } from './core/build/buildEntrypoints'; +import { generateMainfest, writeManifest } from './core/utils/manifest'; +import { printBuildSummary } from './core/log/printBuildSummary'; import fs from 'fs-extra'; -import { generateTypesDir } from './utils/generateTypesDir'; +import { generateTypesDir } from './core/build/generateTypesDir'; import pc from 'picocolors'; import * as vite from 'vite'; -import { findOpenPort } from './utils/findOpenPort'; -import { formatDuration } from './utils/formatDuration'; -import { createWebExtRunner } from './runners/createWebExtRunner'; +import { findOpenPort } from './core/utils/findOpenPort'; +import { formatDuration } from './core/utils/formatDuration'; +import { createWebExtRunner } from './core/runners/createWebExtRunner'; export { version } from '../package.json'; -export * from './types/external'; -export * from './utils/defineConfig'; -export * from './utils/defineRunnerConfig'; +export * from './core/types/external'; +export * from './core/utils/defineConfig'; +export * from './core/utils/defineRunnerConfig'; /** * Bundles the extension for production. Returns a promise of the build result. diff --git a/src/utils/trimExtension.ts b/src/utils/trimExtension.ts deleted file mode 100644 index a627d867..00000000 --- a/src/utils/trimExtension.ts +++ /dev/null @@ -1,10 +0,0 @@ -import path from 'node:path'; - -export function trimExtension(filename: string): string; -export function trimExtension(filename: undefined): undefined; -export function trimExtension(filename: string | undefined): string | undefined; -export function trimExtension( - filename: string | undefined, -): string | undefined { - return filename?.replace(path.extname(filename), ''); -} diff --git a/tsconfig.json b/tsconfig.json index ece36bcc..adc39498 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,4 +1,4 @@ { "extends": "./tsconfig.base.json", - "exclude": ["dist", "demo"] + "exclude": ["dist", "demo", "e2e/project"] }