nuxt-site-config 0.8.17 → 1.0.2

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.ts CHANGED
@@ -1,40 +1,16 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import { SiteConfigStack, SiteConfigInput, AssertionModes, ModuleAssertion, SiteConfig } from 'nuxt-site-config-kit';
2
+ import { SiteConfigInput, SiteConfig } from 'nuxt-site-config-kit';
3
3
 
4
+ declare const processShim: NodeJS.Process;
5
+ declare const envShim: NodeJS.ProcessEnv;
4
6
  interface ModuleOptions extends SiteConfigInput {
5
7
  }
6
8
  interface ModulePublicRuntimeConfig {
7
9
  site: SiteConfigInput;
8
10
  }
9
- declare module 'h3' {
10
- interface H3EventContext {
11
- siteConfig: SiteConfigStack;
12
- }
13
- }
14
- declare module 'nuxt/schema' {
15
- interface AppConfigInput {
16
- /** Theme configuration */
17
- site?: SiteConfigInput;
18
- }
19
- }
20
- declare module '@nuxt/schema' {
21
- interface AppConfigInput {
22
- /** Theme configuration */
23
- site?: SiteConfigInput;
24
- }
25
- interface Nuxt {
26
- _siteConfig?: SiteConfigStack;
27
- _siteConfigAsserts?: Partial<Record<Partial<AssertionModes>, ModuleAssertion[]>>;
28
- }
29
- }
30
- declare module '@nuxt/schema' {
31
- interface RuntimeNuxtHooks {
32
- 'site-config:resolve': (siteConfig: SiteConfig) => void;
33
- }
34
- }
35
11
  interface ModuleHooks {
36
12
  'site-config:resolve': (siteConfig: SiteConfig) => void;
37
13
  }
38
14
  declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
39
15
 
40
- export { ModuleHooks, ModuleOptions, ModulePublicRuntimeConfig, _default as default };
16
+ export { ModuleHooks, ModuleOptions, ModulePublicRuntimeConfig, _default as default, envShim, processShim };
package/dist/module.json CHANGED
@@ -5,5 +5,5 @@
5
5
  "bridge": false
6
6
  },
7
7
  "configKey": "site",
8
- "version": "0.8.17"
8
+ "version": "1.0.2"
9
9
  }
package/dist/module.mjs CHANGED
@@ -1,6 +1,26 @@
1
- import { defineNuxtModule, createResolver, addImports, addComponent, addPlugin, addServerHandler } from '@nuxt/kit';
2
- import { initSiteConfig, updateSiteConfig, useSiteConfig, assertSiteConfig } from 'nuxt-site-config-kit';
1
+ import { useNuxt, addTemplate, defineNuxtModule, createResolver, addImports, addComponent, addPlugin, addServerHandler } from '@nuxt/kit';
2
+ import { initSiteConfig, updateSiteConfig, useSiteConfig } from 'nuxt-site-config-kit';
3
+ import { resolve } from 'pathe';
3
4
 
