nuxt-site-config 1.2.3 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/module.d.mts CHANGED
@@ -9,7 +9,7 @@ interface ModuleOptions extends SiteConfigInput {
9
9
  */
10
10
  debug: boolean;
11
11
  }
12
- interface ModulePublicRuntimeConfig {
12
+ interface ModuleRuntimeConfig {
13
13
  site: SiteConfigInput;
14
14
  }
15
15
  interface ModuleHooks {
@@ -17,4 +17,4 @@ interface ModuleHooks {
17
17
  }
18
18
  declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
19
19
 
20
- export { type ModuleHooks, type ModuleOptions, type ModulePublicRuntimeConfig, _default as default };
20
+ export { type ModuleHooks, type ModuleOptions, type ModuleRuntimeConfig, _default as default };
package/dist/module.d.ts CHANGED
@@ -9,7 +9,7 @@ interface ModuleOptions extends SiteConfigInput {
9
9
  */
10
10
  debug: boolean;
11
11
  }
12
- interface ModulePublicRuntimeConfig {
12
+ interface ModuleRuntimeConfig {
13
13
  site: SiteConfigInput;
14
14
  }
15
15
  interface ModuleHooks {
@@ -17,4 +17,4 @@ interface ModuleHooks {
17
17
  }
18
18
  declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
19
19
 
20
- export { type ModuleHooks, type ModuleOptions, type ModulePublicRuntimeConfig, _default as default };
20
+ export { type ModuleHooks, type ModuleOptions, type ModuleRuntimeConfig, _default as default };
package/dist/module.json CHANGED
@@ -5,5 +5,5 @@
5
5
  "bridge": false
6
6
  },
7
7
  "configKey": "site",
8
- "version": "1.2.3"
8
+ "version": "1.4.0"
9
9
  }
package/dist/module.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import { useNuxt, createResolver, addTemplate, defineNuxtModule, useLogger, addImports, addComponent, addPlugin, hasNuxtModule, addServerHandler, addPrerenderRoutes } from '@nuxt/kit';
2
- import { initSiteConfig, updateSiteConfig, useSiteConfig } from 'nuxt-site-config-kit';
2
+ import { initSiteConfig, updateSiteConfig, getSiteConfigStack } from 'nuxt-site-config-kit';
3
3
  import { relative } from 'pathe';
4
4
 
5
- const version = "1.2.3";
5
+ const version = "1.4.0";
6
6
 
7
7
  function extendTypes(module, template) {
8
8
  const nuxt = useNuxt();
@@ -42,18 +42,20 @@ const module = defineNuxtModule({
42
42
  logger.level = config.debug ? 4 : 3;
43
43
  const { resolve } = createResolver(import.meta.url);
44
44
  await initSiteConfig();
45
+ const siteConfigInput = { ...config };
46
+ delete siteConfigInput.debug;
45
47
  await updateSiteConfig({
46
48
  // we should allow environment variables to override the site config
47
49
  _priority: -3,
48
50
  _context: "nuxt-site-config:config",
49
- ...config
51
+ ...siteConfigInput
50
52
  });
51
53
  nuxt.hook("modules:done", async () => {
52
54
  await nuxt.callHook("site-config:resolve");
53
- nuxt.options.runtimeConfig.public["nuxt-site-config"] = {
54
- // @ts-expect-error untyped
55
- siteConfig: useSiteConfig(),
56
- version
55
+ nuxt.options.runtimeConfig["nuxt-site-config"] = {
56
+ stack: getSiteConfigStack().stack,
57
+ version,
58
+ debug: config.debug
57
59
  };
58
60
  });
59
61
  extendTypes("nuxt-site-config", async ({ typesPath }) => {
@@ -159,6 +161,13 @@ declare module '@nuxt/schema' {
159
161
  addPlugin({
160
162
  src: resolve("./runtime/plugins/i18n")
161
163
  });
164
+ updateSiteConfig({
165
+ _context: "@nuxtjs/i18n",
166
+ // @ts-expect-error untyped
167
+ url: nuxt.options.i18n?.baseUrl,
168
+ // @ts-expect-error untyped
169
+ defaultLocale: nuxt.options.i18n?.defaultLocale
170
+ });
162
171
  }
163
172
  addServerHandler({
164
173
  middleware: true,
@@ -5,6 +5,6 @@ export function updateSiteConfig(input = {}) {
5
5
  stack2.push(input);
6
6
  return;
7
7
  }
8
- const stack = useNuxtApp().$siteConfig;
8
+ const stack = useNuxtApp().$nuxtSiteConfig;
9
9
  stack.push(input);
10
10
  }
@@ -1,4 +1,4 @@
1
1
  import type { NuxtSiteConfig } from '../types';
2
2
  export declare function useSiteConfig(options?: {
3
- withContext?: boolean;
3
+ debug?: boolean;
4
4
  }): NuxtSiteConfig;
@@ -8,8 +8,8 @@ export function useSiteConfig(options) {
8
8
  if (process.server)
9
9
  stack = useRequestEvent().context.siteConfig.get();
10
10
  else
11
- stack = useNuxtApp().$siteConfig.get();
12
- if (!options?.withContext)
11
+ stack = useNuxtApp().$nuxtSiteConfig.get();
12
+ if (!options?.debug)
13
13
  delete stack._context;
14
14
  Object.entries(stack).forEach(([k, v]) => {
15
15
  stack[k] = toValue(v);
@@ -1,26 +1,35 @@
1
- import { defineEventHandler, updateSiteConfig, useAppConfig, useNitroOrigin, useRuntimeConfig } from "#imports";
1
+ import { createSiteConfigStack } from "site-config-stack";
2
+ import { defineEventHandler, useAppConfig, useNitroOrigin, useRuntimeConfig } from "#imports";
2
3
  export default defineEventHandler((e) => {
3
- if (!e.context.siteConfig) {
4
+ const config = useRuntimeConfig()["nuxt-site-config"];
5
+ const siteConfig = e.context.siteConfig || createSiteConfigStack({
6
+ // @ts-expect-error untyped
7
+ debug: config.debug
8
+ });
9
+ if (siteConfig) {
4
10
  const appConfig = useAppConfig();
5
11
  const nitroOrigin = useNitroOrigin(e);
6
12
  e.context.siteConfigNitroOrigin = nitroOrigin;
7
- const { public: publicRuntimeConfig } = useRuntimeConfig();
8
- updateSiteConfig(e, {
13
+ siteConfig.push({
9
14
  _context: "nitro:init",
15
+ _priority: -4,
10
16
  url: nitroOrigin
11
17
  });
12
- updateSiteConfig(e, publicRuntimeConfig["nuxt-site-config"]?.siteConfig);
18
+ const buildStack = config.stack || [];
19
+ buildStack.forEach((c) => siteConfig.push(c));
13
20
  if (appConfig.site) {
14
- updateSiteConfig(e, {
21
+ siteConfig.push({
22
+ _priority: -2,
15
23
  _context: "app:config",
16
24
  ...appConfig.site
17
25
  });
18
26
  }
19
27
  if (e.context._nitro.routeRules.site) {
20
- updateSiteConfig(e, {
28
+ siteConfig.push({
21
29
  _context: "route-rules",
22
30
  ...e.context._nitro.routeRules.site
23
31
  });
24
32
  }
25
33
  }
34
+ e.context.siteConfig = siteConfig;
26
35
  });
@@ -4,9 +4,11 @@ export default defineEventHandler(async (e) => {
4
4
  const siteConfig = useSiteConfig(e);
5
5
  const nitroOrigin = useNitroOrigin(e);
6
6
  const { public: publicRuntimeConfig } = useRuntimeConfig();
7
+ const stack = e.context.siteConfig.stack;
7
8
  setHeader(e, "Content-Type", "application/json");
8
9
  return {
9
- ...siteConfig,
10
+ config: siteConfig,
11
+ stack,
10
12
  nitroOrigin,
11
13
  version: publicRuntimeConfig["nuxt-site-config"]?.version
12
14
  };
@@ -1,9 +1,10 @@
1
1
  import { createSiteConfigStack } from "site-config-stack";
2
- import { defineNuxtPlugin, useRequestEvent, useState } from "#imports";
2
+ import { defineNuxtPlugin, useRequestEvent, useRuntimeConfig, useState } from "#imports";
3
3
  export default defineNuxtPlugin({
4
4
  name: "nuxt-site-config",
5
5
  enforce: "pre",
6
6
  async setup(nuxtApp) {
7
+ const config = useRuntimeConfig()["nuxt-site-config"] || { debug: false };
7
8
  let siteConfigStack;
8
9
  if (process.server) {
9
10
  siteConfigStack = useRequestEvent().context.siteConfig;
@@ -11,8 +12,11 @@ export default defineNuxtPlugin({
11
12
  useState("site-config", () => useRequestEvent().context.siteConfig.get());
12
13
  });
13
14
  }
14
- if (!siteConfigStack)
15
- siteConfigStack = createSiteConfigStack();
15
+ if (!siteConfigStack) {
16
+ siteConfigStack = createSiteConfigStack({
17
+ debug: config.debug
18
+ });
19
+ }
16
20
  if (process.client) {
17
21
  siteConfigStack.push({
18
22
  _context: "window",
@@ -24,7 +28,7 @@ export default defineNuxtPlugin({
24
28
  }
25
29
  return {
26
30
  provide: {
27
- siteConfig: siteConfigStack
31
+ nuxtSiteConfig: siteConfigStack
28
32
  }
29
33
  };
30
34
  }
@@ -1,14 +1,19 @@
1
- import { defineNuxtPlugin, ref, updateSiteConfig, useSiteConfig } from "#imports";
1
+ import { computed, defineNuxtPlugin, updateSiteConfig } from "#imports";
2
2
  export default defineNuxtPlugin({
3
3
  name: "nuxt-site-config:i18n",
4
4
  // @ts-expect-error todo fix upstream
5
5
  enforce: 1,
6
6
  // needs to come after i18n
7
7
  setup(nuxtApp) {
8
- const i18n = nuxtApp.$i18n || { locale: ref(useSiteConfig().defaultLocale) };
8
+ const i18n = nuxtApp.$i18n;
9
+ if (!i18n)
10
+ return;
9
11
  updateSiteConfig({
10
12
  _context: "@nuxtjs/i18n",
11
- currentLocale: i18n.locale
13
+ url: i18n.baseUrl.value,
14
+ currentLocale: i18n.locale,
15
+ description: computed(() => i18n.t("nuxtSiteConfig.description")),
16
+ name: computed(() => i18n.t("nuxtSiteConfig.name"))
12
17
  });
13
18
  }
14
19
  });
package/dist/types.d.mts CHANGED
@@ -1,19 +1,19 @@
1
1
 
2
- import { ModuleOptions, ModuleHooks, ModulePublicRuntimeConfig } from './module'
2
+ import { ModuleOptions, ModuleHooks, ModuleRuntimeConfig } from './module'
3
3
 
4
4
  declare module '@nuxt/schema' {
5
5
  interface NuxtConfig { ['site']?: Partial<ModuleOptions> }
6
6
  interface NuxtOptions { ['site']?: ModuleOptions }
7
7
  interface NuxtHooks extends ModuleHooks {}
8
- interface PublicRuntimeConfig extends ModulePublicRuntimeConfig {}
8
+ interface RuntimeConfig extends ModuleRuntimeConfig {}
9
9
  }
10
10
 
11
11
  declare module 'nuxt/schema' {
12
12
  interface NuxtConfig { ['site']?: Partial<ModuleOptions> }
13
13
  interface NuxtOptions { ['site']?: ModuleOptions }
14
14
  interface NuxtHooks extends ModuleHooks {}
15
- interface PublicRuntimeConfig extends ModulePublicRuntimeConfig {}
15
+ interface RuntimeConfig extends ModuleRuntimeConfig {}
16
16
  }
17
17
 
18
18
 
19
- export { ModuleHooks, ModuleOptions, ModulePublicRuntimeConfig, default } from './module'
19
+ export { ModuleHooks, ModuleOptions, ModuleRuntimeConfig, default } from './module'
package/dist/types.d.ts CHANGED
@@ -1,19 +1,19 @@
1
1
 
2
- import { ModuleOptions, ModuleHooks, ModulePublicRuntimeConfig } from './module'
2
+ import { ModuleOptions, ModuleHooks, ModuleRuntimeConfig } from './module'
3
3
 
4
4
  declare module '@nuxt/schema' {
5
5
  interface NuxtConfig { ['site']?: Partial<ModuleOptions> }
6
6
  interface NuxtOptions { ['site']?: ModuleOptions }
7
7
  interface NuxtHooks extends ModuleHooks {}
8
- interface PublicRuntimeConfig extends ModulePublicRuntimeConfig {}
8
+ interface RuntimeConfig extends ModuleRuntimeConfig {}
9
9
  }
10
10
 
11
11
  declare module 'nuxt/schema' {
12
12
  interface NuxtConfig { ['site']?: Partial<ModuleOptions> }
13
13
  interface NuxtOptions { ['site']?: ModuleOptions }
14
14
  interface NuxtHooks extends ModuleHooks {}
15
- interface PublicRuntimeConfig extends ModulePublicRuntimeConfig {}
15
+ interface RuntimeConfig extends ModuleRuntimeConfig {}
16
16
  }
17
17
 
18
18
 
19
- export { ModuleHooks, ModuleOptions, ModulePublicRuntimeConfig, default } from './module'
19
+ export { ModuleHooks, ModuleOptions, ModuleRuntimeConfig, default } from './module'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-site-config",
3
3
  "type": "module",
4
- "version": "1.2.3",
4
+ "version": "1.4.0",
5
5
  "description": "Shared site configuration for Nuxt 3 modules.",
6
6
  "license": "MIT",
7
7
  "funding": "https://github.com/sponsors/harlan-zw",
@@ -26,12 +26,12 @@
26
26
  "dist"
27
27
  ],
28
28
  "dependencies": {
29
- "@nuxt/kit": "^3.7.3",
30
- "@nuxt/schema": "^3.7.3",
29
+ "@nuxt/kit": "^3.7.4",
30
+ "@nuxt/schema": "^3.7.4",
31
31
  "pathe": "^1.1.1",
32
- "ufo": "^1.3.0",
33
- "nuxt-site-config-kit": "1.2.3",
34
- "site-config-stack": "1.2.3"
32
+ "ufo": "^1.3.1",
33
+ "nuxt-site-config-kit": "1.4.0",
34
+ "site-config-stack": "1.4.0"
35
35
  },
36
36
  "build": {
37
37
  "externals": [