From 5cfe1986db445456ffb022525abf2c76e3f09c5e Mon Sep 17 00:00:00 2001 From: Nestor Vera Date: Tue, 10 Nov 2026 13:14:10 +0100 Subject: [PATCH 1/2] feat(nuxt): add option to disable module --- packages/nuxt/src/module.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/packages/nuxt/src/module.ts b/packages/nuxt/src/module.ts index 79ba2179..53151bbe 100644 --- a/packages/nuxt/src/module.ts +++ b/packages/nuxt/src/module.ts @@ -8,7 +8,13 @@ import { defu } from 'defu' import { compodium } from '@compodium/core' import type { PluginOptions } from '@compodium/core' -export type ModuleOptions = Omit +export type ModuleOptions = Omit & { + /** + * Enable the module + * @default true + */ + enabled: boolean +} export default defineNuxtModule({ meta: { @@ -16,11 +22,14 @@ export default defineNuxtModule({ configKey: 'compodium' }, defaults: { + enabled: true, dir: 'compodium/', includeLibraryCollections: true }, async setup(options, nuxt) { + if (!options.enabled) return + const { resolve, resolvePath: resolveModulePath } = createResolver(import.meta.url) const coreTypesEntry = await resolveModulePath('@compodium/core') From 26f351ff81360dba02b5962d2dea77163b8f795f Mon Sep 17 00:00:00 2001 From: Nestor Vera Date: Tue, 10 Nov 2026 13:42:24 +0100 Subject: [PATCH 2/2] test(nuxt): test module can be disabled --- .nuxtrc | 2 +- packages/nuxt/test/disabled.nuxt.test.ts | 31 +++++++++++++++++++ .../nuxt/test/fixtures/disabled/app/app.vue | 3 ++ .../test/fixtures/disabled/nuxt.config.ts | 6 ++++ .../nuxt/test/fixtures/disabled/package.json | 5 +++ 5 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 packages/nuxt/test/disabled.nuxt.test.ts create mode 100644 packages/nuxt/test/fixtures/disabled/app/app.vue create mode 100644 packages/nuxt/test/fixtures/disabled/nuxt.config.ts create mode 100644 packages/nuxt/test/fixtures/disabled/package.json diff --git a/.nuxtrc b/.nuxtrc index 0e6b68e6..10662a65 100644 --- a/.nuxtrc +++ b/.nuxtrc @@ -1 +1 @@ -setups.@nuxt/test-utils="4.1.0" \ No newline at end of file +setups.@nuxt/test-utils="4.2.0" \ No newline at end of file diff --git a/packages/nuxt/test/disabled.nuxt.test.ts b/packages/nuxt/test/disabled.nuxt.test.ts new file mode 100644 index 00000000..bebfe7db --- /dev/null +++ b/packages/nuxt/test/disabled.nuxt.test.ts @@ -0,0 +1,31 @@ +import { dirname } from 'pathe' +import { describe, it, expect } from 'vitest' +import { setup, $fetch, fetch, url } from '@nuxt/test-utils/e2e' +import { fileURLToPath } from 'node:url' +import { joinURL } from 'ufo' + +describe('disabled module', async () => { + const rootDir = fileURLToPath(joinURL(dirname(import.meta.url), './fixtures/disabled')) + + await setup({ + rootDir, + dev: true, + setupTimeout: 30000 + }) + + it('renders the app', async () => { + const html = await $fetch('/') + expect(html).toContain('
disabled
') + }) + + it('does not mount the renderer', async () => { + const response = await fetch(url('/__compodium__/renderer')) + expect(await response.text()).not.toContain('compodium-default-preview') + }) + + it('does not install the API', async () => { + const response = await fetch(url('/__compodium__/api/collections')) + expect(response.headers.get('content-type')).toContain('text/html') + expect(await response.text()).not.toContain('pascalName') + }) +}) diff --git a/packages/nuxt/test/fixtures/disabled/app/app.vue b/packages/nuxt/test/fixtures/disabled/app/app.vue new file mode 100644 index 00000000..3280b0bb --- /dev/null +++ b/packages/nuxt/test/fixtures/disabled/app/app.vue @@ -0,0 +1,3 @@ + diff --git a/packages/nuxt/test/fixtures/disabled/nuxt.config.ts b/packages/nuxt/test/fixtures/disabled/nuxt.config.ts new file mode 100644 index 00000000..ea62a6d8 --- /dev/null +++ b/packages/nuxt/test/fixtures/disabled/nuxt.config.ts @@ -0,0 +1,6 @@ +export default defineNuxtConfig({ + modules: ['../../../src/module'], + compodium: { + enabled: false + } +}) diff --git a/packages/nuxt/test/fixtures/disabled/package.json b/packages/nuxt/test/fixtures/disabled/package.json new file mode 100644 index 00000000..a14835bf --- /dev/null +++ b/packages/nuxt/test/fixtures/disabled/package.json @@ -0,0 +1,5 @@ +{ + "private": true, + "name": "disabled", + "type": "module" +}