@infra-blocks/zod-utils 0.25.0 → 0.26.0-alpha.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 +19 -0
- package/lib/cjs/codec/index.d.ts +2 -1
- package/lib/cjs/codec/index.js +3 -1
- package/lib/cjs/codec/index.js.map +1 -1
- package/lib/cjs/codec/string-to-buffer.d.ts +2 -0
- package/lib/cjs/codec/string-to-buffer.js +12 -0
- package/lib/cjs/codec/string-to-buffer.js.map +1 -0
- package/lib/esm/codec/index.d.ts +2 -1
- package/lib/esm/codec/index.js +3 -1
- package/lib/esm/codec/index.js.map +1 -1
- package/lib/esm/codec/string-to-buffer.d.ts +2 -0
- package/lib/esm/codec/string-to-buffer.js +8 -0
- package/lib/esm/codec/string-to-buffer.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -92,6 +92,25 @@ The `zu.codec.stringSplit(separator)` utility is a factory returning a codec whe
|
|
|
92
92
|
`z.string()`, the second schema is `z.array(z.string())`, and the transformations back and forth
|
|
93
93
|
are accomplished using `String.split` and `Array.join` respectively, using the provided separator.
|
|
94
94
|
|
|
95
|
+
#### stringToBuffer
|
|
96
|
+
|
|
97
|
+
The `zu.codec.stringToBuffer(encoding)` utility is a factory returning a codec where the first
|
|
98
|
+
schema is `z.string()`, the secon schema is `z.instanceof(Buffer)`, and the transformations
|
|
99
|
+
back and forth are accomplished using `Buffer.from` and `buffer.toString` with the provided
|
|
100
|
+
encoding.
|
|
101
|
+
|
|
102
|
+
```typescript
|
|
103
|
+
import { zu } from "@infra-blocks/zod-utils";
|
|
104
|
+
|
|
105
|
+
// Defaults to utf-8, because Buffer functions default to utf-8.
|
|
106
|
+
const utf8Codec = zu.codec.stringToBuffer();
|
|
107
|
+
// A specific encoding can be provided.
|
|
108
|
+
const base64Codec = zu.codec.stringToBuffer("base64");
|
|
109
|
+
|
|
110
|
+
utf8Codec.parse("1234"); // Returns Buffer.from("1234");
|
|
111
|
+
base64codec.parse("1234"); // Returns Buffer.from("1234", "base64");
|
|
112
|
+
```
|
|
113
|
+
|
|
95
114
|
#### stringToInteger
|
|
96
115
|
|
|
97
116
|
The `zu.codec.stringToInteger()` codec is taken almost verbatim
|
package/lib/cjs/codec/index.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ declare const codec: {
|
|
|
4
4
|
ms: (options?: {
|
|
5
5
|
long: boolean;
|
|
6
6
|
}) => import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodNumber>;
|
|
7
|
-
|
|
7
|
+
stringToBuffer: (encoding?: BufferEncoding) => import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>>;
|
|
8
|
+
stringToInteger: () => import("zod").ZodCodec<import("zod/v4/core").$ZodBranded<import("zod").ZodString, "IntegerString">, import("zod/v4/core").$ZodBranded<import("zod").ZodInt, "Integer">>;
|
|
8
9
|
stringToJson: () => import("zod").ZodCodec<import("zod/v4/core").$ZodBranded<import("zod").ZodString, "JsonString">, import("zod").ZodType<import("../json/json.js").Json, unknown, import("zod/v4/core").$ZodTypeInternals<import("../json/json.js").Json, unknown>>>;
|
|
9
10
|
stringToUrl: () => import("zod").ZodCodec<import("zod/v4/core").$ZodBranded<import("zod").ZodURL, "UrlString">, import("zod").ZodCustom<import("url").URL, import("url").URL>>;
|
|
10
11
|
};
|
package/lib/cjs/codec/index.js
CHANGED
|
@@ -4,6 +4,7 @@ exports.codec = void 0;
|
|
|
4
4
|
const csv_js_1 = require("./csv.js");
|
|
5
5
|
const json_parse_js_1 = require("./json-parse.js");
|
|
6
6
|
const ms_js_1 = require("./ms.js");
|
|
7
|
+
const string_to_buffer_js_1 = require("./string-to-buffer.js");
|
|
7
8
|
const string_to_integer_js_1 = require("./string-to-integer.js");
|
|
8
9
|
const string_to_json_js_1 = require("./string-to-json.js");
|
|
9
10
|
const string_to_url_js_1 = require("./string-to-url.js");
|
|
@@ -11,7 +12,8 @@ const codec = {
|
|
|
11
12
|
csv: csv_js_1.csv,
|
|
12
13
|
jsonParse: json_parse_js_1.jsonParse,
|
|
13
14
|
ms: ms_js_1.ms,
|
|
14
|
-
|
|
15
|
+
stringToBuffer: string_to_buffer_js_1.stringToBuffer,
|
|
16
|
+
stringToInteger: string_to_integer_js_1.stringToInteger,
|
|
15
17
|
stringToJson: string_to_json_js_1.stringToJson,
|
|
16
18
|
stringToUrl: string_to_url_js_1.stringToUrl,
|
|
17
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codec/index.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAC/B,mDAA4C;AAC5C,mCAA6B;AAC7B,iEAAyD;AACzD,2DAAmD;AACnD,yDAAiD;AAEjD,MAAM,KAAK,GAAG;IACZ,GAAG,EAAH,YAAG;IACH,SAAS,EAAT,yBAAS;IACT,EAAE,EAAF,UAAE;IACF,eAAe,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codec/index.ts"],"names":[],"mappings":";;;AAAA,qCAA+B;AAC/B,mDAA4C;AAC5C,mCAA6B;AAC7B,+DAAuD;AACvD,iEAAyD;AACzD,2DAAmD;AACnD,yDAAiD;AAEjD,MAAM,KAAK,GAAG;IACZ,GAAG,EAAH,YAAG;IACH,SAAS,EAAT,yBAAS;IACT,EAAE,EAAF,UAAE;IACF,cAAc,EAAd,oCAAc;IACd,eAAe,EAAf,sCAAe;IACf,YAAY,EAAZ,gCAAY;IACZ,WAAW,EAAX,8BAAW;CACZ,CAAC;AAEO,sBAAK"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.stringToBuffer = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
const stringToBuffer = (encoding) => {
|
|
6
|
+
return zod_1.z.codec(zod_1.z.string(), zod_1.z.instanceof(Buffer), {
|
|
7
|
+
decode: (str) => Buffer.from(str, encoding),
|
|
8
|
+
encode: (buf) => buf.toString(encoding),
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
exports.stringToBuffer = stringToBuffer;
|
|
12
|
+
//# sourceMappingURL=string-to-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-to-buffer.js","sourceRoot":"","sources":["../../../src/codec/string-to-buffer.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAEjB,MAAM,cAAc,GAAG,CAAC,QAAyB,EAAE,EAAE;IAC1D,OAAO,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,OAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC/C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;QAC3C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACxC,CAAC,CAAC;AACL,CAAC,CAAC;AALW,QAAA,cAAc,kBAKzB"}
|
package/lib/esm/codec/index.d.ts
CHANGED
|
@@ -4,7 +4,8 @@ declare const codec: {
|
|
|
4
4
|
ms: (options?: {
|
|
5
5
|
long: boolean;
|
|
6
6
|
}) => import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodNumber>;
|
|
7
|
-
|
|
7
|
+
stringToBuffer: (encoding?: BufferEncoding) => import("zod").ZodCodec<import("zod").ZodString, import("zod").ZodCustom<Buffer<ArrayBufferLike>, Buffer<ArrayBufferLike>>>;
|
|
8
|
+
stringToInteger: () => import("zod").ZodCodec<import("zod/v4/core").$ZodBranded<import("zod").ZodString, "IntegerString">, import("zod/v4/core").$ZodBranded<import("zod").ZodInt, "Integer">>;
|
|
8
9
|
stringToJson: () => import("zod").ZodCodec<import("zod/v4/core").$ZodBranded<import("zod").ZodString, "JsonString">, import("zod").ZodType<import("../json/json.js").Json, unknown, import("zod/v4/core").$ZodTypeInternals<import("../json/json.js").Json, unknown>>>;
|
|
9
10
|
stringToUrl: () => import("zod").ZodCodec<import("zod/v4/core").$ZodBranded<import("zod").ZodURL, "UrlString">, import("zod").ZodCustom<import("url").URL, import("url").URL>>;
|
|
10
11
|
};
|
package/lib/esm/codec/index.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { csv } from "./csv.js";
|
|
2
2
|
import { jsonParse } from "./json-parse.js";
|
|
3
3
|
import { ms } from "./ms.js";
|
|
4
|
+
import { stringToBuffer } from "./string-to-buffer.js";
|
|
4
5
|
import { stringToInteger } from "./string-to-integer.js";
|
|
5
6
|
import { stringToJson } from "./string-to-json.js";
|
|
6
7
|
import { stringToUrl } from "./string-to-url.js";
|
|
@@ -8,7 +9,8 @@ const codec = {
|
|
|
8
9
|
csv,
|
|
9
10
|
jsonParse,
|
|
10
11
|
ms,
|
|
11
|
-
|
|
12
|
+
stringToBuffer,
|
|
13
|
+
stringToInteger,
|
|
12
14
|
stringToJson,
|
|
13
15
|
stringToUrl,
|
|
14
16
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codec/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,KAAK,GAAG;IACZ,GAAG;IACH,SAAS;IACT,EAAE;IACF,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/codec/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,EAAE,EAAE,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,KAAK,GAAG;IACZ,GAAG;IACH,SAAS;IACT,EAAE;IACF,cAAc;IACd,eAAe;IACf,YAAY;IACZ,WAAW;CACZ,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
export const stringToBuffer = (encoding) => {
|
|
3
|
+
return z.codec(z.string(), z.instanceof(Buffer), {
|
|
4
|
+
decode: (str) => Buffer.from(str, encoding),
|
|
5
|
+
encode: (buf) => buf.toString(encoding),
|
|
6
|
+
});
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=string-to-buffer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-to-buffer.js","sourceRoot":"","sources":["../../../src/codec/string-to-buffer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,QAAyB,EAAE,EAAE;IAC1D,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;QAC/C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,QAAQ,CAAC;QAC3C,MAAM,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;KACxC,CAAC,CAAC;AACL,CAAC,CAAC"}
|