sibyl-ts 0.1.0 → 0.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.
Files changed (31) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +1 -3
  3. package/dist/cjs/validators/object/index.d.ts +3 -0
  4. package/dist/cjs/validators/object/index.d.ts.map +1 -0
  5. package/dist/cjs/validators/object/index.js +19 -0
  6. package/dist/cjs/validators/object/index.js.map +1 -0
  7. package/dist/cjs/validators/{object.d.ts → object/object.d.ts} +1 -1
  8. package/dist/cjs/validators/object/object.d.ts.map +1 -0
  9. package/dist/cjs/validators/{object.js → object/object.js} +3 -3
  10. package/dist/cjs/validators/object/object.js.map +1 -0
  11. package/dist/cjs/validators/object/partial.d.ts +3 -0
  12. package/dist/cjs/validators/object/partial.d.ts.map +1 -0
  13. package/dist/cjs/validators/object/partial.js +38 -0
  14. package/dist/cjs/validators/object/partial.js.map +1 -0
  15. package/dist/esm/validators/object/index.d.ts +3 -0
  16. package/dist/esm/validators/object/index.d.ts.map +1 -0
  17. package/dist/esm/validators/object/index.js +3 -0
  18. package/dist/esm/validators/object/index.js.map +1 -0
  19. package/dist/esm/validators/{object.d.ts → object/object.d.ts} +1 -1
  20. package/dist/esm/validators/object/object.d.ts.map +1 -0
  21. package/dist/esm/validators/{object.js → object/object.js} +3 -3
  22. package/dist/esm/validators/object/object.js.map +1 -0
  23. package/dist/esm/validators/object/partial.d.ts +3 -0
  24. package/dist/esm/validators/object/partial.d.ts.map +1 -0
  25. package/dist/esm/validators/object/partial.js +34 -0
  26. package/dist/esm/validators/object/partial.js.map +1 -0
  27. package/package.json +1 -1
  28. package/dist/cjs/validators/object.d.ts.map +0 -1
  29. package/dist/cjs/validators/object.js.map +0 -1
  30. package/dist/esm/validators/object.d.ts.map +0 -1
  31. package/dist/esm/validators/object.js.map +0 -1
package/CHANGELOG.md CHANGED
@@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [0.2.0] - 2026-01-13
9
+
10
+ ### Added
11
+
12
+ - `partial()` validator for creating validators with optional object properties
13
+ - Playground directory for testing and experimenting with validators
14
+ - Object validators now organized in dedicated `object/` folder (matching string validators structure)
15
+
16
+ ### Changed
17
+
18
+ - Moved `obj()` validator to `src/validators/object/object.ts`
19
+ - Updated exports to maintain backward compatibility
20
+
8
21
  ## [0.1.0] - 2026-01-11
9
22
 
10
23
  ### Added
