@danceroutine/tango-config 1.11.1 → 1.11.2
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/chunk-D7D4PA-g.js +13 -0
- package/dist/index-BOZCeVv9.d.ts +72 -0
- package/dist/index-DTChxija.d.ts +39 -0
- package/dist/index.d.ts +3 -9
- package/dist/index.js +3 -4
- package/dist/loader/index.d.ts +2 -8
- package/dist/loader/index.js +2 -4
- package/dist/{loader-D5ezTVNH.js → loader-CxZbw338.js} +20 -17
- package/dist/loader-CxZbw338.js.map +1 -0
- package/dist/schema/index.d.ts +2 -13
- package/dist/schema/index.js +2 -3
- package/dist/schema-DJCXNVzy.js +71 -0
- package/dist/schema-DJCXNVzy.js.map +1 -0
- package/package.json +2 -2
- package/dist/loader/LoadedConfig.d.ts +0 -9
- package/dist/loader/defineConfig.d.ts +0 -5
- package/dist/loader/loadConfig.d.ts +0 -5
- package/dist/loader/loadConfigFromProjectRoot.d.ts +0 -9
- package/dist/loader-D5ezTVNH.js.map +0 -1
- package/dist/schema/AdapterName.d.ts +0 -4
- package/dist/schema/DbConfig.d.ts +0 -14
- package/dist/schema/EnvConfig.d.ts +0 -11
- package/dist/schema/MigrationsConfig.d.ts +0 -8
- package/dist/schema/TangoConfig.d.ts +0 -17
- package/dist/schema/internal/InternalAdapterName.d.ts +0 -4
- package/dist/schema/internal/InternalEnvName.d.ts +0 -5
- package/dist/schema-VrnHv-I7.js +0 -88
- package/dist/schema-VrnHv-I7.js.map +0 -1
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __exportAll = (all, no_symbols) => {
|
|
4
|
+
let target = {};
|
|
5
|
+
for (var name in all) __defProp(target, name, {
|
|
6
|
+
get: all[name],
|
|
7
|
+
enumerable: true
|
|
8
|
+
});
|
|
9
|
+
if (!no_symbols) __defProp(target, Symbol.toStringTag, { value: "Module" });
|
|
10
|
+
return target;
|
|
11
|
+
};
|
|
12
|
+
//#endregion
|
|
13
|
+
export { __exportAll as t };
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region src/schema/internal/InternalAdapterName.d.ts
|
|
4
|
+
declare const InternalAdapterName: {
|
|
5
|
+
readonly POSTGRES: "postgres";
|
|
6
|
+
readonly SQLITE: "sqlite";
|
|
7
|
+
};
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region src/schema/AdapterName.d.ts
|
|
10
|
+
type AdapterName = (typeof InternalAdapterName)[keyof typeof InternalAdapterName];
|
|
11
|
+
declare const AdapterNameSchema: z.ZodTypeAny;
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/schema/DbConfig.d.ts
|
|
14
|
+
type DbConfig = {
|
|
15
|
+
adapter: AdapterName;
|
|
16
|
+
url?: string;
|
|
17
|
+
host?: string;
|
|
18
|
+
port?: number;
|
|
19
|
+
database?: string;
|
|
20
|
+
user?: string;
|
|
21
|
+
password?: string;
|
|
22
|
+
filename?: string;
|
|
23
|
+
maxConnections: number;
|
|
24
|
+
};
|
|
25
|
+
declare const DbConfigSchema: z.ZodTypeAny;
|
|
26
|
+
//#endregion
|
|
27
|
+
//#region src/schema/MigrationsConfig.d.ts
|
|
28
|
+
type MigrationsConfig = {
|
|
29
|
+
dir: string;
|
|
30
|
+
online: boolean; /** When false, `tango migrate` exits without applying. Default `true`. */
|
|
31
|
+
autoApply: boolean;
|
|
32
|
+
};
|
|
33
|
+
declare const MigrationsConfigSchema: z.ZodTypeAny;
|
|
34
|
+
//#endregion
|
|
35
|
+
//#region src/schema/internal/InternalEnvName.d.ts
|
|
36
|
+
declare const InternalEnvName: {
|
|
37
|
+
readonly DEVELOPMENT: "development";
|
|
38
|
+
readonly TEST: "test";
|
|
39
|
+
readonly PRODUCTION: "production";
|
|
40
|
+
};
|
|
41
|
+
//#endregion
|
|
42
|
+
//#region src/schema/EnvConfig.d.ts
|
|
43
|
+
type EnvName = (typeof InternalEnvName)[keyof typeof InternalEnvName];
|
|
44
|
+
type EnvConfig = {
|
|
45
|
+
name: EnvName;
|
|
46
|
+
db: DbConfig;
|
|
47
|
+
migrations: MigrationsConfig;
|
|
48
|
+
};
|
|
49
|
+
declare const EnvConfigSchema: z.ZodTypeAny;
|
|
50
|
+
//#endregion
|
|
51
|
+
//#region src/schema/TangoConfig.d.ts
|
|
52
|
+
/**
|
|
53
|
+
* Root Tango framework configuration across deployment environments.
|
|
54
|
+
*/
|
|
55
|
+
type TangoConfig = {
|
|
56
|
+
current: EnvName;
|
|
57
|
+
environments: {
|
|
58
|
+
development: EnvConfig;
|
|
59
|
+
test: EnvConfig;
|
|
60
|
+
production: EnvConfig;
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
/**
|
|
64
|
+
* Runtime schema for validating Tango config files.
|
|
65
|
+
*/
|
|
66
|
+
declare const TangoConfigSchema: z.ZodTypeAny;
|
|
67
|
+
declare namespace index_d_exports {
|
|
68
|
+
export { AdapterName, AdapterNameSchema, DbConfig, DbConfigSchema, EnvConfig, EnvConfigSchema, EnvName, MigrationsConfig, MigrationsConfigSchema, TangoConfig, TangoConfigSchema };
|
|
69
|
+
}
|
|
70
|
+
//#endregion
|
|
71
|
+
export { EnvConfigSchema as a, MigrationsConfigSchema as c, AdapterName as d, AdapterNameSchema as f, EnvConfig as i, DbConfig as l, TangoConfig as n, EnvName as o, TangoConfigSchema as r, MigrationsConfig as s, index_d_exports as t, DbConfigSchema as u };
|
|
72
|
+
//# sourceMappingURL=index-BOZCeVv9.d.ts.map
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { i as EnvConfig, n as TangoConfig, o as EnvName } from "./index-BOZCeVv9.js";
|
|
2
|
+
|
|
3
|
+
//#region src/loader/LoadedConfig.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Fully resolved Tango configuration for a specific runtime environment.
|
|
6
|
+
*/
|
|
7
|
+
interface LoadedConfig {
|
|
8
|
+
cfg: TangoConfig;
|
|
9
|
+
env: EnvName;
|
|
10
|
+
current: EnvConfig;
|
|
11
|
+
}
|
|
12
|
+
//#endregion
|
|
13
|
+
//#region src/loader/defineConfig.d.ts
|
|
14
|
+
/**
|
|
15
|
+
* Define and validate Tango configuration at declaration time.
|
|
16
|
+
*/
|
|
17
|
+
declare function defineConfig(cfg: unknown): TangoConfig;
|
|
18
|
+
//#endregion
|
|
19
|
+
//#region src/loader/loadConfig.d.ts
|
|
20
|
+
/**
|
|
21
|
+
* Load, validate, and environment-resolve Tango configuration.
|
|
22
|
+
*/
|
|
23
|
+
declare function loadConfig(fromFile: () => unknown): LoadedConfig;
|
|
24
|
+
//#endregion
|
|
25
|
+
//#region src/loader/loadConfigFromProjectRoot.d.ts
|
|
26
|
+
interface ProjectConfigLoadOptions {
|
|
27
|
+
projectRoot?: string;
|
|
28
|
+
configPath?: string;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve, load, and validate `tango.config.*` from a project root.
|
|
32
|
+
*/
|
|
33
|
+
declare function loadConfigFromProjectRoot(options?: ProjectConfigLoadOptions): LoadedConfig;
|
|
34
|
+
declare namespace index_d_exports {
|
|
35
|
+
export { LoadedConfig, ProjectConfigLoadOptions, defineConfig, loadConfig, loadConfigFromProjectRoot };
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { defineConfig as a, loadConfig as i, ProjectConfigLoadOptions as n, LoadedConfig as o, loadConfigFromProjectRoot as r, index_d_exports as t };
|
|
39
|
+
//# sourceMappingURL=index-DTChxija.d.ts.map
|
package/dist/index.d.ts
CHANGED
|
@@ -1,9 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*/
|
|
5
|
-
export * as schema from './schema/index';
|
|
6
|
-
export * as loader from './loader/index';
|
|
7
|
-
export { defineConfig, loadConfig, loadConfigFromProjectRoot, type LoadedConfig, type ProjectConfigLoadOptions, } from './loader/index';
|
|
8
|
-
export type { AdapterName, DbConfig, EnvConfig, EnvName, MigrationsConfig, TangoConfig } from './schema/index';
|
|
9
|
-
export { AdapterNameSchema, DbConfigSchema, EnvConfigSchema, MigrationsConfigSchema, TangoConfigSchema, } from './schema/index';
|
|
1
|
+
import { a as EnvConfigSchema, c as MigrationsConfigSchema, d as AdapterName, f as AdapterNameSchema, i as EnvConfig, l as DbConfig, n as TangoConfig, o as EnvName, r as TangoConfigSchema, s as MigrationsConfig, t as index_d_exports$1, u as DbConfigSchema } from "./index-BOZCeVv9.js";
|
|
2
|
+
import { a as defineConfig, i as loadConfig, n as ProjectConfigLoadOptions, o as LoadedConfig, r as loadConfigFromProjectRoot, t as index_d_exports } from "./index-DTChxija.js";
|
|
3
|
+
export { type AdapterName, AdapterNameSchema, type DbConfig, DbConfigSchema, type EnvConfig, EnvConfigSchema, type EnvName, type LoadedConfig, type MigrationsConfig, MigrationsConfigSchema, type ProjectConfigLoadOptions, type TangoConfig, TangoConfigSchema, defineConfig, loadConfig, loadConfigFromProjectRoot, index_d_exports as loader, index_d_exports$1 as schema };
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { defineConfig,
|
|
3
|
-
|
|
4
|
-
export { AdapterNameSchema, DbConfigSchema, EnvConfigSchema, MigrationsConfigSchema, TangoConfigSchema, defineConfig, loadConfig, loadConfigFromProjectRoot, loader_exports as loader, schema_exports as schema };
|
|
1
|
+
import { a as DbConfigSchema, i as MigrationsConfigSchema, n as TangoConfigSchema, o as AdapterNameSchema, r as EnvConfigSchema, t as schema_exports } from "./schema-DJCXNVzy.js";
|
|
2
|
+
import { i as defineConfig, n as loadConfigFromProjectRoot, r as loadConfig, t as loader_exports } from "./loader-CxZbw338.js";
|
|
3
|
+
export { AdapterNameSchema, DbConfigSchema, EnvConfigSchema, MigrationsConfigSchema, TangoConfigSchema, defineConfig, loadConfig, loadConfigFromProjectRoot, loader_exports as loader, schema_exports as schema };
|
package/dist/loader/index.d.ts
CHANGED
|
@@ -1,8 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
export type { LoadedConfig } from './LoadedConfig';
|
|
5
|
-
export { defineConfig } from './defineConfig';
|
|
6
|
-
export { loadConfig } from './loadConfig';
|
|
7
|
-
export { loadConfigFromProjectRoot } from './loadConfigFromProjectRoot';
|
|
8
|
-
export type { ProjectConfigLoadOptions } from './loadConfigFromProjectRoot';
|
|
1
|
+
import { a as defineConfig, i as loadConfig, n as ProjectConfigLoadOptions, o as LoadedConfig, r as loadConfigFromProjectRoot } from "../index-DTChxija.js";
|
|
2
|
+
export { type LoadedConfig, type ProjectConfigLoadOptions, defineConfig, loadConfig, loadConfigFromProjectRoot };
|
package/dist/loader/index.js
CHANGED
|
@@ -1,4 +1,2 @@
|
|
|
1
|
-
import "../
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export { defineConfig, loadConfig, loadConfigFromProjectRoot };
|
|
1
|
+
import { i as defineConfig, n as loadConfigFromProjectRoot, r as loadConfig } from "../loader-CxZbw338.js";
|
|
2
|
+
export { defineConfig, loadConfig, loadConfigFromProjectRoot };
|
|
@@ -1,25 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { t as __exportAll } from "./chunk-D7D4PA-g.js";
|
|
2
|
+
import { n as TangoConfigSchema } from "./schema-DJCXNVzy.js";
|
|
3
|
+
import { config } from "dotenv";
|
|
3
4
|
import { existsSync } from "node:fs";
|
|
4
5
|
import { resolve } from "node:path";
|
|
5
6
|
import { createJiti } from "jiti";
|
|
6
|
-
|
|
7
7
|
//#region src/loader/defineConfig.ts
|
|
8
|
+
/**
|
|
9
|
+
* Define and validate Tango configuration at declaration time.
|
|
10
|
+
*/
|
|
8
11
|
function defineConfig(cfg) {
|
|
9
12
|
return TangoConfigSchema.parse(cfg);
|
|
10
13
|
}
|
|
11
|
-
|
|
12
14
|
//#endregion
|
|
13
15
|
//#region src/loader/loadConfig.ts
|
|
16
|
+
/**
|
|
17
|
+
* Load, validate, and environment-resolve Tango configuration.
|
|
18
|
+
*/
|
|
14
19
|
function loadConfig(fromFile) {
|
|
15
|
-
|
|
20
|
+
config();
|
|
16
21
|
const cfg = TangoConfigSchema.parse(fromFile());
|
|
17
22
|
const env = cfg.current;
|
|
18
|
-
const current = mergeEnvOverrides(cfg.environments[env]);
|
|
19
23
|
return {
|
|
20
24
|
cfg,
|
|
21
25
|
env,
|
|
22
|
-
current
|
|
26
|
+
current: mergeEnvOverrides(cfg.environments[env])
|
|
23
27
|
};
|
|
24
28
|
}
|
|
25
29
|
/**
|
|
@@ -40,7 +44,6 @@ function mergeEnvOverrides(envCfg) {
|
|
|
40
44
|
if (env.TANGO_MIGRATIONS_ONLINE) result.migrations.online = env.TANGO_MIGRATIONS_ONLINE === "true";
|
|
41
45
|
return result;
|
|
42
46
|
}
|
|
43
|
-
|
|
44
47
|
//#endregion
|
|
45
48
|
//#region src/loader/loadConfigFromProjectRoot.ts
|
|
46
49
|
const DEFAULT_CONFIG_FILENAMES = [
|
|
@@ -63,26 +66,26 @@ function resolveConfigPath(projectRoot, explicitPath) {
|
|
|
63
66
|
}
|
|
64
67
|
throw new Error(`Unable to find Tango config in '${projectRoot}'. Expected one of: ${DEFAULT_CONFIG_FILENAMES.join(", ")}.`);
|
|
65
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Resolve, load, and validate `tango.config.*` from a project root.
|
|
71
|
+
*/
|
|
66
72
|
function loadConfigFromProjectRoot(options = {}) {
|
|
67
73
|
const projectRoot = options.projectRoot ?? process.cwd();
|
|
68
74
|
const configPath = resolveConfigPath(projectRoot, options.configPath);
|
|
69
|
-
const
|
|
75
|
+
const loaded = createJiti(resolve(projectRoot, "package.json"), {
|
|
70
76
|
interopDefault: true,
|
|
71
77
|
moduleCache: true
|
|
72
|
-
});
|
|
73
|
-
const loaded = jiti(configPath);
|
|
78
|
+
})(configPath);
|
|
74
79
|
return loadConfig(() => loaded);
|
|
75
80
|
}
|
|
76
|
-
|
|
77
81
|
//#endregion
|
|
78
82
|
//#region src/loader/index.ts
|
|
79
|
-
var loader_exports = {
|
|
80
|
-
__export(loader_exports, {
|
|
83
|
+
var loader_exports = /* @__PURE__ */ __exportAll({
|
|
81
84
|
defineConfig: () => defineConfig,
|
|
82
85
|
loadConfig: () => loadConfig,
|
|
83
86
|
loadConfigFromProjectRoot: () => loadConfigFromProjectRoot
|
|
84
87
|
});
|
|
85
|
-
|
|
86
88
|
//#endregion
|
|
87
|
-
export { defineConfig
|
|
88
|
-
|
|
89
|
+
export { defineConfig as i, loadConfigFromProjectRoot as n, loadConfig as r, loader_exports as t };
|
|
90
|
+
|
|
91
|
+
//# sourceMappingURL=loader-CxZbw338.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"loader-CxZbw338.js","names":[],"sources":["../src/loader/defineConfig.ts","../src/loader/loadConfig.ts","../src/loader/loadConfigFromProjectRoot.ts","../src/loader/index.ts"],"sourcesContent":["import { TangoConfigSchema, type TangoConfig } from '../schema/index';\n\n/**\n * Define and validate Tango configuration at declaration time.\n */\nexport function defineConfig(cfg: unknown): TangoConfig {\n return TangoConfigSchema.parse(cfg) as TangoConfig;\n}\n","import { config as loadDotEnv } from 'dotenv';\nimport { TangoConfigSchema, type EnvConfig, type TangoConfig } from '../schema/index';\nimport type { LoadedConfig } from './LoadedConfig';\n\n/**\n * Load, validate, and environment-resolve Tango configuration.\n */\nexport function loadConfig(fromFile: () => unknown): LoadedConfig {\n loadDotEnv();\n\n const cfg = TangoConfigSchema.parse(fromFile()) as TangoConfig;\n const env = cfg.current;\n const current = mergeEnvOverrides(cfg.environments[env]);\n\n return { cfg, env, current };\n}\n\n/**\n * Merge process environment overrides into a base environment config.\n */\nfunction mergeEnvOverrides(envCfg: EnvConfig): EnvConfig {\n const result = structuredClone(envCfg);\n const env = process.env;\n\n if (env.TANGO_DB_ADAPTER) {\n result.db.adapter = env.TANGO_DB_ADAPTER as 'postgres' | 'sqlite';\n }\n\n if (env.DATABASE_URL || env.TANGO_DATABASE_URL) {\n result.db.url = env.TANGO_DATABASE_URL || env.DATABASE_URL;\n }\n\n if (env.TANGO_DB_HOST) result.db.host = env.TANGO_DB_HOST;\n if (env.TANGO_DB_PORT) result.db.port = Number(env.TANGO_DB_PORT);\n if (env.TANGO_DB_NAME) result.db.database = env.TANGO_DB_NAME;\n if (env.TANGO_DB_USER) result.db.user = env.TANGO_DB_USER;\n if (env.TANGO_DB_PASSWORD) result.db.password = env.TANGO_DB_PASSWORD;\n if (env.TANGO_SQLITE_FILENAME) result.db.filename = env.TANGO_SQLITE_FILENAME;\n\n if (env.TANGO_MIGRATIONS_DIR) result.migrations.dir = env.TANGO_MIGRATIONS_DIR;\n if (env.TANGO_MIGRATIONS_ONLINE) {\n result.migrations.online = env.TANGO_MIGRATIONS_ONLINE === 'true';\n }\n\n return result;\n}\n","import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { createJiti } from 'jiti';\nimport type { LoadedConfig } from './LoadedConfig';\nimport { loadConfig } from './loadConfig';\n\nconst DEFAULT_CONFIG_FILENAMES = [\n 'tango.config.ts',\n 'tango.config.mts',\n 'tango.config.cts',\n 'tango.config.js',\n 'tango.config.mjs',\n 'tango.config.cjs',\n] as const;\n\nexport interface ProjectConfigLoadOptions {\n projectRoot?: string;\n configPath?: string;\n}\n\nfunction resolveConfigPath(projectRoot: string, explicitPath?: string): string {\n if (explicitPath) {\n const absolutePath = resolve(projectRoot, explicitPath);\n if (!existsSync(absolutePath)) {\n throw new Error(`Unable to find Tango config at '${absolutePath}'.`);\n }\n return absolutePath;\n }\n\n for (const filename of DEFAULT_CONFIG_FILENAMES) {\n const absolutePath = resolve(projectRoot, filename);\n if (existsSync(absolutePath)) {\n return absolutePath;\n }\n }\n\n throw new Error(\n `Unable to find Tango config in '${projectRoot}'. Expected one of: ${DEFAULT_CONFIG_FILENAMES.join(', ')}.`\n );\n}\n\n/**\n * Resolve, load, and validate `tango.config.*` from a project root.\n */\nexport function loadConfigFromProjectRoot(options: ProjectConfigLoadOptions = {}): LoadedConfig {\n const projectRoot = options.projectRoot ?? process.cwd();\n const configPath = resolveConfigPath(projectRoot, options.configPath);\n const jiti = createJiti(resolve(projectRoot, 'package.json'), {\n interopDefault: true,\n moduleCache: true,\n });\n const loaded = jiti(configPath);\n\n return loadConfig(() => loaded);\n}\n","/**\n * Domain boundary barrel: centralizes this subdomain's public contract.\n */\n\nexport type { LoadedConfig } from './LoadedConfig';\nexport { defineConfig } from './defineConfig';\nexport { loadConfig } from './loadConfig';\nexport { loadConfigFromProjectRoot } from './loadConfigFromProjectRoot';\nexport type { ProjectConfigLoadOptions } from './loadConfigFromProjectRoot';\n"],"mappings":";;;;;;;;;;AAKA,SAAgB,aAAa,KAA2B;CACpD,OAAO,kBAAkB,MAAM,GAAG;AACtC;;;;;;ACAA,SAAgB,WAAW,UAAuC;CAC9D,OAAW;CAEX,MAAM,MAAM,kBAAkB,MAAM,SAAS,CAAC;CAC9C,MAAM,MAAM,IAAI;CAGhB,OAAO;EAAE;EAAK;EAAK,SAFH,kBAAkB,IAAI,aAAa,IAE1B;CAAE;AAC/B;;;;AAKA,SAAS,kBAAkB,QAA8B;CACrD,MAAM,SAAS,gBAAgB,MAAM;CACrC,MAAM,MAAM,QAAQ;CAEpB,IAAI,IAAI,kBACJ,OAAO,GAAG,UAAU,IAAI;CAG5B,IAAI,IAAI,gBAAgB,IAAI,oBACxB,OAAO,GAAG,MAAM,IAAI,sBAAsB,IAAI;CAGlD,IAAI,IAAI,eAAe,OAAO,GAAG,OAAO,IAAI;CAC5C,IAAI,IAAI,eAAe,OAAO,GAAG,OAAO,OAAO,IAAI,aAAa;CAChE,IAAI,IAAI,eAAe,OAAO,GAAG,WAAW,IAAI;CAChD,IAAI,IAAI,eAAe,OAAO,GAAG,OAAO,IAAI;CAC5C,IAAI,IAAI,mBAAmB,OAAO,GAAG,WAAW,IAAI;CACpD,IAAI,IAAI,uBAAuB,OAAO,GAAG,WAAW,IAAI;CAExD,IAAI,IAAI,sBAAsB,OAAO,WAAW,MAAM,IAAI;CAC1D,IAAI,IAAI,yBACJ,OAAO,WAAW,SAAS,IAAI,4BAA4B;CAG/D,OAAO;AACX;;;ACvCA,MAAM,2BAA2B;CAC7B;CACA;CACA;CACA;CACA;CACA;AACJ;AAOA,SAAS,kBAAkB,aAAqB,cAA+B;CAC3E,IAAI,cAAc;EACd,MAAM,eAAe,QAAQ,aAAa,YAAY;EACtD,IAAI,CAAC,WAAW,YAAY,GACxB,MAAM,IAAI,MAAM,mCAAmC,aAAa,GAAG;EAEvE,OAAO;CACX;CAEA,KAAK,MAAM,YAAY,0BAA0B;EAC7C,MAAM,eAAe,QAAQ,aAAa,QAAQ;EAClD,IAAI,WAAW,YAAY,GACvB,OAAO;CAEf;CAEA,MAAM,IAAI,MACN,mCAAmC,YAAY,sBAAsB,yBAAyB,KAAK,IAAI,EAAE,EAC7G;AACJ;;;;AAKA,SAAgB,0BAA0B,UAAoC,CAAC,GAAiB;CAC5F,MAAM,cAAc,QAAQ,eAAe,QAAQ,IAAI;CACvD,MAAM,aAAa,kBAAkB,aAAa,QAAQ,UAAU;CAKpE,MAAM,SAJO,WAAW,QAAQ,aAAa,cAAc,GAAG;EAC1D,gBAAgB;EAChB,aAAa;CACjB,CACkB,EAAE,UAAU;CAE9B,OAAO,iBAAiB,MAAM;AAClC"}
|
package/dist/schema/index.d.ts
CHANGED
|
@@ -1,13 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
*/
|
|
4
|
-
export type { AdapterName } from './AdapterName';
|
|
5
|
-
export { AdapterNameSchema } from './AdapterName';
|
|
6
|
-
export type { DbConfig } from './DbConfig';
|
|
7
|
-
export { DbConfigSchema } from './DbConfig';
|
|
8
|
-
export type { MigrationsConfig } from './MigrationsConfig';
|
|
9
|
-
export { MigrationsConfigSchema } from './MigrationsConfig';
|
|
10
|
-
export type { EnvConfig, EnvName } from './EnvConfig';
|
|
11
|
-
export { EnvConfigSchema } from './EnvConfig';
|
|
12
|
-
export type { TangoConfig } from './TangoConfig';
|
|
13
|
-
export { TangoConfigSchema } from './TangoConfig';
|
|
1
|
+
import { a as EnvConfigSchema, c as MigrationsConfigSchema, d as AdapterName, f as AdapterNameSchema, i as EnvConfig, l as DbConfig, n as TangoConfig, o as EnvName, r as TangoConfigSchema, s as MigrationsConfig, u as DbConfigSchema } from "../index-BOZCeVv9.js";
|
|
2
|
+
export { type AdapterName, AdapterNameSchema, type DbConfig, DbConfigSchema, type EnvConfig, EnvConfigSchema, type EnvName, type MigrationsConfig, MigrationsConfigSchema, type TangoConfig, TangoConfigSchema };
|
package/dist/schema/index.js
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
export { AdapterNameSchema, DbConfigSchema, EnvConfigSchema, MigrationsConfigSchema, TangoConfigSchema };
|
|
1
|
+
import { a as DbConfigSchema, i as MigrationsConfigSchema, n as TangoConfigSchema, o as AdapterNameSchema, r as EnvConfigSchema } from "../schema-DJCXNVzy.js";
|
|
2
|
+
export { AdapterNameSchema, DbConfigSchema, EnvConfigSchema, MigrationsConfigSchema, TangoConfigSchema };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { t as __exportAll } from "./chunk-D7D4PA-g.js";
|
|
2
|
+
import { z } from "zod";
|
|
3
|
+
//#endregion
|
|
4
|
+
//#region src/schema/AdapterName.ts
|
|
5
|
+
const AdapterNameSchema = z.enum(Object.values({
|
|
6
|
+
POSTGRES: "postgres",
|
|
7
|
+
SQLITE: "sqlite"
|
|
8
|
+
}));
|
|
9
|
+
//#endregion
|
|
10
|
+
//#region src/schema/DbConfig.ts
|
|
11
|
+
const DbConfigSchema = z.object({
|
|
12
|
+
adapter: AdapterNameSchema,
|
|
13
|
+
url: z.string().optional(),
|
|
14
|
+
host: z.string().optional(),
|
|
15
|
+
port: z.coerce.number().optional(),
|
|
16
|
+
database: z.string().optional(),
|
|
17
|
+
user: z.string().optional(),
|
|
18
|
+
password: z.string().optional(),
|
|
19
|
+
filename: z.string().optional(),
|
|
20
|
+
maxConnections: z.coerce.number().default(10)
|
|
21
|
+
});
|
|
22
|
+
//#endregion
|
|
23
|
+
//#region src/schema/MigrationsConfig.ts
|
|
24
|
+
const MigrationsConfigSchema = z.object({
|
|
25
|
+
dir: z.string().default("migrations"),
|
|
26
|
+
online: z.boolean().default(false),
|
|
27
|
+
autoApply: z.boolean().default(true)
|
|
28
|
+
});
|
|
29
|
+
//#endregion
|
|
30
|
+
//#region src/schema/internal/InternalEnvName.ts
|
|
31
|
+
const InternalEnvName = {
|
|
32
|
+
DEVELOPMENT: "development",
|
|
33
|
+
TEST: "test",
|
|
34
|
+
PRODUCTION: "production"
|
|
35
|
+
};
|
|
36
|
+
//#endregion
|
|
37
|
+
//#region src/schema/EnvConfig.ts
|
|
38
|
+
const EnvConfigSchema = z.object({
|
|
39
|
+
name: z.enum(Object.values(InternalEnvName)),
|
|
40
|
+
db: DbConfigSchema,
|
|
41
|
+
migrations: MigrationsConfigSchema.default({
|
|
42
|
+
dir: "migrations",
|
|
43
|
+
online: false
|
|
44
|
+
})
|
|
45
|
+
});
|
|
46
|
+
//#endregion
|
|
47
|
+
//#region src/schema/TangoConfig.ts
|
|
48
|
+
/**
|
|
49
|
+
* Runtime schema for validating Tango config files.
|
|
50
|
+
*/
|
|
51
|
+
const TangoConfigSchema = z.object({
|
|
52
|
+
current: z.enum(Object.values(InternalEnvName)).default(InternalEnvName.DEVELOPMENT),
|
|
53
|
+
environments: z.object({
|
|
54
|
+
development: EnvConfigSchema,
|
|
55
|
+
test: EnvConfigSchema,
|
|
56
|
+
production: EnvConfigSchema
|
|
57
|
+
})
|
|
58
|
+
});
|
|
59
|
+
//#endregion
|
|
60
|
+
//#region src/schema/index.ts
|
|
61
|
+
var schema_exports = /* @__PURE__ */ __exportAll({
|
|
62
|
+
AdapterNameSchema: () => AdapterNameSchema,
|
|
63
|
+
DbConfigSchema: () => DbConfigSchema,
|
|
64
|
+
EnvConfigSchema: () => EnvConfigSchema,
|
|
65
|
+
MigrationsConfigSchema: () => MigrationsConfigSchema,
|
|
66
|
+
TangoConfigSchema: () => TangoConfigSchema
|
|
67
|
+
});
|
|
68
|
+
//#endregion
|
|
69
|
+
export { DbConfigSchema as a, MigrationsConfigSchema as i, TangoConfigSchema as n, AdapterNameSchema as o, EnvConfigSchema as r, schema_exports as t };
|
|
70
|
+
|
|
71
|
+
//# sourceMappingURL=schema-DJCXNVzy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-DJCXNVzy.js","names":[],"sources":["../src/schema/internal/InternalAdapterName.ts","../src/schema/AdapterName.ts","../src/schema/DbConfig.ts","../src/schema/MigrationsConfig.ts","../src/schema/internal/InternalEnvName.ts","../src/schema/EnvConfig.ts","../src/schema/TangoConfig.ts","../src/schema/index.ts"],"sourcesContent":["export const InternalAdapterName = {\n POSTGRES: 'postgres',\n SQLITE: 'sqlite',\n} as const;\n","import { z } from 'zod';\nimport { InternalAdapterName } from './internal/InternalAdapterName';\n\nexport type AdapterName = (typeof InternalAdapterName)[keyof typeof InternalAdapterName];\n\nexport const AdapterNameSchema: z.ZodTypeAny = z.enum(Object.values(InternalAdapterName));\n","import { z } from 'zod';\nimport { AdapterNameSchema, type AdapterName } from './AdapterName';\n\nexport type DbConfig = {\n adapter: AdapterName;\n url?: string;\n host?: string;\n port?: number;\n database?: string;\n user?: string;\n password?: string;\n filename?: string;\n maxConnections: number;\n};\n\nexport const DbConfigSchema: z.ZodTypeAny = z.object({\n adapter: AdapterNameSchema,\n url: z.string().optional(),\n host: z.string().optional(),\n port: z.coerce.number().optional(),\n database: z.string().optional(),\n user: z.string().optional(),\n password: z.string().optional(),\n filename: z.string().optional(),\n maxConnections: z.coerce.number().default(10),\n});\n","import { z } from 'zod';\n\nexport type MigrationsConfig = {\n dir: string;\n online: boolean;\n /** When false, `tango migrate` exits without applying. Default `true`. */\n autoApply: boolean;\n};\n\nexport const MigrationsConfigSchema: z.ZodTypeAny = z.object({\n dir: z.string().default('migrations'),\n online: z.boolean().default(false),\n autoApply: z.boolean().default(true),\n});\n","export const InternalEnvName = {\n DEVELOPMENT: 'development',\n TEST: 'test',\n PRODUCTION: 'production',\n} as const;\n","import { z } from 'zod';\nimport { DbConfigSchema, type DbConfig } from './DbConfig';\nimport { MigrationsConfigSchema, type MigrationsConfig } from './MigrationsConfig';\nimport { InternalEnvName } from './internal/InternalEnvName';\n\nexport type EnvName = (typeof InternalEnvName)[keyof typeof InternalEnvName];\n\nexport type EnvConfig = {\n name: EnvName;\n db: DbConfig;\n migrations: MigrationsConfig;\n};\n\nexport const EnvConfigSchema: z.ZodTypeAny = z.object({\n name: z.enum(Object.values(InternalEnvName)),\n db: DbConfigSchema,\n migrations: MigrationsConfigSchema.default({\n dir: 'migrations',\n online: false,\n }),\n});\n","import { z } from 'zod';\nimport { EnvConfigSchema, type EnvConfig, type EnvName } from './EnvConfig';\nimport { InternalEnvName } from './internal/InternalEnvName';\n\n/**\n * Root Tango framework configuration across deployment environments.\n */\nexport type TangoConfig = {\n current: EnvName;\n environments: {\n development: EnvConfig;\n test: EnvConfig;\n production: EnvConfig;\n };\n};\n\n/**\n * Runtime schema for validating Tango config files.\n */\nexport const TangoConfigSchema: z.ZodTypeAny = z.object({\n current: z.enum(Object.values(InternalEnvName)).default(InternalEnvName.DEVELOPMENT),\n environments: z.object({\n development: EnvConfigSchema,\n test: EnvConfigSchema,\n production: EnvConfigSchema,\n }),\n});\n","/**\n * Domain boundary barrel: centralizes this subdomain's public contract.\n */\n\nexport type { AdapterName } from './AdapterName';\nexport { AdapterNameSchema } from './AdapterName';\n\nexport type { DbConfig } from './DbConfig';\nexport { DbConfigSchema } from './DbConfig';\n\nexport type { MigrationsConfig } from './MigrationsConfig';\nexport { MigrationsConfigSchema } from './MigrationsConfig';\n\nexport type { EnvConfig, EnvName } from './EnvConfig';\nexport { EnvConfigSchema } from './EnvConfig';\n\nexport type { TangoConfig } from './TangoConfig';\nexport { TangoConfigSchema } from './TangoConfig';\n"],"mappings":";;;;ACKA,MAAa,oBAAkC,EAAE,KAAK,OAAO,OAAO;CDJhE,UAAU;CACV,QAAQ;ACGwD,CAAmB,CAAC;;;ACUxF,MAAa,iBAA+B,EAAE,OAAO;CACjD,SAAS;CACT,KAAK,EAAE,OAAO,EAAE,SAAS;CACzB,MAAM,EAAE,OAAO,EAAE,SAAS;CAC1B,MAAM,EAAE,OAAO,OAAO,EAAE,SAAS;CACjC,UAAU,EAAE,OAAO,EAAE,SAAS;CAC9B,MAAM,EAAE,OAAO,EAAE,SAAS;CAC1B,UAAU,EAAE,OAAO,EAAE,SAAS;CAC9B,UAAU,EAAE,OAAO,EAAE,SAAS;CAC9B,gBAAgB,EAAE,OAAO,OAAO,EAAE,QAAQ,EAAE;AAChD,CAAC;;;AChBD,MAAa,yBAAuC,EAAE,OAAO;CACzD,KAAK,EAAE,OAAO,EAAE,QAAQ,YAAY;CACpC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,KAAK;CACjC,WAAW,EAAE,QAAQ,EAAE,QAAQ,IAAI;AACvC,CAAC;;;ACbD,MAAa,kBAAkB;CAC3B,aAAa;CACb,MAAM;CACN,YAAY;AAChB;;;ACSA,MAAa,kBAAgC,EAAE,OAAO;CAClD,MAAM,EAAE,KAAK,OAAO,OAAO,eAAe,CAAC;CAC3C,IAAI;CACJ,YAAY,uBAAuB,QAAQ;EACvC,KAAK;EACL,QAAQ;CACZ,CAAC;AACL,CAAC;;;;;;ACDD,MAAa,oBAAkC,EAAE,OAAO;CACpD,SAAS,EAAE,KAAK,OAAO,OAAO,eAAe,CAAC,EAAE,QAAQ,gBAAgB,WAAW;CACnF,cAAc,EAAE,OAAO;EACnB,aAAa;EACb,MAAM;EACN,YAAY;CAChB,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@danceroutine/tango-config",
|
|
3
|
-
"version": "1.11.
|
|
3
|
+
"version": "1.11.2",
|
|
4
4
|
"description": "Configuration loader with environment profiles for Tango",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"devDependencies": {
|
|
44
44
|
"@types/node": "^22.9.0",
|
|
45
|
-
"tsdown": "^0.
|
|
45
|
+
"tsdown": "^0.22.1",
|
|
46
46
|
"typescript": "^5.6.3",
|
|
47
47
|
"vitest": "^4.1.7"
|
|
48
48
|
},
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import type { LoadedConfig } from './LoadedConfig';
|
|
2
|
-
export interface ProjectConfigLoadOptions {
|
|
3
|
-
projectRoot?: string;
|
|
4
|
-
configPath?: string;
|
|
5
|
-
}
|
|
6
|
-
/**
|
|
7
|
-
* Resolve, load, and validate `tango.config.*` from a project root.
|
|
8
|
-
*/
|
|
9
|
-
export declare function loadConfigFromProjectRoot(options?: ProjectConfigLoadOptions): LoadedConfig;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"loader-D5ezTVNH.js","names":["cfg: unknown","fromFile: () => unknown","envCfg: EnvConfig","projectRoot: string","explicitPath?: string","options: ProjectConfigLoadOptions"],"sources":["../src/loader/defineConfig.ts","../src/loader/loadConfig.ts","../src/loader/loadConfigFromProjectRoot.ts","../src/loader/index.ts"],"sourcesContent":["import { TangoConfigSchema, type TangoConfig } from '../schema/index';\n\n/**\n * Define and validate Tango configuration at declaration time.\n */\nexport function defineConfig(cfg: unknown): TangoConfig {\n return TangoConfigSchema.parse(cfg) as TangoConfig;\n}\n","import { config as loadDotEnv } from 'dotenv';\nimport { TangoConfigSchema, type EnvConfig, type TangoConfig } from '../schema/index';\nimport type { LoadedConfig } from './LoadedConfig';\n\n/**\n * Load, validate, and environment-resolve Tango configuration.\n */\nexport function loadConfig(fromFile: () => unknown): LoadedConfig {\n loadDotEnv();\n\n const cfg = TangoConfigSchema.parse(fromFile()) as TangoConfig;\n const env = cfg.current;\n const current = mergeEnvOverrides(cfg.environments[env]);\n\n return { cfg, env, current };\n}\n\n/**\n * Merge process environment overrides into a base environment config.\n */\nfunction mergeEnvOverrides(envCfg: EnvConfig): EnvConfig {\n const result = structuredClone(envCfg);\n const env = process.env;\n\n if (env.TANGO_DB_ADAPTER) {\n result.db.adapter = env.TANGO_DB_ADAPTER as 'postgres' | 'sqlite';\n }\n\n if (env.DATABASE_URL || env.TANGO_DATABASE_URL) {\n result.db.url = env.TANGO_DATABASE_URL || env.DATABASE_URL;\n }\n\n if (env.TANGO_DB_HOST) result.db.host = env.TANGO_DB_HOST;\n if (env.TANGO_DB_PORT) result.db.port = Number(env.TANGO_DB_PORT);\n if (env.TANGO_DB_NAME) result.db.database = env.TANGO_DB_NAME;\n if (env.TANGO_DB_USER) result.db.user = env.TANGO_DB_USER;\n if (env.TANGO_DB_PASSWORD) result.db.password = env.TANGO_DB_PASSWORD;\n if (env.TANGO_SQLITE_FILENAME) result.db.filename = env.TANGO_SQLITE_FILENAME;\n\n if (env.TANGO_MIGRATIONS_DIR) result.migrations.dir = env.TANGO_MIGRATIONS_DIR;\n if (env.TANGO_MIGRATIONS_ONLINE) {\n result.migrations.online = env.TANGO_MIGRATIONS_ONLINE === 'true';\n }\n\n return result;\n}\n","import { existsSync } from 'node:fs';\nimport { resolve } from 'node:path';\nimport { createJiti } from 'jiti';\nimport type { LoadedConfig } from './LoadedConfig';\nimport { loadConfig } from './loadConfig';\n\nconst DEFAULT_CONFIG_FILENAMES = [\n 'tango.config.ts',\n 'tango.config.mts',\n 'tango.config.cts',\n 'tango.config.js',\n 'tango.config.mjs',\n 'tango.config.cjs',\n] as const;\n\nexport interface ProjectConfigLoadOptions {\n projectRoot?: string;\n configPath?: string;\n}\n\nfunction resolveConfigPath(projectRoot: string, explicitPath?: string): string {\n if (explicitPath) {\n const absolutePath = resolve(projectRoot, explicitPath);\n if (!existsSync(absolutePath)) {\n throw new Error(`Unable to find Tango config at '${absolutePath}'.`);\n }\n return absolutePath;\n }\n\n for (const filename of DEFAULT_CONFIG_FILENAMES) {\n const absolutePath = resolve(projectRoot, filename);\n if (existsSync(absolutePath)) {\n return absolutePath;\n }\n }\n\n throw new Error(\n `Unable to find Tango config in '${projectRoot}'. Expected one of: ${DEFAULT_CONFIG_FILENAMES.join(', ')}.`\n );\n}\n\n/**\n * Resolve, load, and validate `tango.config.*` from a project root.\n */\nexport function loadConfigFromProjectRoot(options: ProjectConfigLoadOptions = {}): LoadedConfig {\n const projectRoot = options.projectRoot ?? process.cwd();\n const configPath = resolveConfigPath(projectRoot, options.configPath);\n const jiti = createJiti(resolve(projectRoot, 'package.json'), {\n interopDefault: true,\n moduleCache: true,\n });\n const loaded = jiti(configPath);\n\n return loadConfig(() => loaded);\n}\n","/**\n * Domain boundary barrel: centralizes this subdomain's public contract.\n */\n\nexport type { LoadedConfig } from './LoadedConfig';\nexport { defineConfig } from './defineConfig';\nexport { loadConfig } from './loadConfig';\nexport { loadConfigFromProjectRoot } from './loadConfigFromProjectRoot';\nexport type { ProjectConfigLoadOptions } from './loadConfigFromProjectRoot';\n"],"mappings":";;;;;;;AAKO,SAAS,aAAaA,KAA2B;AACpD,QAAO,kBAAkB,MAAM,IAAI;AACtC;;;;ACAM,SAAS,WAAWC,UAAuC;AAC9D,aAAY;CAEZ,MAAM,MAAM,kBAAkB,MAAM,UAAU,CAAC;CAC/C,MAAM,MAAM,IAAI;CAChB,MAAM,UAAU,kBAAkB,IAAI,aAAa,KAAK;AAExD,QAAO;EAAE;EAAK;EAAK;CAAS;AAC/B;;;;AAKD,SAAS,kBAAkBC,QAA8B;CACrD,MAAM,SAAS,gBAAgB,OAAO;CACtC,MAAM,MAAM,QAAQ;AAEpB,KAAI,IAAI,iBACJ,QAAO,GAAG,UAAU,IAAI;AAG5B,KAAI,IAAI,gBAAgB,IAAI,mBACxB,QAAO,GAAG,MAAM,IAAI,sBAAsB,IAAI;AAGlD,KAAI,IAAI,cAAe,QAAO,GAAG,OAAO,IAAI;AAC5C,KAAI,IAAI,cAAe,QAAO,GAAG,OAAO,OAAO,IAAI,cAAc;AACjE,KAAI,IAAI,cAAe,QAAO,GAAG,WAAW,IAAI;AAChD,KAAI,IAAI,cAAe,QAAO,GAAG,OAAO,IAAI;AAC5C,KAAI,IAAI,kBAAmB,QAAO,GAAG,WAAW,IAAI;AACpD,KAAI,IAAI,sBAAuB,QAAO,GAAG,WAAW,IAAI;AAExD,KAAI,IAAI,qBAAsB,QAAO,WAAW,MAAM,IAAI;AAC1D,KAAI,IAAI,wBACJ,QAAO,WAAW,SAAS,IAAI,4BAA4B;AAG/D,QAAO;AACV;;;;ACvCD,MAAM,2BAA2B;CAC7B;CACA;CACA;CACA;CACA;CACA;AACH;AAOD,SAAS,kBAAkBC,aAAqBC,cAA+B;AAC3E,KAAI,cAAc;EACd,MAAM,eAAe,QAAQ,aAAa,aAAa;AACvD,OAAK,WAAW,aAAa,CACzB,OAAM,IAAI,OAAO,kCAAkC,aAAa;AAEpE,SAAO;CACV;AAED,MAAK,MAAM,YAAY,0BAA0B;EAC7C,MAAM,eAAe,QAAQ,aAAa,SAAS;AACnD,MAAI,WAAW,aAAa,CACxB,QAAO;CAEd;AAED,OAAM,IAAI,OACL,kCAAkC,YAAY,sBAAsB,yBAAyB,KAAK,KAAK,CAAC;AAEhH;AAKM,SAAS,0BAA0BC,UAAoC,CAAE,GAAgB;CAC5F,MAAM,cAAc,QAAQ,eAAe,QAAQ,KAAK;CACxD,MAAM,aAAa,kBAAkB,aAAa,QAAQ,WAAW;CACrE,MAAM,OAAO,WAAW,QAAQ,aAAa,eAAe,EAAE;EAC1D,gBAAgB;EAChB,aAAa;CAChB,EAAC;CACF,MAAM,SAAS,KAAK,WAAW;AAE/B,QAAO,WAAW,MAAM,OAAO;AAClC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { type AdapterName } from './AdapterName';
|
|
3
|
-
export type DbConfig = {
|
|
4
|
-
adapter: AdapterName;
|
|
5
|
-
url?: string;
|
|
6
|
-
host?: string;
|
|
7
|
-
port?: number;
|
|
8
|
-
database?: string;
|
|
9
|
-
user?: string;
|
|
10
|
-
password?: string;
|
|
11
|
-
filename?: string;
|
|
12
|
-
maxConnections: number;
|
|
13
|
-
};
|
|
14
|
-
export declare const DbConfigSchema: z.ZodTypeAny;
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { type DbConfig } from './DbConfig';
|
|
3
|
-
import { type MigrationsConfig } from './MigrationsConfig';
|
|
4
|
-
import { InternalEnvName } from './internal/InternalEnvName';
|
|
5
|
-
export type EnvName = (typeof InternalEnvName)[keyof typeof InternalEnvName];
|
|
6
|
-
export type EnvConfig = {
|
|
7
|
-
name: EnvName;
|
|
8
|
-
db: DbConfig;
|
|
9
|
-
migrations: MigrationsConfig;
|
|
10
|
-
};
|
|
11
|
-
export declare const EnvConfigSchema: z.ZodTypeAny;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
|
-
import { type EnvConfig, type EnvName } from './EnvConfig';
|
|
3
|
-
/**
|
|
4
|
-
* Root Tango framework configuration across deployment environments.
|
|
5
|
-
*/
|
|
6
|
-
export type TangoConfig = {
|
|
7
|
-
current: EnvName;
|
|
8
|
-
environments: {
|
|
9
|
-
development: EnvConfig;
|
|
10
|
-
test: EnvConfig;
|
|
11
|
-
production: EnvConfig;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
/**
|
|
15
|
-
* Runtime schema for validating Tango config files.
|
|
16
|
-
*/
|
|
17
|
-
export declare const TangoConfigSchema: z.ZodTypeAny;
|
package/dist/schema-VrnHv-I7.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { z, z as z$1, z as z$2, z as z$3, z as z$4 } from "zod";
|
|
2
|
-
|
|
3
|
-
//#region rolldown:runtime
|
|
4
|
-
var __defProp = Object.defineProperty;
|
|
5
|
-
var __export = (target, all) => {
|
|
6
|
-
for (var name in all) __defProp(target, name, {
|
|
7
|
-
get: all[name],
|
|
8
|
-
enumerable: true
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
//#endregion
|
|
13
|
-
//#region src/schema/internal/InternalAdapterName.ts
|
|
14
|
-
const InternalAdapterName = {
|
|
15
|
-
POSTGRES: "postgres",
|
|
16
|
-
SQLITE: "sqlite"
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
//#endregion
|
|
20
|
-
//#region src/schema/AdapterName.ts
|
|
21
|
-
const AdapterNameSchema = z$4.enum(Object.values(InternalAdapterName));
|
|
22
|
-
|
|
23
|
-
//#endregion
|
|
24
|
-
//#region src/schema/DbConfig.ts
|
|
25
|
-
const DbConfigSchema = z$3.object({
|
|
26
|
-
adapter: AdapterNameSchema,
|
|
27
|
-
url: z$3.string().optional(),
|
|
28
|
-
host: z$3.string().optional(),
|
|
29
|
-
port: z$3.coerce.number().optional(),
|
|
30
|
-
database: z$3.string().optional(),
|
|
31
|
-
user: z$3.string().optional(),
|
|
32
|
-
password: z$3.string().optional(),
|
|
33
|
-
filename: z$3.string().optional(),
|
|
34
|
-
maxConnections: z$3.coerce.number().default(10)
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
//#endregion
|
|
38
|
-
//#region src/schema/MigrationsConfig.ts
|
|
39
|
-
const MigrationsConfigSchema = z$2.object({
|
|
40
|
-
dir: z$2.string().default("migrations"),
|
|
41
|
-
online: z$2.boolean().default(false),
|
|
42
|
-
autoApply: z$2.boolean().default(true)
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
//#endregion
|
|
46
|
-
//#region src/schema/internal/InternalEnvName.ts
|
|
47
|
-
const InternalEnvName = {
|
|
48
|
-
DEVELOPMENT: "development",
|
|
49
|
-
TEST: "test",
|
|
50
|
-
PRODUCTION: "production"
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
//#endregion
|
|
54
|
-
//#region src/schema/EnvConfig.ts
|
|
55
|
-
const EnvConfigSchema = z$1.object({
|
|
56
|
-
name: z$1.enum(Object.values(InternalEnvName)),
|
|
57
|
-
db: DbConfigSchema,
|
|
58
|
-
migrations: MigrationsConfigSchema.default({
|
|
59
|
-
dir: "migrations",
|
|
60
|
-
online: false
|
|
61
|
-
})
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
//#endregion
|
|
65
|
-
//#region src/schema/TangoConfig.ts
|
|
66
|
-
const TangoConfigSchema = z.object({
|
|
67
|
-
current: z.enum(Object.values(InternalEnvName)).default(InternalEnvName.DEVELOPMENT),
|
|
68
|
-
environments: z.object({
|
|
69
|
-
development: EnvConfigSchema,
|
|
70
|
-
test: EnvConfigSchema,
|
|
71
|
-
production: EnvConfigSchema
|
|
72
|
-
})
|
|
73
|
-
});
|
|
74
|
-
|
|
75
|
-
//#endregion
|
|
76
|
-
//#region src/schema/index.ts
|
|
77
|
-
var schema_exports = {};
|
|
78
|
-
__export(schema_exports, {
|
|
79
|
-
AdapterNameSchema: () => AdapterNameSchema,
|
|
80
|
-
DbConfigSchema: () => DbConfigSchema,
|
|
81
|
-
EnvConfigSchema: () => EnvConfigSchema,
|
|
82
|
-
MigrationsConfigSchema: () => MigrationsConfigSchema,
|
|
83
|
-
TangoConfigSchema: () => TangoConfigSchema
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
//#endregion
|
|
87
|
-
export { AdapterNameSchema, DbConfigSchema, EnvConfigSchema, MigrationsConfigSchema, TangoConfigSchema, __export, schema_exports };
|
|
88
|
-
//# sourceMappingURL=schema-VrnHv-I7.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema-VrnHv-I7.js","names":["AdapterNameSchema: z.ZodTypeAny","DbConfigSchema: z.ZodTypeAny","MigrationsConfigSchema: z.ZodTypeAny","EnvConfigSchema: z.ZodTypeAny","TangoConfigSchema: z.ZodTypeAny"],"sources":["../src/schema/internal/InternalAdapterName.ts","../src/schema/AdapterName.ts","../src/schema/DbConfig.ts","../src/schema/MigrationsConfig.ts","../src/schema/internal/InternalEnvName.ts","../src/schema/EnvConfig.ts","../src/schema/TangoConfig.ts","../src/schema/index.ts"],"sourcesContent":["export const InternalAdapterName = {\n POSTGRES: 'postgres',\n SQLITE: 'sqlite',\n} as const;\n","import { z } from 'zod';\nimport { InternalAdapterName } from './internal/InternalAdapterName';\n\nexport type AdapterName = (typeof InternalAdapterName)[keyof typeof InternalAdapterName];\n\nexport const AdapterNameSchema: z.ZodTypeAny = z.enum(Object.values(InternalAdapterName));\n","import { z } from 'zod';\nimport { AdapterNameSchema, type AdapterName } from './AdapterName';\n\nexport type DbConfig = {\n adapter: AdapterName;\n url?: string;\n host?: string;\n port?: number;\n database?: string;\n user?: string;\n password?: string;\n filename?: string;\n maxConnections: number;\n};\n\nexport const DbConfigSchema: z.ZodTypeAny = z.object({\n adapter: AdapterNameSchema,\n url: z.string().optional(),\n host: z.string().optional(),\n port: z.coerce.number().optional(),\n database: z.string().optional(),\n user: z.string().optional(),\n password: z.string().optional(),\n filename: z.string().optional(),\n maxConnections: z.coerce.number().default(10),\n});\n","import { z } from 'zod';\n\nexport type MigrationsConfig = {\n dir: string;\n online: boolean;\n /** When false, `tango migrate` exits without applying. Default `true`. */\n autoApply: boolean;\n};\n\nexport const MigrationsConfigSchema: z.ZodTypeAny = z.object({\n dir: z.string().default('migrations'),\n online: z.boolean().default(false),\n autoApply: z.boolean().default(true),\n});\n","export const InternalEnvName = {\n DEVELOPMENT: 'development',\n TEST: 'test',\n PRODUCTION: 'production',\n} as const;\n","import { z } from 'zod';\nimport { DbConfigSchema, type DbConfig } from './DbConfig';\nimport { MigrationsConfigSchema, type MigrationsConfig } from './MigrationsConfig';\nimport { InternalEnvName } from './internal/InternalEnvName';\n\nexport type EnvName = (typeof InternalEnvName)[keyof typeof InternalEnvName];\n\nexport type EnvConfig = {\n name: EnvName;\n db: DbConfig;\n migrations: MigrationsConfig;\n};\n\nexport const EnvConfigSchema: z.ZodTypeAny = z.object({\n name: z.enum(Object.values(InternalEnvName)),\n db: DbConfigSchema,\n migrations: MigrationsConfigSchema.default({\n dir: 'migrations',\n online: false,\n }),\n});\n","import { z } from 'zod';\nimport { EnvConfigSchema, type EnvConfig, type EnvName } from './EnvConfig';\nimport { InternalEnvName } from './internal/InternalEnvName';\n\n/**\n * Root Tango framework configuration across deployment environments.\n */\nexport type TangoConfig = {\n current: EnvName;\n environments: {\n development: EnvConfig;\n test: EnvConfig;\n production: EnvConfig;\n };\n};\n\n/**\n * Runtime schema for validating Tango config files.\n */\nexport const TangoConfigSchema: z.ZodTypeAny = z.object({\n current: z.enum(Object.values(InternalEnvName)).default(InternalEnvName.DEVELOPMENT),\n environments: z.object({\n development: EnvConfigSchema,\n test: EnvConfigSchema,\n production: EnvConfigSchema,\n }),\n});\n","/**\n * Domain boundary barrel: centralizes this subdomain's public contract.\n */\n\nexport type { AdapterName } from './AdapterName';\nexport { AdapterNameSchema } from './AdapterName';\n\nexport type { DbConfig } from './DbConfig';\nexport { DbConfigSchema } from './DbConfig';\n\nexport type { MigrationsConfig } from './MigrationsConfig';\nexport { MigrationsConfigSchema } from './MigrationsConfig';\n\nexport type { EnvConfig, EnvName } from './EnvConfig';\nexport { EnvConfigSchema } from './EnvConfig';\n\nexport type { TangoConfig } from './TangoConfig';\nexport { TangoConfigSchema } from './TangoConfig';\n"],"mappings":";;;;;;;;;;;;;MAAa,sBAAsB;CAC/B,UAAU;CACV,QAAQ;AACX;;;;MCEYA,oBAAkC,IAAE,KAAK,OAAO,OAAO,oBAAoB,CAAC;;;;MCU5EC,iBAA+B,IAAE,OAAO;CACjD,SAAS;CACT,KAAK,IAAE,QAAQ,CAAC,UAAU;CAC1B,MAAM,IAAE,QAAQ,CAAC,UAAU;CAC3B,MAAM,IAAE,OAAO,QAAQ,CAAC,UAAU;CAClC,UAAU,IAAE,QAAQ,CAAC,UAAU;CAC/B,MAAM,IAAE,QAAQ,CAAC,UAAU;CAC3B,UAAU,IAAE,QAAQ,CAAC,UAAU;CAC/B,UAAU,IAAE,QAAQ,CAAC,UAAU;CAC/B,gBAAgB,IAAE,OAAO,QAAQ,CAAC,QAAQ,GAAG;AAChD,EAAC;;;;MChBWC,yBAAuC,IAAE,OAAO;CACzD,KAAK,IAAE,QAAQ,CAAC,QAAQ,aAAa;CACrC,QAAQ,IAAE,SAAS,CAAC,QAAQ,MAAM;CAClC,WAAW,IAAE,SAAS,CAAC,QAAQ,KAAK;AACvC,EAAC;;;;MCbW,kBAAkB;CAC3B,aAAa;CACb,MAAM;CACN,YAAY;AACf;;;;MCSYC,kBAAgC,IAAE,OAAO;CAClD,MAAM,IAAE,KAAK,OAAO,OAAO,gBAAgB,CAAC;CAC5C,IAAI;CACJ,YAAY,uBAAuB,QAAQ;EACvC,KAAK;EACL,QAAQ;CACX,EAAC;AACL,EAAC;;;;MCDWC,oBAAkC,EAAE,OAAO;CACpD,SAAS,EAAE,KAAK,OAAO,OAAO,gBAAgB,CAAC,CAAC,QAAQ,gBAAgB,YAAY;CACpF,cAAc,EAAE,OAAO;EACnB,aAAa;EACb,MAAM;EACN,YAAY;CACf,EAAC;AACL,EAAC"}
|