@dzeio/schema 0.1.0 → 0.2.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.
package/dist/Schema.d.mts CHANGED
@@ -132,6 +132,7 @@ declare class SchemaAny extends SchemaItem {
132
132
  }
133
133
 
134
134
  declare class SchemaDate extends SchemaItem<Date> {
135
+ parseString(format?: 'iso8601' | 'yy-mm-dd' | 'jj/mm/yy'): this;
135
136
  isOfType(input: unknown): input is Date;
136
137
  }
137
138
 
package/dist/Schema.d.ts CHANGED
@@ -132,6 +132,7 @@ declare class SchemaAny extends SchemaItem {
132
132
  }
133
133
 
134
134
  declare class SchemaDate extends SchemaItem<Date> {
135
+ parseString(format?: 'iso8601' | 'yy-mm-dd' | 'jj/mm/yy'): this;
135
136
  isOfType(input: unknown): input is Date;
136
137
  }
137
138
 
package/dist/Schema.js CHANGED
@@ -429,10 +429,35 @@ var SchemaAny = class extends SchemaItem {
429
429
 
430
430
  // src/items/date.ts
431
431
  var SchemaDate = class extends SchemaItem {
432
+ parseString(format = "iso8601") {
433
+ switch (format) {
434
+ case "yy-mm-dd":
435
+ case "iso8601": {
436
+ this.addPreProcess((it) => typeof it === "string" ? new Date(it) : it);
437
+ break;
438
+ }
439
+ case "jj/mm/yy": {
440
+ this.addPreProcess((input) => {
441
+ if (typeof input !== "string") {
442
+ return input;
443
+ }
444
+ const splitted = input.split("/").map((it) => Number.parseInt(it, 10));
445
+ if (splitted.length !== 3) {
446
+ return input;
447
+ }
448
+ return new Date(splitted[2], splitted[1] - 1, splitted[0]);
449
+ });
450
+ }
451
+ }
452
+ return this;
453
+ }
432
454
  isOfType(input) {
433
455
  return input instanceof Date;
434
456
  }
435
457
  };
458
+ __decorateClass([
459
+ parceable()
460
+ ], SchemaDate.prototype, "parseString", 1);
436
461
 
437
462
  // src/items/record.ts
438
463
  var import_object_util4 = require("@dzeio/object-util");
package/dist/Schema.mjs CHANGED
@@ -386,10 +386,35 @@ var SchemaAny = class extends SchemaItem {
386
386
 
387
387
  // src/items/date.ts
388
388
  var SchemaDate = class extends SchemaItem {
389
+ parseString(format = "iso8601") {
390
+ switch (format) {
391
+ case "yy-mm-dd":
392
+ case "iso8601": {
393
+ this.addPreProcess((it) => typeof it === "string" ? new Date(it) : it);
394
+ break;
395
+ }
396
+ case "jj/mm/yy": {
397
+ this.addPreProcess((input) => {
398
+ if (typeof input !== "string") {
399
+ return input;
400
+ }
401
+ const splitted = input.split("/").map((it) => Number.parseInt(it, 10));
402
+ if (splitted.length !== 3) {
403
+ return input;
404
+ }
405
+ return new Date(splitted[2], splitted[1] - 1, splitted[0]);
406
+ });
407
+ }
408
+ }
409
+ return this;
410
+ }
389
411
  isOfType(input) {
390
412
  return input instanceof Date;
391
413
  }
392
414
  };
415
+ __decorateClass([
416
+ parceable()
417
+ ], SchemaDate.prototype, "parseString", 1);
393
418
 
394
419
  // src/items/record.ts
395
420
  import { isObject as isObject2, objectLoop as objectLoop3 } from "@dzeio/object-util";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dzeio/schema",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "dependencies": {
5
5
  "@dzeio/object-util": "^1.8.3"
6
6
  },