package/README.md CHANGED
@@ -132,8 +132,6 @@ try {
132
132
  - `judge()` - When you want exceptions thrown (typical validation)
133
133
  - `tryJudge()` - When you want to handle errors gracefully (user input, APIs)
134
134
 
135
- ````
136
-
137
135
  ### Union Types
138
136
 
139
137
  ```typescript
@@ -149,7 +147,7 @@ const dominatorModeValidator = union([
149
147
  dominatorModeValidator.judge('paralyzer'); // OK
150
148
  dominatorModeValidator.judge('eliminator'); // OK
151
149
  dominatorModeValidator.judge('stun'); // Error!
152
- ````
150
+ ```
153
151
 
154
152
  ### Optional and Nullable
155
153
 
@@ -0,0 +1,3 @@
1
+ export * from './object';
2
+ export * from './partial';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/validators/object/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./object"), exports);
18
+ __exportStar(require("./partial"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/validators/object/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,4CAA0B"}
@@ -1,4 +1,4 @@
1
- import type { Validator } from '../common';
1
+ import type { Validator } from '../../common';
2
2
  export type InferObjectType<Schema extends Record<string, Validator>> = {
3
3
  [K in keyof Schema]: Schema[K] extends Validator<infer T> ? T : never;
4
4
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../src/validators/object/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI;KACrE,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACtE,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAChC,KAAG,SAAS,CAAC,CAAC,CA6Dd,CAAC"}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.obj = void 0;
4
- const withTryJudge_1 = require("../withTryJudge");
5
- const error_1 = require("../error");
6
- const getValueType_1 = require("../getValueType");
4
+ const withTryJudge_1 = require("../../withTryJudge");
5
+ const error_1 = require("../../error");
6
+ const getValueType_1 = require("../../getValueType");
7
7
  const obj = (schema) => {
8
8
  return (0, withTryJudge_1.withTryJudge)({
9
9
  judge(value) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../src/validators/object/object.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAClD,uCAAgE;AAChE,qDAAkD;AAO3C,MAAM,GAAG,GAAG,CAAoC,MAEtD,EAAgB,EAAE;IACjB,OAAO,IAAA,2BAAY,EAAC;QAClB,KAAK,CAAC,KAAK;YACT,IACE,KAAK,KAAK,IAAI;gBACd,KAAK,KAAK,SAAS;gBACnB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,KAAK,YAAY,IAAI,EACrB,CAAC;gBACD,MAAM,SAAS,GAAG,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,IAAI,qBAAa,CAAC;oBACtB;wBACE,OAAO,EAAE,YAAY,SAAS,mBAAmB;wBACjD,IAAI,EAAE,EAAE;qBACT;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAItD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAkC,EAAE,EAAE;gBACzD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAyB,CAAC,CAAC;gBAEpD,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAChD,OAAO;wBACL,GAAG,GAAG;wBACN,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE;qBAC9C,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,qBAAa,EAAE,CAAC;wBACnC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAClD,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gCACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oCAC1B,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;oCACvB,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;gCAC1B,CAAC,CAAC,GAAG;yBACR,CAAC,CAAC,CAAC;wBACJ,OAAO;4BACL,GAAG,GAAG;4BACN,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC;yBAC3C,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAC3B,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,qBAAa,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,MAAW,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AA/DW,QAAA,GAAG,OA+Dd"}
@@ -0,0 +1,3 @@
1
+ import type { Validator } from '../../common';
2
+ export declare const partial: <T extends Record<string, unknown>>(validator: Validator<T>) => Validator<Partial<T>>;
3
+ //# sourceMappingURL=partial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../../../../src/validators/object/partial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,WAAW,SAAS,CAAC,CAAC,CAAC,KACtB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAoCtB,CAAC"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.partial = void 0;
4
+ const withTryJudge_1 = require("../../withTryJudge");
5
+ const error_1 = require("../../error");
6
+ const getValueType_1 = require("../../getValueType");
7
+ const partial = (validator) => {
8
+ return (0, withTryJudge_1.withTryJudge)({
9
+ judge(value) {
10
+ if (value === null ||
11
+ value === undefined ||
12
+ typeof value !== 'object' ||
13
+ Array.isArray(value) ||
14
+ value instanceof Date) {
15
+ const valueType = (0, getValueType_1.getValueType)(value);
16
+ throw new error_1.JudgmentError([
17
+ {
18
+ message: `Value is ${valueType}, expected object`,
19
+ path: '',
20
+ },
21
+ ]);
22
+ }
23
+ const result = validator.tryJudge(value);
24
+ if (result.type === 'success') {
25
+ return result.data;
26
+ }
27
+ const nonUndefinedErrors = result.issues.filter((issue) => {
28
+ return !issue.message.includes('Value is undefined');
29
+ });
30
+ if (nonUndefinedErrors.length > 0) {
31
+ throw new error_1.JudgmentError(nonUndefinedErrors);
32
+ }
33
+ return value;
34
+ },
35
+ });
36
+ };
37
+ exports.partial = partial;
38
+ //# sourceMappingURL=partial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partial.js","sourceRoot":"","sources":["../../../../src/validators/object/partial.ts"],"names":[],"mappings":";;;AACA,qDAAkD;AAClD,uCAA4C;AAC5C,qDAAkD;AAE3C,MAAM,OAAO,GAAG,CACrB,SAAuB,EACA,EAAE;IACzB,OAAO,IAAA,2BAAY,EAAC;QAClB,KAAK,CAAC,KAAK;YACT,IACE,KAAK,KAAK,IAAI;gBACd,KAAK,KAAK,SAAS;gBACnB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,KAAK,YAAY,IAAI,EACrB,CAAC;gBACD,MAAM,SAAS,GAAG,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,IAAI,qBAAa,CAAC;oBACtB;wBACE,OAAO,EAAE,YAAY,SAAS,mBAAmB;wBACjD,IAAI,EAAE,EAAE;qBACT;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEzC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;YAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YAEH,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,qBAAa,CAAC,kBAAkB,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,KAAmB,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAtCW,QAAA,OAAO,WAsClB"}
@@ -0,0 +1,3 @@
1
+ export * from './object';
2
+ export * from './partial';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/validators/object/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './object';
2
+ export * from './partial';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/validators/object/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { Validator } from '../common';
1
+ import type { Validator } from '../../common';
2
2
  export type InferObjectType<Schema extends Record<string, Validator>> = {
3
3
  [K in keyof Schema]: Schema[K] extends Validator<infer T> ? T : never;
4
4
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../../src/validators/object/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM9C,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI;KACrE,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACtE,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAChC,KAAG,SAAS,CAAC,CAAC,CA6Dd,CAAC"}
@@ -1,6 +1,6 @@
1
- import { withTryJudge } from '../withTryJudge';
2
- import { JudgmentError } from '../error';
3
- import { getValueType } from '../getValueType';
1
+ import { withTryJudge } from '../../withTryJudge';
2
+ import { JudgmentError } from '../../error';
3
+ import { getValueType } from '../../getValueType';
4
4
  export const obj = (schema) => {
5
5
  return withTryJudge({
6
6
  judge(value) {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../../src/validators/object/object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAsB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOlD,MAAM,CAAC,MAAM,GAAG,GAAG,CAAoC,MAEtD,EAAgB,EAAE;IACjB,OAAO,YAAY,CAAC;QAClB,KAAK,CAAC,KAAK;YACT,IACE,KAAK,KAAK,IAAI;gBACd,KAAK,KAAK,SAAS;gBACnB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,KAAK,YAAY,IAAI,EACrB,CAAC;gBACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,IAAI,aAAa,CAAC;oBACtB;wBACE,OAAO,EAAE,YAAY,SAAS,mBAAmB;wBACjD,IAAI,EAAE,EAAE;qBACT;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAItD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAkC,EAAE,EAAE;gBACzD,MAAM,UAAU,GAAG,KAAK,CAAC,GAAyB,CAAC,CAAC;gBAEpD,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAChD,OAAO;wBACL,GAAG,GAAG;wBACN,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE;qBAC9C,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;wBACnC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAClD,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gCACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oCAC1B,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;oCACvB,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;gCAC1B,CAAC,CAAC,GAAG;yBACR,CAAC,CAAC,CAAC;wBACJ,OAAO;4BACL,GAAG,GAAG;4BACN,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC;yBAC3C,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAC3B,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,MAAW,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { Validator } from '../../common';
2
+ export declare const partial: <T extends Record<string, unknown>>(validator: Validator<T>) => Validator<Partial<T>>;
3
+ //# sourceMappingURL=partial.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partial.d.ts","sourceRoot":"","sources":["../../../../src/validators/object/partial.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAK9C,eAAO,MAAM,OAAO,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACvD,WAAW,SAAS,CAAC,CAAC,CAAC,KACtB,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAoCtB,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { withTryJudge } from '../../withTryJudge';
2
+ import { JudgmentError } from '../../error';
3
+ import { getValueType } from '../../getValueType';
4
+ export const partial = (validator) => {
5
+ return withTryJudge({
6
+ judge(value) {
7
+ if (value === null ||
8
+ value === undefined ||
9
+ typeof value !== 'object' ||
10
+ Array.isArray(value) ||
11
+ value instanceof Date) {
12
+ const valueType = getValueType(value);
13
+ throw new JudgmentError([
14
+ {
15
+ message: `Value is ${valueType}, expected object`,
16
+ path: '',
17
+ },
18
+ ]);
19
+ }
20
+ const result = validator.tryJudge(value);
21
+ if (result.type === 'success') {
22
+ return result.data;
23
+ }
24
+ const nonUndefinedErrors = result.issues.filter((issue) => {
25
+ return !issue.message.includes('Value is undefined');
26
+ });
27
+ if (nonUndefinedErrors.length > 0) {
28
+ throw new JudgmentError(nonUndefinedErrors);
29
+ }
30
+ return value;
31
+ },
32
+ });
33
+ };
34
+ //# sourceMappingURL=partial.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"partial.js","sourceRoot":"","sources":["../../../../src/validators/object/partial.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,OAAO,GAAG,CACrB,SAAuB,EACA,EAAE;IACzB,OAAO,YAAY,CAAC;QAClB,KAAK,CAAC,KAAK;YACT,IACE,KAAK,KAAK,IAAI;gBACd,KAAK,KAAK,SAAS;gBACnB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,KAAK,YAAY,IAAI,EACrB,CAAC;gBACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,IAAI,aAAa,CAAC;oBACtB;wBACE,OAAO,EAAE,YAAY,SAAS,mBAAmB;wBACjD,IAAI,EAAE,EAAE;qBACT;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAEzC,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,OAAO,MAAM,CAAC,IAAI,CAAC;YACrB,CAAC;YAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;gBACxD,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YACvD,CAAC,CAAC,CAAC;YAEH,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClC,MAAM,IAAI,aAAa,CAAC,kBAAkB,CAAC,CAAC;YAC9C,CAAC;YAED,OAAO,KAAmB,CAAC;QAC7B,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sibyl-ts",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "TypeScript validation library with type-safe validators",
5
5
  "type": "module",
6
6
  "main": "./dist/cjs/index.js",
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../src/validators/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAM3C,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI;KACrE,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACtE,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAChC,KAAG,SAAS,CAAC,CAAC,CA6Dd,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/validators/object.ts"],"names":[],"mappings":";;;AACA,kDAA+C;AAC/C,oCAA6D;AAC7D,kDAA+C;AAOxC,MAAM,GAAG,GAAG,CAAoC,MAEtD,EAAgB,EAAE;IACjB,OAAO,IAAA,2BAAY,EAAC;QAClB,KAAK,CAAC,KAAK;YACT,IACE,KAAK,KAAK,IAAI;gBACd,KAAK,KAAK,SAAS;gBACnB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,KAAK,YAAY,IAAI,EACrB,CAAC;gBACD,MAAM,SAAS,GAAG,IAAA,2BAAY,EAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,IAAI,qBAAa,CAAC;oBACtB;wBACE,OAAO,EAAE,YAAY,SAAS,mBAAmB;wBACjD,IAAI,EAAE,EAAE;qBACT;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAItD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;gBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,GAAyB,CAAC,CAAC;gBAEpD,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAChD,OAAO;wBACL,GAAG,GAAG;wBACN,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE;qBAC9C,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,qBAAa,EAAE,CAAC;wBACnC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAClD,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gCACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oCAC1B,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;oCACvB,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;gCAC1B,CAAC,CAAC,GAAG;yBACR,CAAC,CAAC,CAAC;wBACJ,OAAO;4BACL,GAAG,GAAG;4BACN,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC;yBAC3C,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAC3B,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,qBAAa,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,MAAW,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AA/DW,QAAA,GAAG,OA+Dd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.d.ts","sourceRoot":"","sources":["../../../src/validators/object.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAM3C,MAAM,MAAM,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,IAAI;KACrE,CAAC,IAAI,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK;CACtE,CAAC;AAEF,eAAO,MAAM,GAAG,GAAI,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,QAAQ,GAC5D,CAAC,IAAI,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAChC,KAAG,SAAS,CAAC,CAAC,CA6Dd,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"object.js","sourceRoot":"","sources":["../../../src/validators/object.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAsB,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAO/C,MAAM,CAAC,MAAM,GAAG,GAAG,CAAoC,MAEtD,EAAgB,EAAE;IACjB,OAAO,YAAY,CAAC;QAClB,KAAK,CAAC,KAAK;YACT,IACE,KAAK,KAAK,IAAI;gBACd,KAAK,KAAK,SAAS;gBACnB,OAAO,KAAK,KAAK,QAAQ;gBACzB,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpB,KAAK,YAAY,IAAI,EACrB,CAAC;gBACD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,IAAI,aAAa,CAAC;oBACtB;wBACE,OAAO,EAAE,YAAY,SAAS,mBAAmB;wBACjD,IAAI,EAAE,EAAE;qBACT;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAItD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,EAAE;gBACxB,MAAM,UAAU,GAAG,KAAK,CAAC,GAAyB,CAAC,CAAC;gBAEpD,IAAI,CAAC;oBACH,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;oBAChD,OAAO;wBACL,GAAG,GAAG;wBACN,MAAM,EAAE,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE;qBAC9C,CAAC;gBACJ,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,IAAI,KAAK,YAAY,aAAa,EAAE,CAAC;wBACnC,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;4BAClD,OAAO,EAAE,KAAK,CAAC,OAAO;4BACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gCACd,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;oCAC1B,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE;oCACvB,CAAC,CAAC,GAAG,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;gCAC1B,CAAC,CAAC,GAAG;yBACR,CAAC,CAAC,CAAC;wBACJ,OAAO;4BACL,GAAG,GAAG;4BACN,MAAM,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,cAAc,CAAC;yBAC3C,CAAC;oBACJ,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,CAAC;oBACd,CAAC;gBACH,CAAC;YACH,CAAC,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAC3B,CAAC;YAEF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;YAClC,CAAC;YAED,OAAO,MAAW,CAAC;QACrB,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC"}