nuxt-site-config-kit 3.0.5 → 3.0.7
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/LICENSE.md +1 -1
- package/dist/index.cjs +142 -39
- package/dist/index.d.cts +2 -16
- package/dist/index.d.mts +2 -16
- package/dist/index.d.ts +2 -16
- package/dist/index.mjs +135 -34
- package/dist/urls.cjs +8 -39
- package/dist/urls.mjs +4 -39
- package/package.json +8 -6
- package/dist/shared/nuxt-site-config-kit.469a004d.cjs +0 -115
- package/dist/shared/nuxt-site-config-kit.8664a57b.mjs +0 -108
package/LICENSE.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
MIT License
|
|
2
2
|
|
|
3
|
-
Copyright (c)
|
|
3
|
+
Copyright (c) 2023-Present - Harlan Wilton
|
|
4
4
|
|
|
5
5
|
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
6
|
|
package/dist/index.cjs
CHANGED
|
@@ -1,49 +1,152 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
const util = require('./shared/nuxt-site-config-kit.469a004d.cjs');
|
|
4
3
|
const kit = require('@nuxt/kit');
|
|
5
|
-
require('pkg-types');
|
|
6
|
-
require('site-config-stack');
|
|
7
|
-
require('
|
|
8
|
-
require('std-env');
|
|
4
|
+
const pkgTypes = require('pkg-types');
|
|
5
|
+
const siteConfigStack = require('site-config-stack');
|
|
6
|
+
const urls = require('site-config-stack/urls');
|
|
7
|
+
const stdEnv = require('std-env');
|
|
8
|
+
const ufo = require('ufo');
|
|
9
9
|
|
|
10
|
-
function
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
10
|
+
async function initSiteConfig(nuxt = kit.tryUseNuxt()) {
|
|
11
|
+
if (!nuxt)
|
|
12
|
+
return;
|
|
13
|
+
let siteConfig = nuxt._siteConfig;
|
|
14
|
+
if (siteConfig)
|
|
15
|
+
return siteConfig;
|
|
16
|
+
siteConfig = siteConfigStack.createSiteConfigStack();
|
|
17
|
+
const rootDir = nuxt?.options.rootDir || process.cwd?.() || false;
|
|
18
|
+
siteConfig.push({
|
|
19
|
+
_context: "system",
|
|
20
|
+
_priority: -15,
|
|
21
|
+
name: rootDir ? rootDir.split("/").pop() : void 0,
|
|
22
|
+
env: process.env.NODE_ENV
|
|
23
|
+
});
|
|
24
|
+
if (rootDir) {
|
|
25
|
+
const pkgJson = await pkgTypes.readPackageJSON(void 0, { startingFrom: rootDir });
|
|
26
|
+
if (pkgJson) {
|
|
27
|
+
siteConfig.push({
|
|
28
|
+
_context: "package.json",
|
|
29
|
+
_priority: -10,
|
|
30
|
+
name: pkgJson.name,
|
|
31
|
+
description: pkgJson.description
|
|
32
|
+
});
|
|
29
33
|
}
|
|
34
|
+
}
|
|
35
|
+
siteConfig.push({
|
|
36
|
+
_context: "vendorEnv",
|
|
37
|
+
_priority: -5,
|
|
38
|
+
url: [
|
|
39
|
+
// vercel
|
|
40
|
+
process.env.VERCEL_URL,
|
|
41
|
+
process.env.NUXT_ENV_VERCEL_URL,
|
|
42
|
+
// netlify
|
|
43
|
+
process.env.URL,
|
|
44
|
+
// cloudflare pages
|
|
45
|
+
process.env.CF_PAGES_URL
|
|
46
|
+
].find((k) => Boolean(k)),
|
|
47
|
+
name: [
|
|
48
|
+
// vercel
|
|
49
|
+
process.env.NUXT_ENV_VERCEL_GIT_REPO_SLUG,
|
|
50
|
+
// netlify
|
|
51
|
+
process.env.SITE_NAME
|
|
52
|
+
].find((k) => Boolean(k))
|
|
53
|
+
});
|
|
54
|
+
const runtimeConfig = nuxt.options.runtimeConfig;
|
|
55
|
+
const runtimeConfigEnvKeys = [
|
|
56
|
+
...Object.entries(runtimeConfig.site || {}).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v]),
|
|
57
|
+
...Object.entries([...Object.entries(runtimeConfig), ...Object.entries(runtimeConfig.public)]).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v])
|
|
58
|
+
];
|
|
59
|
+
siteConfig.push({
|
|
60
|
+
_priority: -2,
|
|
61
|
+
_context: "legacyRuntimeConfig",
|
|
62
|
+
...Object.fromEntries(runtimeConfigEnvKeys)
|
|
63
|
+
});
|
|
64
|
+
siteConfig.push({
|
|
65
|
+
_context: "buildEnv",
|
|
66
|
+
_priority: -1,
|
|
67
|
+
...siteConfigStack.envSiteConfig(process.env)
|
|
30
68
|
});
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
69
|
+
nuxt._siteConfig = siteConfig;
|
|
70
|
+
return siteConfig;
|
|
71
|
+
}
|
|
72
|
+
async function installNuxtSiteConfig(nuxt = kit.tryUseNuxt()) {
|
|
73
|
+
await kit.installModule(await kit.resolvePath("nuxt-site-config"));
|
|
74
|
+
await initSiteConfig(nuxt);
|
|
75
|
+
}
|
|
76
|
+
function getSiteConfigStack(nuxt = kit.tryUseNuxt()) {
|
|
77
|
+
if (!nuxt)
|
|
78
|
+
throw new Error("Nuxt context is missing.");
|
|
79
|
+
if (!nuxt._siteConfig)
|
|
80
|
+
throw new Error("Site config is not initialized. Make sure you are running your module after nuxt-site-config.");
|
|
81
|
+
return nuxt._siteConfig;
|
|
82
|
+
}
|
|
83
|
+
function updateSiteConfig(input, nuxt = kit.tryUseNuxt()) {
|
|
84
|
+
const container = getSiteConfigStack(nuxt);
|
|
85
|
+
container.push(input);
|
|
86
|
+
}
|
|
87
|
+
function useSiteConfig(nuxt = kit.tryUseNuxt()) {
|
|
88
|
+
const container = getSiteConfigStack(nuxt);
|
|
89
|
+
return container.get();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
function useNitroOrigin() {
|
|
93
|
+
const cert = stdEnv.env.NITRO_SSL_CERT;
|
|
94
|
+
const key = stdEnv.env.NITRO_SSL_KEY;
|
|
95
|
+
let host = stdEnv.env.NITRO_HOST || stdEnv.env.HOST || false;
|
|
96
|
+
let port = stdEnv.env.NITRO_PORT || stdEnv.env.PORT || (stdEnv.isDevelopment ? 3e3 : false);
|
|
97
|
+
let protocol = cert && key || !stdEnv.isDevelopment ? "https" : "http";
|
|
98
|
+
if ((stdEnv.isDevelopment || stdEnv.env.prerender) && stdEnv.env.NUXT_VITE_NODE_OPTIONS) {
|
|
99
|
+
const origin = JSON.parse(stdEnv.env.NUXT_VITE_NODE_OPTIONS).baseURL.replace("/__nuxt_vite_node__", "");
|
|
100
|
+
host = ufo.withoutProtocol(origin);
|
|
101
|
+
protocol = origin.includes("https") ? "https" : "http";
|
|
35
102
|
}
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
103
|
+
if (typeof host === "string" && host.includes(":")) {
|
|
104
|
+
port = host.split(":").pop();
|
|
105
|
+
host = host.split(":")[0];
|
|
106
|
+
}
|
|
107
|
+
port = port ? `:${port}` : "";
|
|
108
|
+
return `${protocol}://${host}${port}/`;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
function withSiteTrailingSlash(path) {
|
|
112
|
+
const siteConfig = useSiteConfig();
|
|
113
|
+
return urls.fixSlashes(siteConfig.trailingSlash, path);
|
|
114
|
+
}
|
|
115
|
+
function createSitePathResolver(options = {}, nuxt = kit.useNuxt()) {
|
|
116
|
+
const siteConfig = useSiteConfig();
|
|
117
|
+
const nitroOrigin = useNitroOrigin();
|
|
118
|
+
const canUseSiteUrl = (options.canonical !== false || stdEnv.env.prerender) && siteConfig.url;
|
|
119
|
+
const nuxtBase = nuxt.options.app.baseURL || "/";
|
|
120
|
+
return (path) => {
|
|
121
|
+
return urls.resolveSitePath(path, {
|
|
122
|
+
...options,
|
|
123
|
+
siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
|
|
124
|
+
trailingSlash: siteConfig.trailingSlash,
|
|
125
|
+
base: nuxtBase
|
|
126
|
+
});
|
|
39
127
|
};
|
|
40
128
|
}
|
|
129
|
+
function withSiteUrl(path, options = {}) {
|
|
130
|
+
const siteConfig = useSiteConfig();
|
|
131
|
+
if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
|
|
132
|
+
throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
|
|
133
|
+
const nuxt = kit.useNuxt();
|
|
134
|
+
const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
|
|
135
|
+
return urls.resolveSitePath(path, {
|
|
136
|
+
absolute: true,
|
|
137
|
+
siteUrl: siteConfig.url || "",
|
|
138
|
+
trailingSlash: siteConfig.trailingSlash,
|
|
139
|
+
base,
|
|
140
|
+
withBase: options.withBase
|
|
141
|
+
});
|
|
142
|
+
}
|
|
41
143
|
|
|
42
|
-
exports.
|
|
43
|
-
exports.
|
|
44
|
-
exports.
|
|
45
|
-
exports.
|
|
46
|
-
exports.
|
|
47
|
-
exports.
|
|
48
|
-
exports.
|
|
49
|
-
exports.
|
|
144
|
+
exports.createSitePathResolver = createSitePathResolver;
|
|
145
|
+
exports.getSiteConfigStack = getSiteConfigStack;
|
|
146
|
+
exports.initSiteConfig = initSiteConfig;
|
|
147
|
+
exports.installNuxtSiteConfig = installNuxtSiteConfig;
|
|
148
|
+
exports.updateSiteConfig = updateSiteConfig;
|
|
149
|
+
exports.useNitroOrigin = useNitroOrigin;
|
|
150
|
+
exports.useSiteConfig = useSiteConfig;
|
|
151
|
+
exports.withSiteTrailingSlash = withSiteTrailingSlash;
|
|
152
|
+
exports.withSiteUrl = withSiteUrl;
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Nuxt } from '@nuxt/schema';
|
|
2
2
|
import { SiteConfigStack, SiteConfigInput, SiteConfigResolved } from 'site-config-stack';
|
|
3
|
+
export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl } from './urls.cjs';
|
|
3
4
|
|
|
4
5
|
declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
|
|
5
6
|
declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
|
|
@@ -7,27 +8,12 @@ declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
|
|
|
7
8
|
declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
|
|
8
9
|
declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfigResolved;
|
|
9
10
|
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated No longer used
|
|
12
|
-
*/
|
|
13
|
-
declare function requireSiteConfig(): void;
|
|
14
|
-
declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfigResolved, string>>, options?: {
|
|
15
|
-
throwError?: boolean;
|
|
16
|
-
}): {
|
|
17
|
-
valid: boolean;
|
|
18
|
-
messages: string[];
|
|
19
|
-
};
|
|
20
|
-
|
|
21
11
|
type AssertionModes = 'prerender' | 'generate' | 'build';
|
|
22
12
|
interface ModuleAssertion {
|
|
23
13
|
context: string;
|
|
24
14
|
requirements: Partial<Record<keyof SiteConfigInput, string>>;
|
|
25
15
|
}
|
|
26
16
|
declare module '@nuxt/schema' {
|
|
27
|
-
interface AppConfigInput {
|
|
28
|
-
/** Theme configuration */
|
|
29
|
-
site?: SiteConfigInput;
|
|
30
|
-
}
|
|
31
17
|
interface Nuxt {
|
|
32
18
|
_siteConfig?: SiteConfigStack;
|
|
33
19
|
_siteConfigAsserts?: Partial<Record<Partial<AssertionModes>, ModuleAssertion[]>>;
|
|
@@ -36,4 +22,4 @@ declare module '@nuxt/schema' {
|
|
|
36
22
|
|
|
37
23
|
declare function useNitroOrigin(): string;
|
|
38
24
|
|
|
39
|
-
export { type AssertionModes, type ModuleAssertion,
|
|
25
|
+
export { type AssertionModes, type ModuleAssertion, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig };
|
package/dist/index.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Nuxt } from '@nuxt/schema';
|
|
2
2
|
import { SiteConfigStack, SiteConfigInput, SiteConfigResolved } from 'site-config-stack';
|
|
3
|
+
export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl } from './urls.mjs';
|
|
3
4
|
|
|
4
5
|
declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
|
|
5
6
|
declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
|
|
@@ -7,27 +8,12 @@ declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
|
|
|
7
8
|
declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
|
|
8
9
|
declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfigResolved;
|
|
9
10
|
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated No longer used
|
|
12
|
-
*/
|
|
13
|
-
declare function requireSiteConfig(): void;
|
|
14
|
-
declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfigResolved, string>>, options?: {
|
|
15
|
-
throwError?: boolean;
|
|
16
|
-
}): {
|
|
17
|
-
valid: boolean;
|
|
18
|
-
messages: string[];
|
|
19
|
-
};
|
|
20
|
-
|
|
21
11
|
type AssertionModes = 'prerender' | 'generate' | 'build';
|
|
22
12
|
interface ModuleAssertion {
|
|
23
13
|
context: string;
|
|
24
14
|
requirements: Partial<Record<keyof SiteConfigInput, string>>;
|
|
25
15
|
}
|
|
26
16
|
declare module '@nuxt/schema' {
|
|
27
|
-
interface AppConfigInput {
|
|
28
|
-
/** Theme configuration */
|
|
29
|
-
site?: SiteConfigInput;
|
|
30
|
-
}
|
|
31
17
|
interface Nuxt {
|
|
32
18
|
_siteConfig?: SiteConfigStack;
|
|
33
19
|
_siteConfigAsserts?: Partial<Record<Partial<AssertionModes>, ModuleAssertion[]>>;
|
|
@@ -36,4 +22,4 @@ declare module '@nuxt/schema' {
|
|
|
36
22
|
|
|
37
23
|
declare function useNitroOrigin(): string;
|
|
38
24
|
|
|
39
|
-
export { type AssertionModes, type ModuleAssertion,
|
|
25
|
+
export { type AssertionModes, type ModuleAssertion, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Nuxt } from '@nuxt/schema';
|
|
2
2
|
import { SiteConfigStack, SiteConfigInput, SiteConfigResolved } from 'site-config-stack';
|
|
3
|
+
export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl } from './urls.js';
|
|
3
4
|
|
|
4
5
|
declare function initSiteConfig(nuxt?: Nuxt | null): Promise<SiteConfigStack | undefined>;
|
|
5
6
|
declare function installNuxtSiteConfig(nuxt?: Nuxt | null): Promise<void>;
|
|
@@ -7,27 +8,12 @@ declare function getSiteConfigStack(nuxt?: Nuxt | null): SiteConfigStack;
|
|
|
7
8
|
declare function updateSiteConfig(input: SiteConfigInput, nuxt?: Nuxt | null): void;
|
|
8
9
|
declare function useSiteConfig(nuxt?: Nuxt | null): SiteConfigResolved;
|
|
9
10
|
|
|
10
|
-
/**
|
|
11
|
-
* @deprecated No longer used
|
|
12
|
-
*/
|
|
13
|
-
declare function requireSiteConfig(): void;
|
|
14
|
-
declare function assertSiteConfig(module: string, requirements: Partial<Record<keyof SiteConfigResolved, string>>, options?: {
|
|
15
|
-
throwError?: boolean;
|
|
16
|
-
}): {
|
|
17
|
-
valid: boolean;
|
|
18
|
-
messages: string[];
|
|
19
|
-
};
|
|
20
|
-
|
|
21
11
|
type AssertionModes = 'prerender' | 'generate' | 'build';
|
|
22
12
|
interface ModuleAssertion {
|
|
23
13
|
context: string;
|
|
24
14
|
requirements: Partial<Record<keyof SiteConfigInput, string>>;
|
|
25
15
|
}
|
|
26
16
|
declare module '@nuxt/schema' {
|
|
27
|
-
interface AppConfigInput {
|
|
28
|
-
/** Theme configuration */
|
|
29
|
-
site?: SiteConfigInput;
|
|
30
|
-
}
|
|
31
17
|
interface Nuxt {
|
|
32
18
|
_siteConfig?: SiteConfigStack;
|
|
33
19
|
_siteConfigAsserts?: Partial<Record<Partial<AssertionModes>, ModuleAssertion[]>>;
|
|
@@ -36,4 +22,4 @@ declare module '@nuxt/schema' {
|
|
|
36
22
|
|
|
37
23
|
declare function useNitroOrigin(): string;
|
|
38
24
|
|
|
39
|
-
export { type AssertionModes, type ModuleAssertion,
|
|
25
|
+
export { type AssertionModes, type ModuleAssertion, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig };
|
package/dist/index.mjs
CHANGED
|
@@ -1,41 +1,142 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
import {
|
|
4
|
-
import '
|
|
5
|
-
import '
|
|
6
|
-
import 'ufo';
|
|
7
|
-
import 'std-env';
|
|
1
|
+
import { tryUseNuxt, installModule, resolvePath, useNuxt } from '@nuxt/kit';
|
|
2
|
+
import { readPackageJSON } from 'pkg-types';
|
|
3
|
+
import { createSiteConfigStack, envSiteConfig } from 'site-config-stack';
|
|
4
|
+
import { fixSlashes, resolveSitePath } from 'site-config-stack/urls';
|
|
5
|
+
import { env, isDevelopment } from 'std-env';
|
|
6
|
+
import { withoutProtocol } from 'ufo';
|
|
8
7
|
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
8
|
+
async function initSiteConfig(nuxt = tryUseNuxt()) {
|
|
9
|
+
if (!nuxt)
|
|
10
|
+
return;
|
|
11
|
+
let siteConfig = nuxt._siteConfig;
|
|
12
|
+
if (siteConfig)
|
|
13
|
+
return siteConfig;
|
|
14
|
+
siteConfig = createSiteConfigStack();
|
|
15
|
+
const rootDir = nuxt?.options.rootDir || process.cwd?.() || false;
|
|
16
|
+
siteConfig.push({
|
|
17
|
+
_context: "system",
|
|
18
|
+
_priority: -15,
|
|
19
|
+
name: rootDir ? rootDir.split("/").pop() : void 0,
|
|
20
|
+
env: process.env.NODE_ENV
|
|
21
|
+
});
|
|
22
|
+
if (rootDir) {
|
|
23
|
+
const pkgJson = await readPackageJSON(void 0, { startingFrom: rootDir });
|
|
24
|
+
if (pkgJson) {
|
|
25
|
+
siteConfig.push({
|
|
26
|
+
_context: "package.json",
|
|
27
|
+
_priority: -10,
|
|
28
|
+
name: pkgJson.name,
|
|
29
|
+
description: pkgJson.description
|
|
30
|
+
});
|
|
28
31
|
}
|
|
32
|
+
}
|
|
33
|
+
siteConfig.push({
|
|
34
|
+
_context: "vendorEnv",
|
|
35
|
+
_priority: -5,
|
|
36
|
+
url: [
|
|
37
|
+
// vercel
|
|
38
|
+
process.env.VERCEL_URL,
|
|
39
|
+
process.env.NUXT_ENV_VERCEL_URL,
|
|
40
|
+
// netlify
|
|
41
|
+
process.env.URL,
|
|
42
|
+
// cloudflare pages
|
|
43
|
+
process.env.CF_PAGES_URL
|
|
44
|
+
].find((k) => Boolean(k)),
|
|
45
|
+
name: [
|
|
46
|
+
// vercel
|
|
47
|
+
process.env.NUXT_ENV_VERCEL_GIT_REPO_SLUG,
|
|
48
|
+
// netlify
|
|
49
|
+
process.env.SITE_NAME
|
|
50
|
+
].find((k) => Boolean(k))
|
|
51
|
+
});
|
|
52
|
+
const runtimeConfig = nuxt.options.runtimeConfig;
|
|
53
|
+
const runtimeConfigEnvKeys = [
|
|
54
|
+
...Object.entries(runtimeConfig.site || {}).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v]),
|
|
55
|
+
...Object.entries([...Object.entries(runtimeConfig), ...Object.entries(runtimeConfig.public)]).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v])
|
|
56
|
+
];
|
|
57
|
+
siteConfig.push({
|
|
58
|
+
_priority: -2,
|
|
59
|
+
_context: "legacyRuntimeConfig",
|
|
60
|
+
...Object.fromEntries(runtimeConfigEnvKeys)
|
|
61
|
+
});
|
|
62
|
+
siteConfig.push({
|
|
63
|
+
_context: "buildEnv",
|
|
64
|
+
_priority: -1,
|
|
65
|
+
...envSiteConfig(process.env)
|
|
29
66
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
67
|
+
nuxt._siteConfig = siteConfig;
|
|
68
|
+
return siteConfig;
|
|
69
|
+
}
|
|
70
|
+
async function installNuxtSiteConfig(nuxt = tryUseNuxt()) {
|
|
71
|
+
await installModule(await resolvePath("nuxt-site-config"));
|
|
72
|
+
await initSiteConfig(nuxt);
|
|
73
|
+
}
|
|
74
|
+
function getSiteConfigStack(nuxt = tryUseNuxt()) {
|
|
75
|
+
if (!nuxt)
|
|
76
|
+
throw new Error("Nuxt context is missing.");
|
|
77
|
+
if (!nuxt._siteConfig)
|
|
78
|
+
throw new Error("Site config is not initialized. Make sure you are running your module after nuxt-site-config.");
|
|
79
|
+
return nuxt._siteConfig;
|
|
80
|
+
}
|
|
81
|
+
function updateSiteConfig(input, nuxt = tryUseNuxt()) {
|
|
82
|
+
const container = getSiteConfigStack(nuxt);
|
|
83
|
+
container.push(input);
|
|
84
|
+
}
|
|
85
|
+
function useSiteConfig(nuxt = tryUseNuxt()) {
|
|
86
|
+
const container = getSiteConfigStack(nuxt);
|
|
87
|
+
return container.get();
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
function useNitroOrigin() {
|
|
91
|
+
const cert = env.NITRO_SSL_CERT;
|
|
92
|
+
const key = env.NITRO_SSL_KEY;
|
|
93
|
+
let host = env.NITRO_HOST || env.HOST || false;
|
|
94
|
+
let port = env.NITRO_PORT || env.PORT || (isDevelopment ? 3e3 : false);
|
|
95
|
+
let protocol = cert && key || !isDevelopment ? "https" : "http";
|
|
96
|
+
if ((isDevelopment || env.prerender) && env.NUXT_VITE_NODE_OPTIONS) {
|
|
97
|
+
const origin = JSON.parse(env.NUXT_VITE_NODE_OPTIONS).baseURL.replace("/__nuxt_vite_node__", "");
|
|
98
|
+
host = withoutProtocol(origin);
|
|
99
|
+
protocol = origin.includes("https") ? "https" : "http";
|
|
100
|
+
}
|
|
101
|
+
if (typeof host === "string" && host.includes(":")) {
|
|
102
|
+
port = host.split(":").pop();
|
|
103
|
+
host = host.split(":")[0];
|
|
34
104
|
}
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
105
|
+
port = port ? `:${port}` : "";
|
|
106
|
+
return `${protocol}://${host}${port}/`;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
function withSiteTrailingSlash(path) {
|
|
110
|
+
const siteConfig = useSiteConfig();
|
|
111
|
+
return fixSlashes(siteConfig.trailingSlash, path);
|
|
112
|
+
}
|
|
113
|
+
function createSitePathResolver(options = {}, nuxt = useNuxt()) {
|
|
114
|
+
const siteConfig = useSiteConfig();
|
|
115
|
+
const nitroOrigin = useNitroOrigin();
|
|
116
|
+
const canUseSiteUrl = (options.canonical !== false || env.prerender) && siteConfig.url;
|
|
117
|
+
const nuxtBase = nuxt.options.app.baseURL || "/";
|
|
118
|
+
return (path) => {
|
|
119
|
+
return resolveSitePath(path, {
|
|
120
|
+
...options,
|
|
121
|
+
siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
|
|
122
|
+
trailingSlash: siteConfig.trailingSlash,
|
|
123
|
+
base: nuxtBase
|
|
124
|
+
});
|
|
38
125
|
};
|
|
39
126
|
}
|
|
127
|
+
function withSiteUrl(path, options = {}) {
|
|
128
|
+
const siteConfig = useSiteConfig();
|
|
129
|
+
if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
|
|
130
|
+
throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
|
|
131
|
+
const nuxt = useNuxt();
|
|
132
|
+
const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
|
|
133
|
+
return resolveSitePath(path, {
|
|
134
|
+
absolute: true,
|
|
135
|
+
siteUrl: siteConfig.url || "",
|
|
136
|
+
trailingSlash: siteConfig.trailingSlash,
|
|
137
|
+
base,
|
|
138
|
+
withBase: options.withBase
|
|
139
|
+
});
|
|
140
|
+
}
|
|
40
141
|
|
|
41
|
-
export {
|
|
142
|
+
export { createSitePathResolver, getSiteConfigStack, initSiteConfig, installNuxtSiteConfig, updateSiteConfig, useNitroOrigin, useSiteConfig, withSiteTrailingSlash, withSiteUrl };
|
package/dist/urls.cjs
CHANGED
|
@@ -1,46 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
const
|
|
3
|
+
require('@nuxt/kit');
|
|
4
|
+
require('site-config-stack/urls');
|
|
5
|
+
require('std-env');
|
|
6
|
+
const urls = require('./index.cjs');
|
|
7
7
|
require('pkg-types');
|
|
8
8
|
require('site-config-stack');
|
|
9
9
|
require('ufo');
|
|
10
10
|
|
|
11
|
-
function withSiteTrailingSlash(path) {
|
|
12
|
-
const siteConfig = util.useSiteConfig();
|
|
13
|
-
return urls.fixSlashes(siteConfig.trailingSlash, path);
|
|
14
|
-
}
|
|
15
|
-
function createSitePathResolver(options = {}, nuxt = kit.useNuxt()) {
|
|
16
|
-
const siteConfig = util.useSiteConfig();
|
|
17
|
-
const nitroOrigin = util.useNitroOrigin();
|
|
18
|
-
const canUseSiteUrl = (options.canonical !== false || stdEnv.env.prerender) && siteConfig.url;
|
|
19
|
-
const nuxtBase = nuxt.options.app.baseURL || "/";
|
|
20
|
-
return (path) => {
|
|
21
|
-
return urls.resolveSitePath(path, {
|
|
22
|
-
...options,
|
|
23
|
-
siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
|
|
24
|
-
trailingSlash: siteConfig.trailingSlash,
|
|
25
|
-
base: nuxtBase
|
|
26
|
-
});
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
function withSiteUrl(path, options = {}) {
|
|
30
|
-
const siteConfig = util.useSiteConfig();
|
|
31
|
-
if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
|
|
32
|
-
throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
|
|
33
|
-
const nuxt = kit.useNuxt();
|
|
34
|
-
const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
|
|
35
|
-
return urls.resolveSitePath(path, {
|
|
36
|
-
absolute: true,
|
|
37
|
-
siteUrl: siteConfig.url || "",
|
|
38
|
-
trailingSlash: siteConfig.trailingSlash,
|
|
39
|
-
base,
|
|
40
|
-
withBase: options.withBase
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
11
|
|
|
44
|
-
|
|
45
|
-
exports.
|
|
46
|
-
exports.
|
|
12
|
+
|
|
13
|
+
exports.createSitePathResolver = urls.createSitePathResolver;
|
|
14
|
+
exports.withSiteTrailingSlash = urls.withSiteTrailingSlash;
|
|
15
|
+
exports.withSiteUrl = urls.withSiteUrl;
|
package/dist/urls.mjs
CHANGED
|
@@ -1,42 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
|
|
1
|
+
import '@nuxt/kit';
|
|
2
|
+
import 'site-config-stack/urls';
|
|
3
|
+
import 'std-env';
|
|
4
|
+
export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl } from './index.mjs';
|
|
5
5
|
import 'pkg-types';
|
|
6
6
|
import 'site-config-stack';
|
|
7
7
|
import 'ufo';
|
|
8
|
-
|
|
9
|
-
function withSiteTrailingSlash(path) {
|
|
10
|
-
const siteConfig = useSiteConfig();
|
|
11
|
-
return fixSlashes(siteConfig.trailingSlash, path);
|
|
12
|
-
}
|
|
13
|
-
function createSitePathResolver(options = {}, nuxt = useNuxt()) {
|
|
14
|
-
const siteConfig = useSiteConfig();
|
|
15
|
-
const nitroOrigin = useNitroOrigin();
|
|
16
|
-
const canUseSiteUrl = (options.canonical !== false || env.prerender) && siteConfig.url;
|
|
17
|
-
const nuxtBase = nuxt.options.app.baseURL || "/";
|
|
18
|
-
return (path) => {
|
|
19
|
-
return resolveSitePath(path, {
|
|
20
|
-
...options,
|
|
21
|
-
siteUrl: canUseSiteUrl ? siteConfig.url : nitroOrigin,
|
|
22
|
-
trailingSlash: siteConfig.trailingSlash,
|
|
23
|
-
base: nuxtBase
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
function withSiteUrl(path, options = {}) {
|
|
28
|
-
const siteConfig = useSiteConfig();
|
|
29
|
-
if (!siteConfig.url && options.throwErrorOnMissingSiteUrl)
|
|
30
|
-
throw new Error("Missing url in site config. Please add `{ site: { url: <url> } }` to nuxt.config.ts.");
|
|
31
|
-
const nuxt = useNuxt();
|
|
32
|
-
const base = nuxt.options.app.baseURL || nuxt.options.nitro.baseURL || "/";
|
|
33
|
-
return resolveSitePath(path, {
|
|
34
|
-
absolute: true,
|
|
35
|
-
siteUrl: siteConfig.url || "",
|
|
36
|
-
trailingSlash: siteConfig.trailingSlash,
|
|
37
|
-
base,
|
|
38
|
-
withBase: options.withBase
|
|
39
|
-
});
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
export { createSitePathResolver, withSiteTrailingSlash, withSiteUrl };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nuxt-site-config-kit",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.7",
|
|
5
5
|
"description": "Shared site configuration build-time utilities for Nuxt 3 modules.",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"funding": "https://github.com/sponsors/harlan-zw",
|
|
@@ -38,12 +38,14 @@
|
|
|
38
38
|
"dist"
|
|
39
39
|
],
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@nuxt/kit": "^3.
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"std-env": "^3.7.0",
|
|
41
|
+
"@nuxt/kit": "^3.15.4",
|
|
42
|
+
"pkg-types": "^1.3.1",
|
|
43
|
+
"std-env": "^3.8.0",
|
|
45
44
|
"ufo": "^1.5.4",
|
|
46
|
-
"site-config-stack": "3.0.
|
|
45
|
+
"site-config-stack": "3.0.7"
|
|
46
|
+
},
|
|
47
|
+
"devDependencies": {
|
|
48
|
+
"@nuxt/schema": "^3.15.4"
|
|
47
49
|
},
|
|
48
50
|
"scripts": {
|
|
49
51
|
"lint": "eslint . --fix",
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const kit = require('@nuxt/kit');
|
|
4
|
-
const pkgTypes = require('pkg-types');
|
|
5
|
-
const siteConfigStack = require('site-config-stack');
|
|
6
|
-
const ufo = require('ufo');
|
|
7
|
-
const stdEnv = require('std-env');
|
|
8
|
-
|
|
9
|
-
async function initSiteConfig(nuxt = kit.tryUseNuxt()) {
|
|
10
|
-
if (!nuxt)
|
|
11
|
-
return;
|
|
12
|
-
let siteConfig = nuxt._siteConfig;
|
|
13
|
-
if (siteConfig)
|
|
14
|
-
return siteConfig;
|
|
15
|
-
siteConfig = siteConfigStack.createSiteConfigStack();
|
|
16
|
-
const rootDir = nuxt?.options.rootDir || process.cwd?.() || false;
|
|
17
|
-
siteConfig.push({
|
|
18
|
-
_context: "system",
|
|
19
|
-
_priority: -15,
|
|
20
|
-
name: rootDir ? rootDir.split("/").pop() : void 0,
|
|
21
|
-
env: process.env.NODE_ENV
|
|
22
|
-
});
|
|
23
|
-
if (rootDir) {
|
|
24
|
-
const pkgJson = await pkgTypes.readPackageJSON(void 0, { startingFrom: rootDir });
|
|
25
|
-
if (pkgJson) {
|
|
26
|
-
siteConfig.push({
|
|
27
|
-
_context: "package.json",
|
|
28
|
-
_priority: -10,
|
|
29
|
-
name: pkgJson.name,
|
|
30
|
-
description: pkgJson.description
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
siteConfig.push({
|
|
35
|
-
_context: "vendorEnv",
|
|
36
|
-
_priority: -5,
|
|
37
|
-
url: [
|
|
38
|
-
// vercel
|
|
39
|
-
process.env.VERCEL_URL,
|
|
40
|
-
process.env.NUXT_ENV_VERCEL_URL,
|
|
41
|
-
// netlify
|
|
42
|
-
process.env.URL,
|
|
43
|
-
// cloudflare pages
|
|
44
|
-
process.env.CF_PAGES_URL
|
|
45
|
-
].find((k) => Boolean(k)),
|
|
46
|
-
name: [
|
|
47
|
-
// vercel
|
|
48
|
-
process.env.NUXT_ENV_VERCEL_GIT_REPO_SLUG,
|
|
49
|
-
// netlify
|
|
50
|
-
process.env.SITE_NAME
|
|
51
|
-
].find((k) => Boolean(k))
|
|
52
|
-
});
|
|
53
|
-
const runtimeConfig = nuxt.options.runtimeConfig;
|
|
54
|
-
const runtimeConfigEnvKeys = [
|
|
55
|
-
...Object.entries(runtimeConfig.site || {}).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v]),
|
|
56
|
-
...Object.entries([...Object.entries(runtimeConfig), ...Object.entries(runtimeConfig.public)]).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v])
|
|
57
|
-
];
|
|
58
|
-
siteConfig.push({
|
|
59
|
-
_priority: -2,
|
|
60
|
-
_context: "legacyRuntimeConfig",
|
|
61
|
-
...Object.fromEntries(runtimeConfigEnvKeys)
|
|
62
|
-
});
|
|
63
|
-
siteConfig.push({
|
|
64
|
-
_context: "buildEnv",
|
|
65
|
-
_priority: -1,
|
|
66
|
-
...siteConfigStack.envSiteConfig(process.env)
|
|
67
|
-
});
|
|
68
|
-
nuxt._siteConfig = siteConfig;
|
|
69
|
-
return siteConfig;
|
|
70
|
-
}
|
|
71
|
-
async function installNuxtSiteConfig(nuxt = kit.tryUseNuxt()) {
|
|
72
|
-
await kit.installModule(await kit.resolvePath("nuxt-site-config"));
|
|
73
|
-
await initSiteConfig(nuxt);
|
|
74
|
-
}
|
|
75
|
-
function getSiteConfigStack(nuxt = kit.tryUseNuxt()) {
|
|
76
|
-
if (!nuxt)
|
|
77
|
-
throw new Error("Nuxt context is missing.");
|
|
78
|
-
if (!nuxt._siteConfig)
|
|
79
|
-
throw new Error("Site config is not initialized. Make sure you are running your module after nuxt-site-config.");
|
|
80
|
-
return nuxt._siteConfig;
|
|
81
|
-
}
|
|
82
|
-
function updateSiteConfig(input, nuxt = kit.tryUseNuxt()) {
|
|
83
|
-
const container = getSiteConfigStack(nuxt);
|
|
84
|
-
container.push(input);
|
|
85
|
-
}
|
|
86
|
-
function useSiteConfig(nuxt = kit.tryUseNuxt()) {
|
|
87
|
-
const container = getSiteConfigStack(nuxt);
|
|
88
|
-
return container.get();
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
function useNitroOrigin() {
|
|
92
|
-
const cert = stdEnv.env.NITRO_SSL_CERT;
|
|
93
|
-
const key = stdEnv.env.NITRO_SSL_KEY;
|
|
94
|
-
let host = stdEnv.env.NITRO_HOST || stdEnv.env.HOST || false;
|
|
95
|
-
let port = stdEnv.env.NITRO_PORT || stdEnv.env.PORT || (stdEnv.isDevelopment ? 3e3 : false);
|
|
96
|
-
let protocol = cert && key || !stdEnv.isDevelopment ? "https" : "http";
|
|
97
|
-
if ((stdEnv.isDevelopment || stdEnv.env.prerender) && stdEnv.env.NUXT_VITE_NODE_OPTIONS) {
|
|
98
|
-
const origin = JSON.parse(stdEnv.env.NUXT_VITE_NODE_OPTIONS).baseURL.replace("/__nuxt_vite_node__", "");
|
|
99
|
-
host = ufo.withoutProtocol(origin);
|
|
100
|
-
protocol = origin.includes("https") ? "https" : "http";
|
|
101
|
-
}
|
|
102
|
-
if (typeof host === "string" && host.includes(":")) {
|
|
103
|
-
port = host.split(":").pop();
|
|
104
|
-
host = host.split(":")[0];
|
|
105
|
-
}
|
|
106
|
-
port = port ? `:${port}` : "";
|
|
107
|
-
return `${protocol}://${host}${port}/`;
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
exports.getSiteConfigStack = getSiteConfigStack;
|
|
111
|
-
exports.initSiteConfig = initSiteConfig;
|
|
112
|
-
exports.installNuxtSiteConfig = installNuxtSiteConfig;
|
|
113
|
-
exports.updateSiteConfig = updateSiteConfig;
|
|
114
|
-
exports.useNitroOrigin = useNitroOrigin;
|
|
115
|
-
exports.useSiteConfig = useSiteConfig;
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
import { tryUseNuxt, installModule, resolvePath } from '@nuxt/kit';
|
|
2
|
-
import { readPackageJSON } from 'pkg-types';
|
|
3
|
-
import { createSiteConfigStack, envSiteConfig } from 'site-config-stack';
|
|
4
|
-
import { withoutProtocol } from 'ufo';
|
|
5
|
-
import { env, isDevelopment } from 'std-env';
|
|
6
|
-
|
|
7
|
-
async function initSiteConfig(nuxt = tryUseNuxt()) {
|
|
8
|
-
if (!nuxt)
|
|
9
|
-
return;
|
|
10
|
-
let siteConfig = nuxt._siteConfig;
|
|
11
|
-
if (siteConfig)
|
|
12
|
-
return siteConfig;
|
|
13
|
-
siteConfig = createSiteConfigStack();
|
|
14
|
-
const rootDir = nuxt?.options.rootDir || process.cwd?.() || false;
|
|
15
|
-
siteConfig.push({
|
|
16
|
-
_context: "system",
|
|
17
|
-
_priority: -15,
|
|
18
|
-
name: rootDir ? rootDir.split("/").pop() : void 0,
|
|
19
|
-
env: process.env.NODE_ENV
|
|
20
|
-
});
|
|
21
|
-
if (rootDir) {
|
|
22
|
-
const pkgJson = await readPackageJSON(void 0, { startingFrom: rootDir });
|
|
23
|
-
if (pkgJson) {
|
|
24
|
-
siteConfig.push({
|
|
25
|
-
_context: "package.json",
|
|
26
|
-
_priority: -10,
|
|
27
|
-
name: pkgJson.name,
|
|
28
|
-
description: pkgJson.description
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
siteConfig.push({
|
|
33
|
-
_context: "vendorEnv",
|
|
34
|
-
_priority: -5,
|
|
35
|
-
url: [
|
|
36
|
-
// vercel
|
|
37
|
-
process.env.VERCEL_URL,
|
|
38
|
-
process.env.NUXT_ENV_VERCEL_URL,
|
|
39
|
-
// netlify
|
|
40
|
-
process.env.URL,
|
|
41
|
-
// cloudflare pages
|
|
42
|
-
process.env.CF_PAGES_URL
|
|
43
|
-
].find((k) => Boolean(k)),
|
|
44
|
-
name: [
|
|
45
|
-
// vercel
|
|
46
|
-
process.env.NUXT_ENV_VERCEL_GIT_REPO_SLUG,
|
|
47
|
-
// netlify
|
|
48
|
-
process.env.SITE_NAME
|
|
49
|
-
].find((k) => Boolean(k))
|
|
50
|
-
});
|
|
51
|
-
const runtimeConfig = nuxt.options.runtimeConfig;
|
|
52
|
-
const runtimeConfigEnvKeys = [
|
|
53
|
-
...Object.entries(runtimeConfig.site || {}).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v]),
|
|
54
|
-
...Object.entries([...Object.entries(runtimeConfig), ...Object.entries(runtimeConfig.public)]).filter(([k]) => k.startsWith("site")).map(([k, v]) => [k.replace(/^site/, ""), v])
|
|
55
|
-
];
|
|
56
|
-
siteConfig.push({
|
|
57
|
-
_priority: -2,
|
|
58
|
-
_context: "legacyRuntimeConfig",
|
|
59
|
-
...Object.fromEntries(runtimeConfigEnvKeys)
|
|
60
|
-
});
|
|
61
|
-
siteConfig.push({
|
|
62
|
-
_context: "buildEnv",
|
|
63
|
-
_priority: -1,
|
|
64
|
-
...envSiteConfig(process.env)
|
|
65
|
-
});
|
|
66
|
-
nuxt._siteConfig = siteConfig;
|
|
67
|
-
return siteConfig;
|
|
68
|
-
}
|
|
69
|
-
async function installNuxtSiteConfig(nuxt = tryUseNuxt()) {
|
|
70
|
-
await installModule(await resolvePath("nuxt-site-config"));
|
|
71
|
-
await initSiteConfig(nuxt);
|
|
72
|
-
}
|
|
73
|
-
function getSiteConfigStack(nuxt = tryUseNuxt()) {
|
|
74
|
-
if (!nuxt)
|
|
75
|
-
throw new Error("Nuxt context is missing.");
|
|
76
|
-
if (!nuxt._siteConfig)
|
|
77
|
-
throw new Error("Site config is not initialized. Make sure you are running your module after nuxt-site-config.");
|
|
78
|
-
return nuxt._siteConfig;
|
|
79
|
-
}
|
|
80
|
-
function updateSiteConfig(input, nuxt = tryUseNuxt()) {
|
|
81
|
-
const container = getSiteConfigStack(nuxt);
|
|
82
|
-
container.push(input);
|
|
83
|
-
}
|
|
84
|
-
function useSiteConfig(nuxt = tryUseNuxt()) {
|
|
85
|
-
const container = getSiteConfigStack(nuxt);
|
|
86
|
-
return container.get();
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
function useNitroOrigin() {
|
|
90
|
-
const cert = env.NITRO_SSL_CERT;
|
|
91
|
-
const key = env.NITRO_SSL_KEY;
|
|
92
|
-
let host = env.NITRO_HOST || env.HOST || false;
|
|
93
|
-
let port = env.NITRO_PORT || env.PORT || (isDevelopment ? 3e3 : false);
|
|
94
|
-
let protocol = cert && key || !isDevelopment ? "https" : "http";
|
|
95
|
-
if ((isDevelopment || env.prerender) && env.NUXT_VITE_NODE_OPTIONS) {
|
|
96
|
-
const origin = JSON.parse(env.NUXT_VITE_NODE_OPTIONS).baseURL.replace("/__nuxt_vite_node__", "");
|
|
97
|
-
host = withoutProtocol(origin);
|
|
98
|
-
protocol = origin.includes("https") ? "https" : "http";
|
|
99
|
-
}
|
|
100
|
-
if (typeof host === "string" && host.includes(":")) {
|
|
101
|
-
port = host.split(":").pop();
|
|
102
|
-
host = host.split(":")[0];
|
|
103
|
-
}
|
|
104
|
-
port = port ? `:${port}` : "";
|
|
105
|
-
return `${protocol}://${host}${port}/`;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
export { installNuxtSiteConfig as a, updateSiteConfig as b, useNitroOrigin as c, getSiteConfigStack as g, initSiteConfig as i, useSiteConfig as u };
|