@danceroutine/tango-config 1.11.0 → 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.
@@ -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
- * Bundled exports for Django-style domain drill-down imports, plus curated
3
- * top-level symbols for TS-native ergonomic imports.
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 { AdapterNameSchema, DbConfigSchema, EnvConfigSchema, MigrationsConfigSchema, TangoConfigSchema, schema_exports } from "./schema-VrnHv-I7.js";
2
- import { defineConfig, loadConfig, loadConfigFromProjectRoot, loader_exports } from "./loader-D5ezTVNH.js";
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 };
@@ -1,8 +1,2 @@
1
- /**
2
- * Domain boundary barrel: centralizes this subdomain's public contract.
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 };
@@ -1,4 +1,2 @@
1
- import "../schema-VrnHv-I7.js";
2
- import { defineConfig, loadConfig, loadConfigFromProjectRoot } from "../loader-D5ezTVNH.js";
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 { TangoConfigSchema, __export } from "./schema-VrnHv-I7.js";
2
- import { config as loadDotEnv } from "dotenv";
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
- loadDotEnv();
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 jiti = createJiti(resolve(projectRoot, "package.json"), {
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, loadConfig, loadConfigFromProjectRoot, loader_exports };
88
- //# sourceMappingURL=loader-D5ezTVNH.js.map
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"}
@@ -1,13 +1,2 @@
1
- /**
2
- * Domain boundary barrel: centralizes this subdomain's public contract.
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 };
@@ -1,3 +1,2 @@
1
- import { AdapterNameSchema, DbConfigSchema, EnvConfigSchema, MigrationsConfigSchema, TangoConfigSchema } from "../schema-VrnHv-I7.js";
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.0",
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,9 +42,9 @@
42
42
  },
43
43
  "devDependencies": {
44
44
  "@types/node": "^22.9.0",
45
- "tsdown": "^0.4.0",
45
+ "tsdown": "^0.22.1",
46
46
  "typescript": "^5.6.3",
47
- "vitest": "^4.0.6"
47
+ "vitest": "^4.1.7"
48
48
  },
49
49
  "scripts": {
50
50
  "build": "tsdown",
@@ -1,9 +0,0 @@
1
- import type { EnvConfig, EnvName, TangoConfig } from '../schema/index';
2
- /**
3
- * Fully resolved Tango configuration for a specific runtime environment.
4
- */
5
- export interface LoadedConfig {
6
- cfg: TangoConfig;
7
- env: EnvName;
8
- current: EnvConfig;
9
- }
@@ -1,5 +0,0 @@
1
- import { type TangoConfig } from '../schema/index';
2
- /**
3
- * Define and validate Tango configuration at declaration time.
4
- */
5
- export declare function defineConfig(cfg: unknown): TangoConfig;
@@ -1,5 +0,0 @@
1
- import type { LoadedConfig } from './LoadedConfig';
2
- /**
3
- * Load, validate, and environment-resolve Tango configuration.
4
- */
5
- export declare function loadConfig(fromFile: () => unknown): LoadedConfig;
@@ -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,4 +0,0 @@
1
- import { z } from 'zod';
2
- import { InternalAdapterName } from './internal/InternalAdapterName';
3
- export type AdapterName = (typeof InternalAdapterName)[keyof typeof InternalAdapterName];
4
- export declare const AdapterNameSchema: z.ZodTypeAny;
@@ -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,8 +0,0 @@
1
- import { z } from 'zod';
2
- export type MigrationsConfig = {
3
- dir: string;
4
- online: boolean;
5
- /** When false, `tango migrate` exits without applying. Default `true`. */
6
- autoApply: boolean;
7
- };
8
- export declare const MigrationsConfigSchema: 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;
@@ -1,4 +0,0 @@
1
- export declare const InternalAdapterName: {
2
- readonly POSTGRES: "postgres";
3
- readonly SQLITE: "sqlite";
4
- };
@@ -1,5 +0,0 @@
1
- export declare const InternalEnvName: {
2
- readonly DEVELOPMENT: "development";
3
- readonly TEST: "test";
4
- readonly PRODUCTION: "production";
5
- };
@@ -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"}