zodified-config 2.1.2 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -53,4 +53,21 @@ try {
53
53
  import config from 'zodified-config'
54
54
 
55
55
  config.get('value');
56
+ ```
57
+
58
+ ### 4. Coercion of Values
59
+
60
+ Starting from version 2.2.0, `zodified-config` supports coercion of values. This means that you can define schemas that automatically transform input values into the desired format.
61
+
62
+ For example:
63
+ ```ts
64
+ import z from 'zod';
65
+ import config from 'zodified-config';
66
+
67
+ const schema = z.object({
68
+ port: z.coerce.number()
69
+ });
70
+
71
+ const validatedConfig = config.validate(schema);
72
+ console.log(validatedConfig.port); // Automatically coerced into a number
56
73
  ```
package/dist/index.js CHANGED
@@ -20,6 +20,9 @@ const validate = (schema) => {
20
20
  if (result.success === false) {
21
21
  throw new ZodValidationError('INVALID_CONFIG', result.error.issues);
22
22
  }
23
+ // Apply Zod-transformed values back so get() returns coerced/transformed values
24
+ Object.keys(fullConfig).forEach((key) => delete fullConfig[key]);
25
+ Object.assign(fullConfig, result.data);
23
26
  return true;
24
27
  }
25
28
  catch (error) {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAM5B,MAAM,UAAU,GAAG,gBAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAE1C,MAAa,kBAAmB,SAAQ,KAAK;IAE3C,YAAY,OAAe,EAAE,QAAoB;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAPD,gDAOC;AAED,MAAM,QAAQ,GAAG,CAAsB,MAAS,EAAE,EAAE;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtE,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACjE,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC;AAeF,MAAM,GAAG,GAAG,CACV,IAAW,EACY,EAAE;IACzB,IAAI,MAAM,GAAG,UAAU,CAAC;IAExB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAA+B,CAAC;IACzC,CAAC;IAEA,IAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,kBAAe;IACb,QAAQ;IACR,GAAG;CACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA4B;AAM5B,MAAM,UAAU,GAAG,gBAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;AAE1C,MAAa,kBAAmB,SAAQ,KAAK;IAE3C,YAAY,OAAe,EAAE,QAAoB;QAC/C,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;QACjC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAPD,gDAOC;AAED,MAAM,QAAQ,GAAG,CAAsB,MAAS,EAAE,EAAE;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;QAC5C,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;YAC7B,MAAM,IAAI,kBAAkB,CAAC,gBAAgB,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtE,CAAC;QACD,gFAAgF;QAChF,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;QACjE,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAc,EAAE,CAAC;QACxB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,gBAAgB,EAAE,CAAC;YACjE,MAAM,KAAK,CAAC;QACd,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;AACH,CAAC,CAAC;AAeF,MAAM,GAAG,GAAG,CACV,IAAW,EACY,EAAE;IACzB,IAAI,MAAM,GAAG,UAAU,CAAC;IAExB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,MAA+B,CAAC;IACzC,CAAC;IAEA,IAAe,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1C,IAAI,MAAM,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;YAC9B,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF,kBAAe;IACb,QAAQ;IACR,GAAG;CACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "zodified-config",
3
- "version": "2.1.2",
3
+ "version": "2.2.0",
4
4
  "description": "Typesafe config validated by Zod",
5
5
  "repository": {
6
6
  "type": "git",