@need-code/nc-ddd 0.0.1 → 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.
@@ -1,6 +1,6 @@
1
1
  import type * as v from "valibot";
2
2
  import type { VO } from "./vo";
3
- type AllowedEntityPropValue = VO<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>> | Array<VO<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>>;
3
+ type AllowedEntityPropValue = VO<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>> | Array<VO<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>> | null;
4
4
  export type IEntityProps = {
5
5
  id: VO<v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>;
6
6
  };
@@ -1 +1 @@
1
- {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE/B,KAAK,sBAAsB,GACvB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GACxD,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEpE,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IACxB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,GACjB,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GACnB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GACf,KAAK,CAAC;AAEd,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,8BAAsB,MAAM,CAC1B,KAAK,SAAS,YAAY,GAAG,MAAM,CAAC,MAAM,KAAK,EAAE,sBAAsB,CAAC;IAExE,SAAgB,KAAK,EAAE,KAAK,CAAC;IAE7B;;;OAGG;IACH,SAAS,aAAa,KAAK,EAAE,KAAK;IAIlC;;;OAGG;IACH,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,CAEpB;IAED,IAAI,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,CASvC;IAED;;;;;OAKG;IACI,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO;CAe/C"}
1
+ {"version":3,"file":"entity.d.ts","sourceRoot":"","sources":["../../src/core/entity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,SAAS,CAAC;AAClC,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE/B,KAAK,sBAAsB,GACvB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,GACxD,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAC/D,IAAI,CAAC;AAET,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC9D,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IACxB,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAC5B,YAAY,CAAC,CAAC,CAAC,EAAE,GACjB,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GACnB,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GACf,KAAK,CAAC;AAEd,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAC/B,CAAC,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC;AAEF;;;;GAIG;AACH,8BAAsB,MAAM,CAC1B,KAAK,SAAS,YAAY,GAAG,MAAM,CAAC,MAAM,KAAK,EAAE,sBAAsB,CAAC;IAExE,SAAgB,KAAK,EAAE,KAAK,CAAC;IAE7B;;;OAGG;IACH,SAAS,aAAa,KAAK,EAAE,KAAK;IAIlC;;;OAGG;IACH,IAAI,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,CAEpB;IAED,IAAI,SAAS,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAYvC;IAED;;;;;OAKG;IACI,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO;CAe/C"}
@@ -21,6 +21,9 @@ export class Entity {
21
21
  }
22
22
  get primitive() {
23
23
  return Object.fromEntries(Object.entries(this.props).map(([k, v]) => {
24
+ if (v === null) {
25
+ return [k, v];
26
+ }
24
27
  if (Array.isArray(v)) {
25
28
  return [k, v.map((i) => i.value)];
26
29
  }
@@ -1 +1 @@
1
- {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/core/entity.ts"],"names":[],"mappings":"AAsBA;;;;GAIG;AACH,MAAM,OAAgB,MAAM;IAGV,KAAK,CAAQ;IAE7B;;;OAGG;IACH,YAAsB,KAAY;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAiB,CAAC;IACtC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACxC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CACwB,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAC,KAAqB;QAClC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;CACF"}
1
+ {"version":3,"file":"entity.js","sourceRoot":"","sources":["../../src/core/entity.ts"],"names":[],"mappings":"AAuBA;;;;GAIG;AACH,MAAM,OAAgB,MAAM;IAGV,KAAK,CAAQ;IAE7B;;;OAGG;IACH,YAAsB,KAAY;QAChC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;OAGG;IACH,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAiB,CAAC;IACtC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACxC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;gBACf,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YAChB,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;gBACrB,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,CAAC,CACwB,CAAC;IAC/B,CAAC;IAED;;;;;OAKG;IACI,OAAO,CAAC,KAAqB;QAClC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,KAAK,KAAK,EAAE,CAAC;YACnB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC,EAAE,CAAC;YAC/B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -1,4 +1,6 @@
1
1
  import * as v from "valibot";
2
2
  import type { VO } from "@/core/vo";
3
- export declare function voFactory<S extends v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>(value: unknown, schema: S, constructorFn: (props: v.InferOutput<S>) => VO<S>): import("@sweet-monads/either").Either<[string, ...string[]] | (Readonly<Partial<Record<S extends v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>> | v.BaseSchemaAsync<unknown, unknown, v.BaseIssue<unknown>> ? v.IssueDotPath<S> : string, [string, ...string[]]>>> extends infer T ? { [TKey in keyof T]: T[TKey]; } : never) | undefined, never> | import("@sweet-monads/either").Either<never, VO<S>>;
3
+ export declare function voFactory<S extends v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>>>(value: unknown, schema: S, constructorFn: (props: v.InferOutput<S>) => VO<S>, key?: string): import("@sweet-monads/either").Either<[string, ...string[]] | {
4
+ [key]: [string, ...string[]] | (Readonly<Partial<Record<S extends v.BaseSchema<unknown, unknown, v.BaseIssue<unknown>> | v.BaseSchemaAsync<unknown, unknown, v.BaseIssue<unknown>> ? v.IssueDotPath<S> : string, [string, ...string[]]>>> extends infer T ? { [TKey in keyof T]: T[TKey]; } : never) | undefined;
5
+ } | undefined, never> | import("@sweet-monads/either").Either<never, VO<S>>;
4
6
  //# sourceMappingURL=vo-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vo-factory.d.ts","sourceRoot":"","sources":["../../src/helpers/vo-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACtF,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,CAAC,EACT,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,iZAQlD"}
1
+ {"version":3,"file":"vo-factory.d.ts","sourceRoot":"","sources":["../../src/helpers/vo-factory.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AAEpC,wBAAgB,SAAS,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,EACtF,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,CAAC,EACT,aAAa,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EACjD,GAAG,CAAC,EAAE,MAAM;IASF,CAAC,GAAG,CAAC,4SAAW;4EAM3B"}
@@ -1,10 +1,15 @@
1
1
  import { left, right } from "@sweet-monads/either";
2
2
  import * as v from "valibot";
3
- export function voFactory(value, schema, constructorFn) {
3
+ export function voFactory(value, schema, constructorFn, key) {
4
4
  const parseResult = v.safeParse(schema, value);
5
5
  if (!parseResult.success) {
6
6
  const flattedErrors = v.flatten(parseResult.issues);
7
- return left(flattedErrors.root || flattedErrors.nested || flattedErrors.other);
7
+ const errorsRes = flattedErrors.root || flattedErrors.nested || flattedErrors.other;
8
+ return left(key
9
+ ? {
10
+ [key]: errorsRes,
11
+ }
12
+ : errorsRes);
8
13
  }
9
14
  return right(constructorFn(parseResult.output));
10
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"vo-factory.js","sourceRoot":"","sources":["../../src/helpers/vo-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAG7B,MAAM,UAAU,SAAS,CACvB,KAAc,EACd,MAAS,EACT,aAAiD;IAEjD,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAgB,WAAW,CAAC,MAAM,CAAC,CAAC;QACnE,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;IACjF,CAAC;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC"}
1
+ {"version":3,"file":"vo-factory.js","sourceRoot":"","sources":["../../src/helpers/vo-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAG7B,MAAM,UAAU,SAAS,CACvB,KAAc,EACd,MAAS,EACT,aAAiD,EACjD,GAAY;IAEZ,MAAM,WAAW,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAC/C,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;QACzB,MAAM,aAAa,GAAG,CAAC,CAAC,OAAO,CAAgB,WAAW,CAAC,MAAM,CAAC,CAAC;QACnE,MAAM,SAAS,GAAG,aAAa,CAAC,IAAI,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC;QACpF,OAAO,IAAI,CACT,GAAG;YACD,CAAC,CAAC;gBACE,CAAC,GAAG,CAAC,EAAE,SAAS;aACjB;YACH,CAAC,CAAC,SAAS,CACd,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;AAClD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@need-code/nc-ddd",
3
- "version": "0.0.1",
3
+ "version": "0.2.0",
4
4
  "description": "A set of base classes for implementing Domain-Driven Design patterns.",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",