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
|
|
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<
|
|
4
|
-
declare function updateSiteConfig(
|
|
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
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
|
|
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(
|
|
98
|
-
|
|
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
|
-
|
|
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
|
-
|
|
115
|
-
|
|
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 =
|
|
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 {
|
|
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
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 './
|
|
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 {
|
|
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
|
+
"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
|
-
"./
|
|
24
|
-
"types": "./dist/
|
|
25
|
-
"import": "./dist/
|
|
23
|
+
"./kit": {
|
|
24
|
+
"types": "./dist/kit.d.ts",
|
|
25
|
+
"import": "./dist/kit.mjs"
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
"main": "./dist/module.cjs",
|