@nexusts/config 0.8.4 → 0.9.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/config.module.d.ts +0 -1
- package/dist/index.js +1 -2
- package/dist/index.js.map +3 -3
- package/package.json +2 -2
package/dist/config.module.d.ts
CHANGED
package/dist/index.js
CHANGED
|
@@ -159,7 +159,6 @@ function readDotEnv(path) {
|
|
|
159
159
|
}
|
|
160
160
|
}
|
|
161
161
|
// packages/config/src/config.module.ts
|
|
162
|
-
import"reflect-metadata";
|
|
163
162
|
import { Module } from "@nexusts/core";
|
|
164
163
|
class ConfigModule {
|
|
165
164
|
static forRoot(options = {}) {
|
|
@@ -195,5 +194,5 @@ export {
|
|
|
195
194
|
ConfigModule
|
|
196
195
|
};
|
|
197
196
|
|
|
198
|
-
//# debugId=
|
|
197
|
+
//# debugId=D9E2E2947256DA4664756E2164756E21
|
|
199
198
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
"sources": ["../src/config.service.ts", "../src/config.module.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"/**\n * `ConfigService` — type-safe access to validated environment\n * variables and configuration values.\n *\n * Usage:\n * constructor(@Inject(ConfigService.TOKEN) private config: ConfigService<typeof schema>) {}\n *\n * const dbUrl = this.config.get('DATABASE_URL'); // string\n * const port = this.config.get('PORT', { default: 3000 }); // number\n *\n * For full type inference, parameterize the class with your schema:\n * class MyService {\n * constructor(@Inject(ConfigService.TOKEN) private config: ConfigService<typeof schema>) {}\n * }\n */\n\nimport { Inject, Injectable } from \"@nexusts/core\";\nimport type {\n\tConfigSchema,\n\tInferConfig,\n\tConfigOptions,\n\tLoadedConfig,\n} from \"./types.js\";\n\n@Injectable()\nexport class ConfigService<S extends ConfigSchema = ConfigSchema> {\n\t/** DI token — use with `@Inject(ConfigService.TOKEN)`. */\n\tstatic readonly TOKEN = Symbol.for(\"nexus:ConfigService\");\n\n\t/** The validated, fully-typed config. */\n\treadonly config: InferConfig<S>;\n\n\t#raw: Record<string, string | undefined>;\n\t#cache = new Map<string, unknown>();\n\t#strict: boolean;\n\n\tconstructor(\n\t\t@Inject(\"CONFIG_OPTIONS\") private readonly options: ConfigOptions<S> = {},\n\t) {\n\t\tconst loaded = loadConfig(options);\n\t\tthis.config = loaded.value as InferConfig<S>;\n\t\tthis.#raw = loaded.raw;\n\t\tthis.#strict = options.strict ?? false;\n\n\t\tif (loaded.errors.length > 0) {\n\t\t\tconst msg =\n\t\t\t\t`[nexus/config] Configuration validation failed:\\n` +\n\t\t\t\tloaded.errors.map((e) => ` - ${e}`).join(\"\\n\");\n\t\t\tif (options.exitOnError) {\n\t\t\t\tconsole.error(msg);\n\t\t\t\tprocess.exit(1);\n\t\t\t}\n\t\t\tthrow new Error(msg);\n\t\t}\n\t}\n\n\t/**\n\t * Look up a config value by key. Type-safe when the class is\n\t * parameterized with the schema (`ConfigService<typeof schema>`).\n\t */\n\tget<K extends keyof InferConfig<S>>(key: K): InferConfig<S>[K];\n\tget<K extends keyof InferConfig<S>>(\n\t\tkey: K,\n\t\toptions: { default: InferConfig<S>[K] },\n\t): InferConfig<S>[K];\n\tget(key: string): unknown;\n\tget(key: string, options?: { default?: unknown }): unknown {\n\t\tif (this.options.cache !== false && this.#cache.has(key)) {\n\t\t\treturn this.#cache.get(key);\n\t\t}\n\t\tconst fromConfig = (this.config as Record<string, unknown>)[key];\n\t\tif (fromConfig !== undefined) {\n\t\t\tif (this.options.cache !== false) this.#cache.set(key, fromConfig);\n\t\t\treturn fromConfig;\n\t\t}\n\t\tif (options && \"default\" in options) {\n\t\t\treturn options.default;\n\t\t}\n\t\tif (this.#strict) {\n\t\t\tthrow new Error(`[nexus/config] Unknown config key \"${key}\"`);\n\t\t}\n\t\treturn undefined;\n\t}\n\n\t/**\n\t * Look up a config value by key, throwing if it's missing.\n\t * Convenience for required values.\n\t */\n\trequire<K extends keyof InferConfig<S>>(key: K): InferConfig<S>[K] {\n\t\tconst v = this.get(key);\n\t\tif (v === undefined || v === null || v === \"\") {\n\t\t\tthrow new Error(`[nexus/config] Required config key \"${String(key)}\" is missing`);\n\t\t}\n\t\treturn v as InferConfig<S>[K];\n\t}\n\n\t/**\n\t * Read the raw env value (string), regardless of the schema.\n\t * Useful for debugging.\n\t */\n\tenv(key: string): string | undefined {\n\t\treturn this.#raw[key];\n\t}\n\n\t/** Reload from env. Drops the cache. */\n\treload(): void {\n\t\tthis.#cache.clear();\n\t\tconst loaded = loadConfig(this.options);\n\t\tObject.assign(this.config as object, loaded.value);\n\t\tthis.#raw = loaded.raw;\n\t}\n}\n\n/**\n * Internal: load + validate config.\n *\n * Order: static `load` overrides → `.env` files → `process.env`.\n * Env wins on conflict (most recent takes precedence).\n */\nfunction loadConfig<S extends ConfigSchema>(\n\toptions: ConfigOptions<S>,\n): LoadedConfig<S> {\n\t// 1) process.env as the base layer\n\tconst env: Record<string, string | undefined> = {};\n\tfor (const [k, v] of Object.entries(process.env)) {\n\t\tenv[k] = v;\n\t}\n\n\t// 2) .env files (overrides env defaults but env still wins)\n\tconst paths = options.envFilePaths ?? [];\n\n\t// When envFile is enabled (default), auto-load environment-specific files.\n\tconst useEnvFile = options.envFile !== false;\n\tif (useEnvFile) {\n\t\tconst nodeEnv = options.nodeEnv ?? process.env[\"NODE_ENV\"] ?? \"development\";\n\t\t// Base .env is always loaded first.\n\t\tif (!paths.includes(\".env\")) paths.unshift(\".env\");\n\t\t// .env.local — local overrides (should be .gitignored).\n\t\tif (!paths.includes(\".env.local\")) paths.push(\".env.local\");\n\t\t// .env.{NODE_ENV} — environment-specific (e.g. .env.production).\n\t\tconst envSpecific = `.env.${nodeEnv}`;\n\t\tif (!paths.includes(envSpecific)) paths.push(envSpecific);\n\t}\n\n\tfor (const p of paths) {\n\t\tconst file = readDotEnv(p);\n\t\tfor (const [k, v] of Object.entries(file)) {\n\t\t\tif (env[k] === undefined) env[k] = v;\n\t\t}\n\t}\n\n\t// 3) Static load() overrides\n\tconst merged: Record<string, unknown> = { ...env };\n\tif (options.load) {\n\t\tfor (const layer of options.load) {\n\t\t\tfor (const [k, v] of Object.entries(layer)) {\n\t\t\t\tif (!(k in env)) merged[k] = v;\n\t\t\t}\n\t\t}\n\t}\n\n\t// 4) Validate through Zod\n\tconst schema = options.schema;\n\tif (!schema) {\n\t\treturn { value: merged as InferConfig<S>, raw: env, errors: [] };\n\t}\n\tconst result = schema.safeParse(merged);\n\tif (result.success) {\n\t\treturn { value: result.data as InferConfig<S>, raw: env, errors: [] };\n\t}\n\tconst errors = result.error.issues.map(\n\t\t(i) => `${i.path.join(\".\") || \"(root)\"}: ${i.message}`,\n\t);\n\treturn { value: merged as InferConfig<S>, raw: env, errors };\n}\n\n/**\n * Minimal .env reader. Avoids a runtime dep on `dotenv`.\n * Supports `KEY=value` lines, comments, and quoted values.\n */\nfunction readDotEnv(path: string): Record<string, string> {\n\ttry {\n\t\t// Bun has Bun.file(); Node has node:fs. Use whichever is available.\n\t\t// eslint-disable-next-line @typescript-eslint/no-require-imports\n\t\tconst fs = require(\"node:fs\") as typeof import(\"node:fs\");\n\t\tif (!fs.existsSync(path)) return {};\n\t\tconst text = fs.readFileSync(path, \"utf8\");\n\t\tconst out: Record<string, string> = {};\n\t\tfor (const rawLine of text.split(/\\r?\\n/)) {\n\t\t\tconst line = rawLine.trim();\n\t\t\tif (!line || line.startsWith(\"#\")) continue;\n\t\t\tconst eq = line.indexOf(\"=\");\n\t\t\tif (eq < 0) continue;\n\t\t\tconst key = line.slice(0, eq).trim();\n\t\t\tlet value = line.slice(eq + 1).trim();\n\t\t\t// Strip inline comments after unquoted values.\n\t\t\tif (!value.startsWith('\"') && !value.startsWith(\"'\")) {\n\t\t\t\tconst hash = value.indexOf(\" #\");\n\t\t\t\tif (hash >= 0) value = value.slice(0, hash).trim();\n\t\t\t}\n\t\t\t// Strip surrounding quotes.\n\t\t\tif (\n\t\t\t\t(value.startsWith('\"') && value.endsWith('\"')) ||\n\t\t\t\t(value.startsWith(\"'\") && value.endsWith(\"'\"))\n\t\t\t) {\n\t\t\t\tvalue = value.slice(1, -1);\n\t\t\t}\n\t\t\tout[key] = value;\n\t\t}\n\t\treturn out;\n\t} catch {\n\t\treturn {};\n\t}\n}",
|
|
6
|
-
"/**\n * `ConfigModule` — drop-in module for typed, validated configuration.\n *\n * Usage:\n * // src/config/schema.ts\n * import { z } from 'zod';\n * export const configSchema = z.object({\n * DATABASE_URL: z.string().url(),\n * PORT: z.coerce.number().default(3000),\n * LOG_LEVEL: z.enum(['debug', 'info', 'warn', 'error']).default('info'),\n * });\n *\n * // src/app/app.module.ts\n * @Module({\n * imports: [\n * ConfigModule.forRoot({\n * schema: configSchema,\n * envFilePaths: ['.env.local', '.env'],\n * }),\n * ],\n * })\n * export class AppModule {}\n *\n * // any service\n * class MyService {\n * constructor(@Inject(ConfigService.TOKEN) private config: ConfigService<typeof configSchema>) {}\n * connect() {\n * return this.config.require('DATABASE_URL');\n * }\n * }\n */\n\nimport
|
|
6
|
+
"/**\n * `ConfigModule` — drop-in module for typed, validated configuration.\n *\n * Usage:\n * // src/config/schema.ts\n * import { z } from 'zod';\n * export const configSchema = z.object({\n * DATABASE_URL: z.string().url(),\n * PORT: z.coerce.number().default(3000),\n * LOG_LEVEL: z.enum(['debug', 'info', 'warn', 'error']).default('info'),\n * });\n *\n * // src/app/app.module.ts\n * @Module({\n * imports: [\n * ConfigModule.forRoot({\n * schema: configSchema,\n * envFilePaths: ['.env.local', '.env'],\n * }),\n * ],\n * })\n * export class AppModule {}\n *\n * // any service\n * class MyService {\n * constructor(@Inject(ConfigService.TOKEN) private config: ConfigService<typeof configSchema>) {}\n * connect() {\n * return this.config.require('DATABASE_URL');\n * }\n * }\n */\n\nimport { Module } from \"@nexusts/core\";\nimport { ConfigService } from \"./config.service.js\";\nimport type { ConfigOptions } from \"./types.js\";\nimport { safeGetMeta, safeDefineMeta, safeHasMeta } from \"@nexusts/core/di/safe-reflect\";\n\n@Module({\n\tproviders: [\n\t\tConfigService,\n\t\t{ provide: ConfigService.TOKEN, useExisting: ConfigService },\n\t],\n\texports: [ConfigService, ConfigService.TOKEN],\n})\nexport class ConfigModule {\n\tstatic forRoot(options: ConfigOptions = {}) {\n\t\t@Module({\n\t\t\tproviders: [\n\t\t\t\tConfigService,\n\t\t\t\t{ provide: ConfigService.TOKEN, useExisting: ConfigService },\n\t\t\t\t{ provide: \"CONFIG_OPTIONS\", useValue: options },\n\t\t\t],\n\t\t\texports: [ConfigService, ConfigService.TOKEN],\n\t\t})\n\t\tclass ConfiguredConfigModule {}\n\n\t\tObject.defineProperty(ConfiguredConfigModule, \"name\", {\n\t\t\tvalue: \"ConfiguredConfigModule\",\n\t\t});\n\n\t\treturn ConfiguredConfigModule;\n\t}\n}\n"
|
|
7
7
|
],
|
|
8
|
-
"mappings": "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
|
|
9
|
-
"debugId": "
|
|
8
|
+
"mappings": "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",
|
|
9
|
+
"debugId": "D9E2E2947256DA4664756E2164756E21",
|
|
10
10
|
"names": []
|
|
11
11
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nexusts/config",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.9.0",
|
|
4
4
|
"description": "Zod-validated configuration with layered loading",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
],
|
|
27
27
|
"license": "MIT",
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"@nexusts/core": "^0.
|
|
29
|
+
"@nexusts/core": "^0.9.0"
|
|
30
30
|
},
|
|
31
31
|
"repository": {
|
|
32
32
|
"type": "git",
|