@capsuletech/shared-zod 0.1.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/dist/index.d.ts +3 -0
- package/dist/index.mjs +9 -0
- package/dist/index.mjs.map +1 -0
- package/dist/package.json +15 -0
- package/dist/z.d.ts +25 -0
- package/package.json +26 -0
- package/src/index.ts +5 -0
- package/src/z.ts +34 -0
package/dist/index.d.ts
ADDED
package/dist/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../src/z.ts"],"sourcesContent":["import type { JSX } from 'solid-js';\nimport { z as zodRoot } from 'zod';\nimport type { ZodType } from 'zod';\n\n/**\n * Capsule-расширенный zod-namespace. Прокидывается в фабрики обёрток (Shape и др.)\n * первым/служебным аргументом — пользователь НЕ импортирует напрямую,\n * а получает через фабричный аргумент.\n *\n * В v1 добавлен один хелпер — `z.component()` для JSX-renderable полей.\n * По мере роста сюда попадут другие capsule-доменные валидаторы:\n * - `z.tag()` для CapsuleTag из app-config'а;\n * - `z.href()` для URL-паттернов;\n * - `z.alias()` для алиасов;\n * - и т.д.\n *\n * Реализация — shallow-copy через spread, а не `Object.create(zod)`:\n * Vite после `optimizeDeps` оборачивает zod в frozen ESM Module-namespace,\n * и присваивание `proxy.component` через прототипную цепочку ловит\n * `Cannot assign to property 'component' of [object Module]`. Spread даёт\n * обычный объект без frozen-прототипа, оригинальный модуль не мутируется.\n */\nexport interface CapsuleZ extends Omit<typeof zodRoot, never> {\n /** zod-схема для Solid-renderable значения (JSX.Element, function-component, string и т.п.). */\n component: () => ZodType<JSX.Element>;\n}\n\nconst create = (): CapsuleZ => {\n const proxy = { ...zodRoot } as CapsuleZ;\n proxy.component = () => zodRoot.custom<JSX.Element>(() => true);\n return proxy;\n};\n\nexport const z: CapsuleZ = create();\n"],"names":["create","proxy","zodRoot","z"],"mappings":";AA2BA,MAAMA,IAAS,MAAgB;AAC7B,QAAMC,IAAQ,EAAE,GAAGC,EAAA;AACnB,SAAAD,EAAM,YAAY,MAAMC,EAAQ,OAAoB,MAAM,EAAI,GACvDD;AACT,GAEaE,IAAcH,EAAA;"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@capsuletech/shared-zod",
|
|
3
|
+
"version": "0.0.17",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./index.mjs",
|
|
6
|
+
"types": "./index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./index.d.ts",
|
|
10
|
+
"import": "./index.mjs",
|
|
11
|
+
"default": "./index.mjs"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"dependencies": {}
|
|
15
|
+
}
|
package/dist/z.d.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { JSX } from 'solid-js';
|
|
2
|
+
import { z as zodRoot, ZodType } from 'zod';
|
|
3
|
+
/**
|
|
4
|
+
* Capsule-расширенный zod-namespace. Прокидывается в фабрики обёрток (Shape и др.)
|
|
5
|
+
* первым/служебным аргументом — пользователь НЕ импортирует напрямую,
|
|
6
|
+
* а получает через фабричный аргумент.
|
|
7
|
+
*
|
|
8
|
+
* В v1 добавлен один хелпер — `z.component()` для JSX-renderable полей.
|
|
9
|
+
* По мере роста сюда попадут другие capsule-доменные валидаторы:
|
|
10
|
+
* - `z.tag()` для CapsuleTag из app-config'а;
|
|
11
|
+
* - `z.href()` для URL-паттернов;
|
|
12
|
+
* - `z.alias()` для алиасов;
|
|
13
|
+
* - и т.д.
|
|
14
|
+
*
|
|
15
|
+
* Реализация — shallow-copy через spread, а не `Object.create(zod)`:
|
|
16
|
+
* Vite после `optimizeDeps` оборачивает zod в frozen ESM Module-namespace,
|
|
17
|
+
* и присваивание `proxy.component` через прототипную цепочку ловит
|
|
18
|
+
* `Cannot assign to property 'component' of [object Module]`. Spread даёт
|
|
19
|
+
* обычный объект без frozen-прототипа, оригинальный модуль не мутируется.
|
|
20
|
+
*/
|
|
21
|
+
export interface CapsuleZ extends Omit<typeof zodRoot, never> {
|
|
22
|
+
/** zod-схема для Solid-renderable значения (JSX.Element, function-component, string и т.п.). */
|
|
23
|
+
component: () => ZodType<JSX.Element>;
|
|
24
|
+
}
|
|
25
|
+
export declare const z: CapsuleZ;
|
package/package.json
ADDED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@capsuletech/shared-zod",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"main": "./dist/index.mjs",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"types": "./dist/index.d.ts",
|
|
10
|
+
"import": "./dist/index.mjs",
|
|
11
|
+
"default": "./dist/index.mjs"
|
|
12
|
+
}
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
"dist",
|
|
16
|
+
"src",
|
|
17
|
+
"!**/*.tsbuildinfo"
|
|
18
|
+
],
|
|
19
|
+
"dependencies": {},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@capsuletech/shared-vite": "0.1.0"
|
|
22
|
+
},
|
|
23
|
+
"scripts": {
|
|
24
|
+
"build": "vite build"
|
|
25
|
+
}
|
|
26
|
+
}
|
package/src/index.ts
ADDED
package/src/z.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { JSX } from 'solid-js';
|
|
2
|
+
import { z as zodRoot } from 'zod';
|
|
3
|
+
import type { ZodType } from 'zod';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Capsule-расширенный zod-namespace. Прокидывается в фабрики обёрток (Shape и др.)
|
|
7
|
+
* первым/служебным аргументом — пользователь НЕ импортирует напрямую,
|
|
8
|
+
* а получает через фабричный аргумент.
|
|
9
|
+
*
|
|
10
|
+
* В v1 добавлен один хелпер — `z.component()` для JSX-renderable полей.
|
|
11
|
+
* По мере роста сюда попадут другие capsule-доменные валидаторы:
|
|
12
|
+
* - `z.tag()` для CapsuleTag из app-config'а;
|
|
13
|
+
* - `z.href()` для URL-паттернов;
|
|
14
|
+
* - `z.alias()` для алиасов;
|
|
15
|
+
* - и т.д.
|
|
16
|
+
*
|
|
17
|
+
* Реализация — shallow-copy через spread, а не `Object.create(zod)`:
|
|
18
|
+
* Vite после `optimizeDeps` оборачивает zod в frozen ESM Module-namespace,
|
|
19
|
+
* и присваивание `proxy.component` через прототипную цепочку ловит
|
|
20
|
+
* `Cannot assign to property 'component' of [object Module]`. Spread даёт
|
|
21
|
+
* обычный объект без frozen-прототипа, оригинальный модуль не мутируется.
|
|
22
|
+
*/
|
|
23
|
+
export interface CapsuleZ extends Omit<typeof zodRoot, never> {
|
|
24
|
+
/** zod-схема для Solid-renderable значения (JSX.Element, function-component, string и т.п.). */
|
|
25
|
+
component: () => ZodType<JSX.Element>;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
const create = (): CapsuleZ => {
|
|
29
|
+
const proxy = { ...zodRoot } as CapsuleZ;
|
|
30
|
+
proxy.component = () => zodRoot.custom<JSX.Element>(() => true);
|
|
31
|
+
return proxy;
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export const z: CapsuleZ = create();
|