@entwico/zod-conf 1.1.2 → 1.1.3

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.
@@ -1,4 +1,4 @@
1
- import { ZodObject, type ZodRawShape, type infer as ZodInfer } from 'zod';
1
+ import { type infer as ZodInfer, ZodObject, type ZodRawShape } from 'zod';
2
2
  type Env = Record<string, string | undefined>;
3
3
  export type EnvLoader = {
4
4
  env: Env;
@@ -1 +1 @@
1
- {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/values/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,KAAK,WAAW,EAAgB,KAAK,KAAK,IAAI,QAAQ,EAAE,MAAM,KAAK,CAAC;AAGhG,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAE,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AAE9C,qBAAa,aAAa,CAAC,CAAC,SAAS,WAAW;IAE5C,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;gBADN,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAG9B,OAAO,CAAC,eAAe;IA2DvB,OAAO,CAAC,SAAS;IA6DjB,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IA8B/D,QAAQ,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;CAK3C;AA4BD,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAAE,OAAO,CAAC,KAAG,aAAa,CAAC,CAAC,CAEvE,CAAC"}
1
+ {"version":3,"file":"define.d.ts","sourceRoot":"","sources":["../../src/values/define.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,KAAK,IAAI,QAAQ,EAAE,SAAS,EAAE,KAAK,WAAW,EAAwB,MAAM,KAAK,CAAC;AAGhG,KAAK,GAAG,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;AAE9C,MAAM,MAAM,SAAS,GAAG;IAAE,GAAG,EAAE,GAAG,CAAC;IAAC,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAE,CAAC;AACjE,MAAM,MAAM,YAAY,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,GAAG,CAAC,EAAE,KAAK,GAAG,SAAS,CAAA;CAAE,CAAC;AACxF,MAAM,MAAM,MAAM,GAAG,SAAS,GAAG,YAAY,CAAC;AAE9C,qBAAa,aAAa,CAAC,CAAC,SAAS,WAAW;IAE5C,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,MAAM;gBADN,KAAK,EAAE,CAAC,EACR,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IAG9B,OAAO,CAAC,eAAe;IA+DvB,OAAO,CAAC,SAAS;IA6DjB,IAAI,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IA8B/D,QAAQ,CAAC,GAAG,OAAO,EAAE,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;CAK3C;AA4BD,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAAE,OAAO,CAAC,KAAG,aAAa,CAAC,CAAC,CAEvE,CAAC"}
@@ -34,21 +34,25 @@ export class ZodConfSchema {
34
34
  }
35
35
  const value = env[envKey];
36
36
  switch (envType) {
37
- case 'string':
37
+ case 'string': {
38
38
  return value;
39
- case 'number':
39
+ }
40
+ case 'number': {
40
41
  return value ? Number(value) : undefined;
41
- case 'boolean':
42
- return value === 'true' ? true : value === 'false' ? false : undefined;
42
+ }
43
+ case 'boolean': {
44
+ return value === 'true' ? true : (value === 'false' ? false : undefined);
45
+ }
43
46
  case 'enum': {
44
47
  const numValue = Number(value);
45
- if (value && !isNaN(numValue) && Number.isInteger(numValue)) {
48
+ if (value && Number.isSafeInteger(numValue)) {
46
49
  return numValue;
47
50
  }
48
51
  return value;
49
52
  }
50
- default:
53
+ default: {
51
54
  return undefined;
55
+ }
52
56
  }
53
57
  }
54
58
  loadValue(shape, loaders) {
@@ -1,4 +1,4 @@
1
- import { type ZodType } from 'zod';
1
+ import type { ZodType } from 'zod';
2
2
  export declare const _envMetadata: WeakMap<ZodType<unknown, unknown, import("zod/v4/core").$ZodTypeInternals<unknown, unknown>>, {
3
3
  key: string;
4
4
  type: string;
@@ -1 +1 @@
1
- {"version":3,"file":"env-metadata.d.ts","sourceRoot":"","sources":["../../src/values/env-metadata.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAGnC,eAAO,MAAM,YAAY;SAA+B,MAAM;UAAQ,MAAM;EAAK,CAAC"}
1
+ {"version":3,"file":"env-metadata.d.ts","sourceRoot":"","sources":["../../src/values/env-metadata.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAGnC,eAAO,MAAM,YAAY;SAA+B,MAAM;UAAQ,MAAM;EAAK,CAAC"}
@@ -1,5 +1,4 @@
1
- import { type util, type ZodEnum } from 'zod';
2
- import { coerce } from 'zod';
1
+ import { type ZodEnum, coerce, type util } from 'zod';
3
2
  export declare const env: (key: string) => {
4
3
  string: () => import("zod").ZodString;
5
4
  number: () => coerce.ZodCoercedNumber<unknown>;
@@ -1 +1 @@
1
- {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/values/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,OAAO,EAAgB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAyB,MAAM,KAAK,CAAC;AAgCpD,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM;;;;;eA2CC,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;eAExE,CAAC,6DAA4B,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;;CAS1E,CAAC"}
1
+ {"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../../src/values/env.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAgB,MAAM,EAAU,KAAK,IAAI,EAAiB,MAAM,KAAK,CAAC;AAgC3F,eAAO,MAAM,GAAG,GAAI,KAAK,MAAM;;;;;eA2CC,CAAC,SAAS,SAAS,MAAM,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;eAExE,CAAC,6DAA4B,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;;CAS1E,CAAC"}
@@ -1,4 +1,3 @@
1
- import { type ZodObject } from 'zod';
2
- import { type ZodRawShape } from 'zod';
1
+ import { type ZodObject, type ZodRawShape } from 'zod';
3
2
  export declare const object: <T extends ZodRawShape>(shape: T) => ZodObject<T>;
4
3
  //# sourceMappingURL=object.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/values/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,KAAK,CAAC;AAiCvC,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAAE,OAAO,CAAC,KAAG,SAAS,CAAC,CAAC,CAEnE,CAAC"}
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../src/values/object.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,WAAW,EAAqB,MAAM,KAAK,CAAC;AAgC1E,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,WAAW,EAAE,OAAO,CAAC,KAAG,SAAS,CAAC,CAAC,CAEnE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@entwico/zod-conf",
3
- "version": "1.1.2",
3
+ "version": "1.1.3",
4
4
  "description": "Type-safe configuration management with Zod schemas and environment variables",
5
5
  "license": "MIT",
6
6
  "author": "admin@entwico.com",
@@ -33,18 +33,6 @@
33
33
  "type": "git",
34
34
  "url": "https://github.com/entwico/zod-conf"
35
35
  },
36
- "scripts": {
37
- "build": "tsc --project tsconfig.build.json",
38
- "clean": "rm -rf dist",
39
- "prebuild": "npm run clean",
40
- "prepublishOnly": "npm run build && npm run test && npm run lint",
41
- "validate": "run-s lint typecheck test",
42
- "lint": "eslint . --report-unused-disable-directives --max-warnings 0",
43
- "typecheck": "tsc",
44
- "test": "npx tsx --test --experimental-test-coverage src/index.test.ts",
45
- "prepare": "husky",
46
- "semantic-release": "semantic-release"
47
- },
48
36
  "publishConfig": {
49
37
  "access": "public",
50
38
  "provenance": true
@@ -53,24 +41,24 @@
53
41
  "zod": "^4.0.0"
54
42
  },
55
43
  "devDependencies": {
56
- "@commitlint/cli": "^20.4.1",
57
- "@commitlint/config-conventional": "^20.4.1",
58
- "@semantic-release/changelog": "^6.0.3",
59
- "@semantic-release/git": "^10.0.1",
44
+ "@changesets/cli": "^2.31.0",
45
+ "@entwico/eslint-config": "^2.0.7",
60
46
  "@types/node": "^25.2.0",
61
- "@typescript-eslint/eslint-plugin": "^8.54.0",
62
- "dotenv": "^17.2.3",
63
- "eslint": "^9.39.2",
64
- "eslint-config-prettier": "^10.1.8",
65
- "eslint-import-resolver-typescript": "^4.4.4",
66
- "eslint-plugin-import": "^2.32.0",
67
- "eslint-plugin-prettier": "^5.5.5",
68
- "husky": "^9.1.7",
69
- "npm-run-all": "^4.1.5",
70
- "semantic-release": "^25.0.3",
47
+ "eslint": "^10.6.0",
71
48
  "tsx": "^4.21.0",
72
- "typescript": "^5.9.3",
73
- "typescript-eslint": "^8.54.0",
49
+ "typescript": "^6.0.3",
74
50
  "zod": "^4.3.6"
51
+ },
52
+ "scripts": {
53
+ "build": "tsc --project tsconfig.build.json",
54
+ "clean": "rm -rf dist",
55
+ "prebuild": "pnpm clean",
56
+ "validate": "pnpm lint && pnpm typecheck && pnpm test",
57
+ "ci:version": "changeset version && pnpm install --no-frozen-lockfile",
58
+ "ci:publish": "changeset publish",
59
+ "lint": "eslint --cache src",
60
+ "lint:fix": "pnpm lint --fix",
61
+ "typecheck": "tsc",
62
+ "test": "tsx --test --experimental-test-coverage src/index.test.ts"
75
63
  }
76
- }
64
+ }