5
+ function extendTypes(module, template) {
6
+ const nuxt = useNuxt();
7
+ addTemplate({
8
+ filename: `module/${module}.d.ts`,
9
+ getContents: async () => {
10
+ const s = await template();
11
+ return `// Generated by ${module}
12
+ ${s}
13
+ export {}
14
+ `;
15
+ }
16
+ });
17
+ nuxt.hooks.hook("prepare:types", ({ references }) => {
18
+ references.push({ path: resolve(nuxt.options.buildDir, `module/${module}.d.ts`) });
19
+ });
20
+ }
21
+
22
+ const processShim = typeof process !== "undefined" ? process : {};
23
+ const envShim = processShim.env || {};
4
24
  const module = defineNuxtModule({
5
25
  meta: {
6
26
  name: "nuxt-site-config",
@@ -18,10 +38,75 @@ const module = defineNuxtModule({
18
38
  _context: "nuxt:config:site",
19
39
  ...config
20
40
  });
21
- const siteConfig = await useSiteConfig();
22
- await nuxt.callHook("site-config:resolve", siteConfig);
41
+ const runtimeConfig = nuxt.options.runtimeConfig;
42
+ function getRuntimeConfig(config2) {
43
+ const env = config2.toUpperCase();
44
+ if (envShim[`NUXT_SITE_${env}}`])
45
+ return envShim[`NUXT_SITE_${env}}`];
46
+ if (envShim[`NUXT_PUBLIC_SITE_${env}}`])
47
+ return envShim[`NUXT_PUBLIC_SITE_${env}}`];
48
+ return runtimeConfig[`site${config2}`] || runtimeConfig.public?.[`site${config2}`];
49
+ }
50
+ updateSiteConfig({
51
+ _context: "fallbackRuntimeConfigAndEnv",
52
+ url: getRuntimeConfig("Url"),
53
+ name: getRuntimeConfig("Name"),
54
+ description: getRuntimeConfig("Description"),
55
+ logo: getRuntimeConfig("Image"),
56
+ defaultLocale: getRuntimeConfig("Language"),
57
+ indexable: getRuntimeConfig("Indexable")
58
+ });
59
+ updateSiteConfig({
60
+ _context: "runtimeConfig",
61
+ ...nuxt?.options.runtimeConfig.public.site || {}
62
+ });
63
+ const siteConfig = useSiteConfig();
64
+ await nuxt.callHook("`site-config:resolve`", siteConfig);
23
65
  nuxt.options.runtimeConfig.public.site = siteConfig;
24
66
  });
67
+ extendTypes("nuxt-site-config", async () => {
68
+ return `
69
+ import type { SiteConfig, SiteConfigInput, SiteConfigStack } from '${resolve("./runtime/types")}'
70
+
71
+ declare module 'nitropack' {
72
+ interface NitroRouteRules {
73
+ site: SiteConfigInput
74
+ }
75
+ interface NitroRouteConfig {
76
+ site: SiteConfig
77
+ }
78
+ }
79
+
80
+ declare module 'h3' {
81
+ interface H3EventContext {
82
+ siteConfig: SiteConfigStack
83
+ }
84
+ }
85
+
86
+ declare module 'nuxt/schema' {
87
+ interface AppConfigInput {
88
+ /** Theme configuration */
89
+ site?: SiteConfigInput
90
+ }
91
+ }
92
+
93
+ declare module '@nuxt/schema' {
94
+ interface AppConfigInput {
95
+ /** Theme configuration */
96
+ site?: SiteConfigInput
97
+ }
98
+ interface Nuxt {
99
+ _siteConfig?: SiteConfigStack
100
+ }
101
+ }
102
+
103
+ declare module '@nuxt/schema' {
104
+ export interface RuntimeNuxtHooks {
105
+ 'site-config:resolve': (siteConfig: SiteConfig) => void
106
+ }
107
+ }
108
+ `;
109
+ });
25
110
  const composables = ["useSiteConfig", "updateSiteConfig", "useNitroOrigin"];
26
111
  composables.forEach((c) => {
27
112
  addImports({
@@ -36,15 +121,12 @@ const module = defineNuxtModule({
36
121
  name: c
37
122
  });
38
123
  });
39
- nuxt.hooks.hook("nitro:init", async (nitro) => {
40
- nitro.hooks.hookOnce("prerender:generate", async () => {
41
- await assertSiteConfig("prerender");
42
- });
43
- });
44
124
  await addComponent({
45
125
  filePath: resolve("./runtime/component/SiteLink.vue"),
46
126
  name: "SiteLink"
47
127
  });
128
+ if (process.env.playground)
129
+ nuxt.options.alias["site-config-stack"] = resolve("../../site-config/src/index");
48
130
  nuxt.options.nitro.imports = nuxt.options.nitro.imports || {};
49
131
  nuxt.options.nitro.imports.imports = nuxt.options.nitro.imports.imports || [];
50
132
  nuxt.options.nitro.imports.imports.push(...[
@@ -90,4 +172,4 @@ const module = defineNuxtModule({
90
172
  }
91
173
  });
92
174
 
93
- export { module as default };
175
+ export { module as default, envShim, processShim };
@@ -1,2 +1,2 @@
1
- import type { NuxtSiteConfig } from '../../types';
1
+ import type { NuxtSiteConfig } from '../types';
2
2
  export declare function useSiteConfig(): NuxtSiteConfig;
@@ -1,3 +1,3 @@
1
1
  import type { H3Event } from 'h3';
2
- import type { NuxtSiteConfig } from '../../../types';
2
+ import type { NuxtSiteConfig } from '../../types';
3
3
  export declare function useSiteConfig(e: H3Event): NuxtSiteConfig;
@@ -1,5 +1,5 @@
1
- import { eventHandler, updateSiteConfig, useAppConfig, useNitroOrigin, useRuntimeConfig } from "#imports";
2
- export default eventHandler((e) => {
1
+ import { defineEventHandler, updateSiteConfig, useAppConfig, useNitroOrigin, useRuntimeConfig } from "#imports";
2
+ export default defineEventHandler((e) => {
3
3
  if (!e.context.siteConfig) {
4
4
  const appConfig = useAppConfig();
5
5
  const nitroOrigin = useNitroOrigin(e);
@@ -0,0 +1,3 @@
1
+ import type { SiteConfig, SiteConfigInput, SiteConfigStack } from 'site-config-stack';
2
+ export type NuxtSiteConfig = Omit<SiteConfig, 'url'> & Required<Pick<SiteConfig, 'url'>>;
3
+ export { SiteConfig, SiteConfigStack, SiteConfigInput };
@@ -0,0 +1 @@
1
+ export {};
package/dist/types.d.ts CHANGED
@@ -16,4 +16,4 @@ declare module 'nuxt/schema' {
16
16
  }
17
17
 
18
18
 
19
- export { ModuleHooks, ModuleOptions, ModulePublicRuntimeConfig, default } from './module'
19
+ export { ModuleHooks, ModuleOptions, ModulePublicRuntimeConfig, default, envShim, processShim } from './module'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-site-config",
3
3
  "type": "module",
4
- "version": "0.8.17",
4
+ "version": "1.0.2",
5
5
  "packageManager": "pnpm@8.6.6",
6
6
  "description": "Shared site configuration for Nuxt 3 modules.",
7
7
  "license": "MIT",
@@ -29,9 +29,10 @@
29
29
  "dependencies": {
30
30
  "@nuxt/kit": "^3.6.2",
31
31
  "@nuxt/schema": "^3.6.2",
32
+ "pathe": "^1.1.1",
32
33
  "ufo": "^1.1.2",
33
- "nuxt-site-config-kit": "0.8.17",
34
- "site-config-stack": "0.8.17"
34
+ "nuxt-site-config-kit": "1.0.2",
35
+ "site-config-stack": "1.0.2"
35
36
  },
36
37
  "build": {
37
38
  "externals": [