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
|
|
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,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
|
-
|
|
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
|
+
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
|
-
|
|
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(
|
|
98
|
-
|
|
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
|
-
|
|
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
|
-
|
|
115
|
-
|
|
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 =
|
|
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 {
|
|
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
|
|
|
@@ -69,7 +69,7 @@ const module = defineNuxtModule({
|
|
|
69
69
|
}
|
|
70
70
|
]);
|
|
71
71
|
addPlugin({
|
|
72
|
-
src: resolve("./runtime/plugins/siteConfig
|
|
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 {
|
|
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.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
|
-
"./
|
|
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",
|