nuxt-site-config 0.5.4 → 0.5.6

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,69 @@ 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
+ 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
+ nuxt._siteConfig = siteConfig;
96
+ return siteConfig;
96
97
  }
97
- async function updateSiteConfig(siteConfig) {
98
- if (!siteConfigContainer)
99
- await initSiteConfig();
100
- siteConfigContainer.push(siteConfig);
98
+ async function updateSiteConfig(input) {
99
+ (await initSiteConfig())?.push(input);
101
100
  }
102
101
  async function useSiteConfig() {
103
- if (!siteConfigContainer)
104
- await initSiteConfig();
105
- return siteConfigContainer.get();
102
+ return (await initSiteConfig())?.get() || {};
106
103
  }
107
104
 
108
- const siteConfigAssertions = {};
109
105
  function requireSiteConfig(context, requirements, modes) {
106
+ const nuxt = tryUseNuxt();
107
+ if (!nuxt)
108
+ return;
109
+ const assertions = nuxt._siteConfigAsserts || {};
110
110
  Object.keys(modes).forEach((mode) => {
111
111
  const key = mode;
112
112
  if (!modes[key])
113
113
  return;
114
- siteConfigAssertions[key] = siteConfigAssertions[key] || [];
115
- siteConfigAssertions[key].push({ context, requirements });
114
+ assertions[key] = assertions[key] || [];
115
+ assertions[key].push({ context, requirements });
116
116
  });
117
+ nuxt._siteConfigAsserts = assertions;
117
118
  }
118
119
  async function assertSiteConfig(mode, options) {
120
+ const nuxt = tryUseNuxt();
121
+ if (!nuxt)
122
+ return;
119
123
  let valid = true;
120
124
  const messages = [];
121
125
  const logger = useLogger("nuxt-site-config");
122
- const assertions = siteConfigAssertions[mode];
126
+ const assertions = nuxt._siteConfigAsserts?.[mode] || false;
123
127
  if (!assertions)
124
128
  return { valid, messages };
125
129
  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.4"
8
+ "version": "0.5.6"
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
 
@@ -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.4",
4
+ "version": "0.5.6",
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",