nuxt-site-config 0.5.3 → 0.5.5

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.
@@ -1,10 +1,9 @@
1
- import { S as SiteConfig, a as SiteConfigInput } from './type-3a82b30b.js';
1
+ import { S as SiteConfigContainer, a as SiteConfigInput, b as SiteConfig, A as AssertionModes } from './type-51d86304.js';
2
2
 
3
- declare function initSiteConfig(): Promise<SiteConfig>;
4
- declare function updateSiteConfig(siteConfig: SiteConfigInput): Promise<void>;
3
+ declare function initSiteConfig(): Promise<SiteConfigContainer | undefined>;
4
+ declare function updateSiteConfig(input: SiteConfigInput): Promise<void>;
5
5
  declare function useSiteConfig(): Promise<SiteConfig>;
6
6
 
7
- type AssertionModes = 'prerender' | 'generate' | 'build';
8
7
  declare function requireSiteConfig(context: string, requirements: Partial<Record<keyof SiteConfig, string>>, modes: Partial<Record<AssertionModes, boolean>>): void;
9
8
  declare function assertSiteConfig(mode: AssertionModes, options?: {
10
9
  throwError?: boolean;
@@ -12,6 +11,6 @@ declare function assertSiteConfig(mode: AssertionModes, options?: {
12
11
  }): Promise<{
13
12
  valid: boolean;
14
13
  messages: string[];
15
- }>;
14
+ } | undefined>;
16
15
 
17
16
  export { assertSiteConfig, initSiteConfig, requireSiteConfig, updateSiteConfig, useSiteConfig };
@@ -50,7 +50,6 @@ const envSiteConfig = {
50
50
  locale: envShim.NUXT_PUBLIC_SITE_LANGUAGE || envShim.NUXT_PUBLIC_SITE_LOCALE
51
51
  };
52
52
 
53
- let siteConfigContainer;
54
53
  async function getPkgJsonContextConfig(rootDir) {
55
54
  const pkgJson = await readPackageJSON(void 0, { startingFrom: rootDir });
56
55
  if (!pkgJson)
@@ -62,64 +61,68 @@ async function getPkgJsonContextConfig(rootDir) {
62
61
  }
63
62
  async function initSiteConfig() {
64
63
  const nuxt = tryUseNuxt();
64
+ if (!nuxt)
65
+ return;
66
+ let siteConfig = nuxt._siteConfig;
67
+ if (siteConfig)
68
+ return;
65
69
  const rootDir = nuxt?.options.rootDir || process.cwd();
66
- if (!siteConfigContainer) {
67
- siteConfigContainer = createSiteConfigContainer();
68
- const isNodeEnv = !!process.env.NODE_ENV;
69
- siteConfigContainer.push({
70
- name: rootDir.split("/").pop(),
71
- indexable: isNodeEnv ? process.env.NODE_ENV === "production" : !process.dev
72
- });
73
- siteConfigContainer.push(await getPkgJsonContextConfig(rootDir));
74
- siteConfigContainer.push(envSiteConfig);
75
- if (nuxt) {
76
- let getRuntimeConfig = function(config, env) {
77
- if (process.env[`NUXT_${env}}`])
78
- return process.env[`NUXT_${env}}`];
79
- if (process.env[`NUXT_PUBLIC_${env}}`])
80
- return process.env[`NUXT_PUBLIC_${env}}`];
81
- return runtimeConfig[config] || runtimeConfig.public?.[config];
82
- };
83
- const runtimeConfig = nuxt.options.runtimeConfig;
84
- siteConfigContainer.push({
85
- url: getRuntimeConfig("siteUrl", "SITE_URL"),
86
- name: getRuntimeConfig("siteName", "SITE_NAME"),
87
- description: getRuntimeConfig("siteDescription", "SITE_DESCRIPTION"),
88
- logo: getRuntimeConfig("siteImage", "SITE_IMAGE"),
89
- locale: getRuntimeConfig("siteLanguage", "SITE_LANGUAGE"),
90
- indexable: getRuntimeConfig("siteIndexable", "SITE_INDEXABLE")
91
- });
92
- siteConfigContainer.push(nuxt?.options.runtimeConfig.public.site);
93
- }
70
+ nuxt._siteConfig = siteConfig = createSiteConfigContainer();
71
+ const isNodeEnv = !!process.env.NODE_ENV;
72
+ siteConfig.push({
73
+ name: rootDir.split("/").pop(),
74
+ indexable: isNodeEnv ? process.env.NODE_ENV === "production" : !process.dev
75
+ });
76
+ siteConfig.push(await getPkgJsonContextConfig(rootDir));
77
+ siteConfig.push(envSiteConfig);
78
+ const runtimeConfig = nuxt.options.runtimeConfig;
79
+ function getRuntimeConfig(config, env) {
80
+ if (process.env[`NUXT_${env}}`])
81
+ return process.env[`NUXT_${env}}`];
82
+ if (process.env[`NUXT_PUBLIC_${env}}`])
83
+ return process.env[`NUXT_PUBLIC_${env}}`];
84
+ return runtimeConfig[`site${config}`] || runtimeConfig.public?.[`site${config}`];
94
85
  }
95
- return siteConfigContainer.get();
86
+ siteConfig.push({
87
+ url: getRuntimeConfig("Url", "_URL"),
88
+ name: getRuntimeConfig("Name", "_NAME"),
89
+ description: getRuntimeConfig("Description", "_DESCRIPTION"),
90
+ logo: getRuntimeConfig("Image", "_IMAGE"),
91
+ locale: getRuntimeConfig("Language", "_LANGUAGE"),
92
+ indexable: getRuntimeConfig("Indexable", "_INDEXABLE")
93
+ });
94
+ siteConfig.push(nuxt?.options.runtimeConfig.public.site);
95
+ return nuxt._siteConfig;
96
96
  }
97
- async function updateSiteConfig(siteConfig) {
98
- if (!siteConfigContainer)
99
- await initSiteConfig();
100
- siteConfigContainer.push(siteConfig);
97
+ async function updateSiteConfig(input) {
98
+ (await initSiteConfig())?.push(input);
101
99
  }
102
100
  async function useSiteConfig() {
103
- if (!siteConfigContainer)
104
- await initSiteConfig();
105
- return siteConfigContainer.get();
101
+ return (await initSiteConfig())?.get() || {};
106
102
  }
107
103
 
108
- const siteConfigAssertions = {};
109
104
  function requireSiteConfig(context, requirements, modes) {
105
+ const nuxt = tryUseNuxt();
106
+ if (!nuxt)
107
+ return;
108
+ const assertions = nuxt._siteConfigAsserts || {};
110
109
  Object.keys(modes).forEach((mode) => {
111
110
  const key = mode;
112
111
  if (!modes[key])
113
112
  return;
114
- siteConfigAssertions[key] = siteConfigAssertions[key] || [];
115
- siteConfigAssertions[key].push({ context, requirements });
113
+ assertions[key] = assertions[key] || [];
114
+ assertions[key].push({ context, requirements });
116
115
  });
116
+ nuxt._siteConfigAsserts = assertions;
117
117
  }
118
118
  async function assertSiteConfig(mode, options) {
119
+ const nuxt = tryUseNuxt();
120
+ if (!nuxt)
121
+ return;
119
122
  let valid = true;
120
123
  const messages = [];
121
124
  const logger = useLogger("nuxt-site-config");
122
- const assertions = siteConfigAssertions[mode];
125
+ const assertions = nuxt._siteConfigAsserts?.[mode] || false;
123
126
  if (!assertions)
124
127
  return { valid, messages };
125
128
  const siteConfig = await useSiteConfig();
package/dist/module.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as _nuxt_schema from '@nuxt/schema';
2
- import { b as SiteConfigContainer, a as SiteConfigInput, S as SiteConfig } from './type-3a82b30b.js';
2
+ import { S as SiteConfigContainer, a as SiteConfigInput, b as SiteConfig } from './type-51d86304.js';
3
+ import { AssertionModes, ModuleAssertion } from '~/src/type';
3
4
 
4
5
  interface ModuleOptions extends SiteConfigInput {
5
6
  }
@@ -22,6 +23,10 @@ declare module '@nuxt/schema' {
22
23
  /** Theme configuration */
23
24
  site?: SiteConfigInput;
24
25
  }
26
+ interface Nuxt {
27
+ _siteConfig?: SiteConfigContainer;
28
+ _siteConfigAsserts?: Partial<Record<Partial<AssertionModes>, ModuleAssertion[]>>;
29
+ }
25
30
  }
26
31
  declare module '@nuxt/schema' {
27
32
  interface RuntimeNuxtHooks {
package/dist/module.json CHANGED
@@ -5,5 +5,5 @@
5
5
  "bridge": false
6
6
  },
7
7
  "configKey": "site",
8
- "version": "0.5.3"
8
+ "version": "0.5.5"
9
9
  }
package/dist/module.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  import { defineNuxtModule, createResolver, addImports, addComponent, addPlugin, addServerHandler } from '@nuxt/kit';
2
- import { updateSiteConfig, useSiteConfig, assertSiteConfig } from './build.mjs';
2
+ import { updateSiteConfig, useSiteConfig, assertSiteConfig } from './kit.mjs';
3
3
  import 'pkg-types';
4
4
  import 'defu';
5
5
 
@@ -69,7 +69,7 @@ const module = defineNuxtModule({
69
69
  }
70
70
  ]);
71
71
  addPlugin({
72
- src: resolve("./runtime/plugins/siteConfig.ts")
72
+ src: resolve("./runtime/plugins/siteConfig")
73
73
  });
74
74
  addServerHandler({
75
75
  middleware: true,
@@ -58,5 +58,6 @@ interface SiteConfigContainer {
58
58
  push: (config: SiteConfigInput) => void;
59
59
  get: () => SiteConfig;
60
60
  }
61
+ type AssertionModes = 'prerender' | 'generate' | 'build';
61
62
 
62
- export { SiteConfig as S, SiteConfigInput as a, SiteConfigContainer as b };
63
+ export { AssertionModes as A, SiteConfigContainer as S, SiteConfigInput as a, SiteConfig as b };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "nuxt-site-config",
3
3
  "type": "module",
4
- "version": "0.5.3",
4
+ "version": "0.5.5",
5
5
  "packageManager": "pnpm@8.6.3",
6
6
  "description": "Shared site configuration for Nuxt 3 modules.",
7
7
  "license": "MIT",
@@ -20,9 +20,9 @@
20
20
  "require": "./dist/module.cjs",
21
21
  "import": "./dist/module.mjs"
22
22
  },
23
- "./build": {
24
- "types": "./dist/build.d.ts",
25
- "import": "./dist/build.mjs"
23
+ "./kit": {
24
+ "types": "./dist/kit.d.ts",
25
+ "import": "./dist/kit.mjs"
26
26
  }
27
27
  },
28
28
  "main": "./dist/module.cjs",