nuxt-site-config 2.0.0-beta.0
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/dist/build.d.ts +5 -0
- package/dist/build.mjs +63 -0
- package/dist/module.cjs +5 -0
- package/dist/module.d.ts +11 -0
- package/dist/module.json +9 -0
- package/dist/module.mjs +20 -0
- package/dist/runtime/useSiteConfig.d.ts +2 -0
- package/dist/runtime/useSiteConfig.mjs +28 -0
- package/dist/type-dfe3e7b7.d.ts +12 -0
- package/dist/types.d.ts +17 -0
- package/package.json +44 -0
package/dist/build.d.ts
ADDED
package/dist/build.mjs
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { tryUseNuxt } from '@nuxt/kit';
|
|
2
|
+
import { withHttp, withHttps } from 'ufo';
|
|
3
|
+
import defu from 'defu';
|
|
4
|
+
|
|
5
|
+
const SITE_CONFIG_ENV = {
|
|
6
|
+
name: process.env.NUXT_PUBLIC_SITE_NAME,
|
|
7
|
+
url: process.env.NUXT_PUBLIC_SITE_URL,
|
|
8
|
+
description: process.env.NUXT_PUBLIC_SITE_DESCRIPTION,
|
|
9
|
+
image: process.env.NUXT_PUBLIC_SITE_IMAGE,
|
|
10
|
+
index: String(process.env.NUXT_PUBLIC_SITE_INDEX) !== "false",
|
|
11
|
+
titleSeparator: process.env.NUXT_PUBLIC_SITE_TITLE_SEPARATOR,
|
|
12
|
+
trailingSlash: String(process.env.NUXT_PUBLIC_SITE_TRAILING_SLASH) !== "false",
|
|
13
|
+
language: process.env.NUXT_PUBLIC_SITE_LANGUAGE
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
const _siteConfigOverrides = {};
|
|
17
|
+
const NITRO_ENV_URL = [
|
|
18
|
+
process.env.NUXT_PUBLIC_VERCEL_URL,
|
|
19
|
+
// vercel
|
|
20
|
+
process.env.NUXT_PUBLIC_URL,
|
|
21
|
+
// netlify
|
|
22
|
+
process.env.NUXT_PUBLIC_CF_PAGES_URL
|
|
23
|
+
// cloudflare pages
|
|
24
|
+
];
|
|
25
|
+
function overrideSiteConfig(overrides = {}) {
|
|
26
|
+
for (const k of Object.keys(overrides))
|
|
27
|
+
_siteConfigOverrides[k] = overrides[k];
|
|
28
|
+
}
|
|
29
|
+
function createSiteConfig(input) {
|
|
30
|
+
const nitroEnvConfig = {};
|
|
31
|
+
const nitroUrl = NITRO_ENV_URL.find((k) => Boolean(k));
|
|
32
|
+
if (nitroUrl)
|
|
33
|
+
nitroEnvConfig.url = nitroUrl;
|
|
34
|
+
for (const k of Object.keys(SITE_CONFIG_ENV)) {
|
|
35
|
+
if (SITE_CONFIG_ENV[k])
|
|
36
|
+
nitroEnvConfig[k] = SITE_CONFIG_ENV[k];
|
|
37
|
+
}
|
|
38
|
+
const config = defu(_siteConfigOverrides, nitroEnvConfig, input.runtimeConfig || {}, input.contextConfig || {});
|
|
39
|
+
if (typeof config.index !== "undefined")
|
|
40
|
+
config.index = String(config.index) !== "false";
|
|
41
|
+
else
|
|
42
|
+
config.index = process.env.NODE_ENV === "production";
|
|
43
|
+
if (config.url && !config.url.startsWith("http"))
|
|
44
|
+
config.url = config.url.includes("localhost") ? withHttp(config.url) : withHttps(config.url);
|
|
45
|
+
return config;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
function useSiteConfig(overrides = {}) {
|
|
49
|
+
if (Object.keys(overrides))
|
|
50
|
+
overrideSiteConfig(overrides);
|
|
51
|
+
const runtimeConfig = {};
|
|
52
|
+
const nuxt = tryUseNuxt();
|
|
53
|
+
if (nuxt) {
|
|
54
|
+
for (const k of Object.keys(SITE_CONFIG_ENV)) {
|
|
55
|
+
const env = runtimeConfig[k] = nuxt?.options.runtimeConfig.public.site[k];
|
|
56
|
+
if (env)
|
|
57
|
+
runtimeConfig[k] = env;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return createSiteConfig({ runtimeConfig });
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export { useSiteConfig };
|
package/dist/module.cjs
ADDED
package/dist/module.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as _nuxt_schema from '@nuxt/schema';
|
|
2
|
+
import { S as SiteConfig } from './type-dfe3e7b7.js';
|
|
3
|
+
|
|
4
|
+
interface ModuleOptions extends SiteConfig {
|
|
5
|
+
}
|
|
6
|
+
interface ModulePublicRuntimeConfig {
|
|
7
|
+
site: SiteConfig;
|
|
8
|
+
}
|
|
9
|
+
declare const _default: _nuxt_schema.NuxtModule<ModuleOptions>;
|
|
10
|
+
|
|
11
|
+
export { ModuleOptions, ModulePublicRuntimeConfig, _default as default };
|
package/dist/module.json
ADDED
package/dist/module.mjs
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineNuxtModule, createResolver, addImportsDir } from '@nuxt/kit';
|
|
2
|
+
import defu from 'defu';
|
|
3
|
+
|
|
4
|
+
const module = defineNuxtModule({
|
|
5
|
+
meta: {
|
|
6
|
+
name: "nuxt-site-config",
|
|
7
|
+
compatibility: {
|
|
8
|
+
nuxt: "^3.5.0",
|
|
9
|
+
bridge: false
|
|
10
|
+
},
|
|
11
|
+
configKey: "site"
|
|
12
|
+
},
|
|
13
|
+
async setup(config, nuxt) {
|
|
14
|
+
nuxt.options.runtimeConfig.public.site = defu(config, nuxt.options.runtimeConfig.public.site || {});
|
|
15
|
+
const { resolve } = createResolver(import.meta.url);
|
|
16
|
+
addImportsDir(resolve("./runtime/composables"));
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
|
|
20
|
+
export { module as default };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { joinURL } from "ufo";
|
|
2
|
+
import { getRequestURL } from "h3";
|
|
3
|
+
import { SITE_CONFIG_ENV } from "../const";
|
|
4
|
+
import { createSiteConfig, overrideSiteConfig } from "../shared";
|
|
5
|
+
import { useAppConfig, useRequestEvent, useRuntimeConfig } from "#imports";
|
|
6
|
+
function useRequestURL() {
|
|
7
|
+
if (process.server) {
|
|
8
|
+
const { baseURL } = useRuntimeConfig().app;
|
|
9
|
+
const url = getRequestURL(useRequestEvent());
|
|
10
|
+
url.pathname = joinURL(baseURL, url.pathname);
|
|
11
|
+
return url;
|
|
12
|
+
}
|
|
13
|
+
return new URL(window.location.href);
|
|
14
|
+
}
|
|
15
|
+
export function useSiteConfig(overrides = {}) {
|
|
16
|
+
if (Object.keys(overrides))
|
|
17
|
+
overrideSiteConfig(overrides);
|
|
18
|
+
const { baseURL } = useRuntimeConfig().app;
|
|
19
|
+
const contextConfig = {
|
|
20
|
+
url: joinURL(useRequestURL().hostname, baseURL)
|
|
21
|
+
};
|
|
22
|
+
const { public: publicRuntimeConfig } = useRuntimeConfig();
|
|
23
|
+
const appConfig = useAppConfig();
|
|
24
|
+
const runtimeConfig = {};
|
|
25
|
+
for (const k of SITE_CONFIG_ENV)
|
|
26
|
+
runtimeConfig[k] = appConfig.site?.[k] || publicRuntimeConfig.site?.[k];
|
|
27
|
+
return createSiteConfig({ runtimeConfig, contextConfig });
|
|
28
|
+
}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
|
|
2
|
+
import { ModuleOptions, ModulePublicRuntimeConfig } from './module'
|
|
3
|
+
|
|
4
|
+
declare module '@nuxt/schema' {
|
|
5
|
+
interface NuxtConfig { ['site']?: Partial<ModuleOptions> }
|
|
6
|
+
interface NuxtOptions { ['site']?: ModuleOptions }
|
|
7
|
+
interface PublicRuntimeConfig extends ModulePublicRuntimeConfig {}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
declare module 'nuxt/schema' {
|
|
11
|
+
interface NuxtConfig { ['site']?: Partial<ModuleOptions> }
|
|
12
|
+
interface NuxtOptions { ['site']?: ModuleOptions }
|
|
13
|
+
interface PublicRuntimeConfig extends ModulePublicRuntimeConfig {}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
export { ModuleOptions, ModulePublicRuntimeConfig, default } from './module'
|
package/package.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "nuxt-site-config",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "2.0.0-beta.0",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"funding": "https://github.com/sponsors/harlan-zw",
|
|
7
|
+
"homepage": "https://github.com/harlan-zw/nuxt-seo-kit#readme",
|
|
8
|
+
"repository": {
|
|
9
|
+
"type": "git",
|
|
10
|
+
"url": "git+https://github.com/harlan-zw/nuxt-seo-kit.git",
|
|
11
|
+
"directory": "site-config"
|
|
12
|
+
},
|
|
13
|
+
"bugs": {
|
|
14
|
+
"url": "https://github.com/harlan-zw/nuxt-seo-kit/issues"
|
|
15
|
+
},
|
|
16
|
+
"sideEffects": false,
|
|
17
|
+
"exports": {
|
|
18
|
+
".": {
|
|
19
|
+
"types": "./dist/module.d.ts",
|
|
20
|
+
"import": "./dist/module.mjs"
|
|
21
|
+
},
|
|
22
|
+
"./build": {
|
|
23
|
+
"types": "./dist/build.d.ts",
|
|
24
|
+
"import": "./dist/build.mjs"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"main": "dist/module.mjs",
|
|
28
|
+
"module": "dist/module.mjs",
|
|
29
|
+
"types": "dist/module.d.ts",
|
|
30
|
+
"files": [
|
|
31
|
+
"dist",
|
|
32
|
+
"*.d.ts"
|
|
33
|
+
],
|
|
34
|
+
"dependencies": {
|
|
35
|
+
"@nuxt/kit": "^3.5.1",
|
|
36
|
+
"@nuxt/module-builder": "^0.3.1",
|
|
37
|
+
"defu": "^6.1.2",
|
|
38
|
+
"ufo": "^1.1.2"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"build": "nuxt-module-build",
|
|
42
|
+
"stub": "unbuild --stub"
|
|
43
|
+
}
|
|
44
|
+
}
|