akanjs 2.3.1-rc.0 → 2.3.1-rc.1

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.
@@ -206,12 +206,12 @@ declare global {
206
206
  [PRIMITIVE_CLIENT_VALUE]: boolean;
207
207
  [PRIMITIVE_DEFAULT_VALUE]: boolean;
208
208
  [PRIMITIVE_EXAMPLE_VALUE]: boolean;
209
- validate(value: boolean): boolean;
210
- parseValue(input: boolean): boolean;
211
- serializeValue(value: boolean): boolean;
212
- _parse(input: boolean): boolean;
213
- _serialize(value: boolean): boolean;
214
- _checkValue(value: boolean): void;
209
+ validate(value: boolean | number): boolean;
210
+ parseValue(input: boolean | number): boolean | number;
211
+ serializeValue(value: boolean | number): boolean | number;
212
+ _parse(input: boolean | number): boolean;
213
+ _serialize(value: boolean | number): boolean;
214
+ _checkValue(value: boolean | number): void;
215
215
  }
216
216
  interface DateConstructor {
217
217
  refName: "Date";
@@ -301,19 +301,26 @@ Object.assign(String, scalarPrimitiveStatics, {
301
301
  });
302
302
  PrimitiveRegistry.register(String);
303
303
 
304
+ const normalizeBooleanPrimitiveValue = (value: boolean | number): boolean | null => {
305
+ if (typeof value === "boolean") return value;
306
+ if (value === 1) return true;
307
+ if (value === 0) return false;
308
+ return null;
309
+ };
310
+
304
311
  Object.assign(Boolean, {
305
312
  ...scalarPrimitiveStatics,
306
313
  refName: "Boolean",
307
314
  [PRIMITIVE_DEFAULT_VALUE]: false,
308
315
  [PRIMITIVE_EXAMPLE_VALUE]: true,
309
- validate(value: boolean) {
310
- return typeof value === "boolean";
316
+ validate(value: boolean | number) {
317
+ return normalizeBooleanPrimitiveValue(value) !== null;
311
318
  },
312
- parseValue(input: boolean) {
313
- return Boolean(input);
319
+ parseValue(input: boolean | number) {
320
+ return normalizeBooleanPrimitiveValue(input) ?? input;
314
321
  },
315
- serializeValue(value: boolean) {
316
- return Boolean(value);
322
+ serializeValue(value: boolean | number) {
323
+ return normalizeBooleanPrimitiveValue(value) ?? value;
317
324
  },
318
325
  });
319
326
  PrimitiveRegistry.register(Boolean);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akanjs",
3
- "version": "2.3.1-rc.0",
3
+ "version": "2.3.1-rc.1",
4
4
  "sourceType": "module",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -110,12 +110,12 @@ declare global {
110
110
  [PRIMITIVE_CLIENT_VALUE]: boolean;
111
111
  [PRIMITIVE_DEFAULT_VALUE]: boolean;
112
112
  [PRIMITIVE_EXAMPLE_VALUE]: boolean;
113
- validate(value: boolean): boolean;
114
- parseValue(input: boolean): boolean;
115
- serializeValue(value: boolean): boolean;
116
- _parse(input: boolean): boolean;
117
- _serialize(value: boolean): boolean;
118
- _checkValue(value: boolean): void;
113
+ validate(value: boolean | number): boolean;
114
+ parseValue(input: boolean | number): boolean | number;
115
+ serializeValue(value: boolean | number): boolean | number;
116
+ _parse(input: boolean | number): boolean;
117
+ _serialize(value: boolean | number): boolean;
118
+ _checkValue(value: boolean | number): void;
119
119
  }
120
120
  interface DateConstructor {
121
121
  refName: "Date";