@bessemer/cornerstone 0.5.74 → 0.5.75

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,40 +1,37 @@
1
1
  import { Get } from 'type-fest';
2
- import { ConstrainObjectPaths } from '@bessemer/cornerstone/object/object-path';
2
+ import { ConstrainObjectPathTypes, ObjectPath } from '@bessemer/cornerstone/object/object-path';
3
3
  export declare enum ObjectDiffType {
4
4
  Add = "Add",
5
5
  Remove = "Remove",
6
6
  Update = "Update",
7
7
  Move = "Move"
8
8
  }
9
- export type AddObjectDiff<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = {
9
+ export type AddObjectDiff<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = {
10
10
  type: ObjectDiffType.Add;
11
- path: T;
11
+ path: ObjectPath<T>;
12
12
  value: Get<N, T>;
13
13
  };
14
- export type RemoveObjectDiff<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = {
14
+ export type RemoveObjectDiff<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = {
15
15
  type: ObjectDiffType.Remove;
16
- path: T;
16
+ path: ObjectPath<T>;
17
17
  originalValue: Get<N, T>;
18
18
  };
19
- export type UpdateObjectDiff<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = {
19
+ export type UpdateObjectDiff<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = {
20
20
  type: ObjectDiffType.Update;
21
- path: T;
21
+ path: ObjectPath<T>;
22
22
  value: Get<N, T>;
23
23
  originalValue: Get<N, T>;
24
24
  };
25
- export type MoveObjectDiff<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = {
25
+ export type MoveObjectDiff<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = {
26
26
  type: ObjectDiffType.Move;
27
- path: T;
27
+ path: ObjectPath<T>;
28
28
  value: Get<N, T>;
29
29
  position: number;
30
30
  originalPosition: number;
31
31
  };
32
- export type ObjectDiffEntry<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = AddObjectDiff<N, T> | RemoveObjectDiff<N, T> | UpdateObjectDiff<N, T> | MoveObjectDiff<N, T>;
33
- export type ConstrainObjectDiffEntries<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = Extract<ObjectDiffEntry<N, T>, {
34
- type: T;
35
- }>;
32
+ export type ObjectDiffEntry<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = AddObjectDiff<N, T> | RemoveObjectDiff<N, T> | UpdateObjectDiff<N, T> | MoveObjectDiff<N, T>;
36
33
  export type ObjectDiff<N> = Array<ObjectDiffEntry<N>>;
37
- export declare const add: <N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>>(path: T, value: Get<N, T>) => AddObjectDiff<N, T>;
38
- export declare const remove: <N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>>(path: T, originalValue: Get<N, T>) => RemoveObjectDiff<N, T>;
39
- export declare const update: <N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>>(path: T, value: Get<N, T>, originalValue: Get<N, T>) => UpdateObjectDiff<N, T>;
34
+ export declare const add: <N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>>(path: ObjectPath<T>, value: Get<N, T>) => AddObjectDiff<N, T>;
35
+ export declare const remove: <N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>>(path: ObjectPath<T>, originalValue: Get<N, T>) => RemoveObjectDiff<N, T>;
36
+ export declare const update: <N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>>(path: ObjectPath<T>, value: Get<N, T>, originalValue: Get<N, T>) => UpdateObjectDiff<N, T>;
40
37
  //# sourceMappingURL=object-diff.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"object-diff.d.ts","sourceRoot":"","sources":["../../src/object/object-diff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"object-diff.d.ts","sourceRoot":"","sources":["../../src/object/object-diff.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/object/object-diff.ts"],"sourcesContent":["import { Get } from 'type-fest'\nimport { ConstrainObjectPaths } from '@bessemer/cornerstone/object/object-path'\n\nexport enum ObjectDiffType {\n Add = 'Add',\n Remove = 'Remove',\n Update = 'Update',\n Move = 'Move',\n}\n\nexport type AddObjectDiff<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = {\n type: ObjectDiffType.Add\n path: T\n value: Get<N, T>\n}\n\nexport type RemoveObjectDiff<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = {\n type: ObjectDiffType.Remove\n path: T\n originalValue: Get<N, T>\n}\n\nexport type UpdateObjectDiff<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = {\n type: ObjectDiffType.Update\n path: T\n value: Get<N, T>\n originalValue: Get<N, T>\n}\n\nexport type MoveObjectDiff<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = {\n type: ObjectDiffType.Move\n path: T\n value: Get<N, T>\n position: number\n originalPosition: number\n}\n\nexport type ObjectDiffEntry<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> =\n | AddObjectDiff<N, T>\n | RemoveObjectDiff<N, T>\n | UpdateObjectDiff<N, T>\n | MoveObjectDiff<N, T>\n\nexport type ConstrainObjectDiffEntries<N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>> = Extract<ObjectDiffEntry<N, T>, { type: T }>\n\nexport type ObjectDiff<N> = Array<ObjectDiffEntry<N>>\n\nexport const add = <N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>>(path: T, value: Get<N, T>): AddObjectDiff<N, T> => {\n return { type: ObjectDiffType.Add, path, value }\n}\n\nexport const remove = <N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>>(path: T, originalValue: Get<N, T>): RemoveObjectDiff<N, T> => {\n return { type: ObjectDiffType.Remove, path, originalValue }\n}\n\nexport const update = <N, T extends ConstrainObjectPaths<N> = ConstrainObjectPaths<N>>(\n path: T,\n value: Get<N, T>,\n originalValue: Get<N, T>\n): UpdateObjectDiff<N, T> => {\n return { type: ObjectDiffType.Update, path, value, originalValue }\n}\n"],"mappings":";AAGO,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,SAAM;AACN,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,UAAO;AAJG,SAAAA;AAAA,GAAA;AA4CL,IAAM,MAAM,CAAiE,MAAS,UAA0C;AACrI,SAAO,EAAE,MAAM,iBAAoB,MAAM,MAAM;AACjD;AAEO,IAAM,SAAS,CAAiE,MAAS,kBAAqD;AACnJ,SAAO,EAAE,MAAM,uBAAuB,MAAM,cAAc;AAC5D;AAEO,IAAM,SAAS,CACpB,MACA,OACA,kBAC2B;AAC3B,SAAO,EAAE,MAAM,uBAAuB,MAAM,OAAO,cAAc;AACnE;","names":["ObjectDiffType"]}
1
+ {"version":3,"sources":["../../src/object/object-diff.ts"],"sourcesContent":["import { Get } from 'type-fest'\nimport { ConstrainObjectPathTypes, ObjectPath } from '@bessemer/cornerstone/object/object-path'\n\nexport enum ObjectDiffType {\n Add = 'Add',\n Remove = 'Remove',\n Update = 'Update',\n Move = 'Move',\n}\n\nexport type AddObjectDiff<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = {\n type: ObjectDiffType.Add\n path: ObjectPath<T>\n value: Get<N, T>\n}\n\nexport type RemoveObjectDiff<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = {\n type: ObjectDiffType.Remove\n path: ObjectPath<T>\n originalValue: Get<N, T>\n}\n\nexport type UpdateObjectDiff<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = {\n type: ObjectDiffType.Update\n path: ObjectPath<T>\n value: Get<N, T>\n originalValue: Get<N, T>\n}\n\nexport type MoveObjectDiff<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> = {\n type: ObjectDiffType.Move\n path: ObjectPath<T>\n value: Get<N, T>\n position: number\n originalPosition: number\n}\n\nexport type ObjectDiffEntry<N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>> =\n | AddObjectDiff<N, T>\n | RemoveObjectDiff<N, T>\n | UpdateObjectDiff<N, T>\n | MoveObjectDiff<N, T>\n\nexport type ObjectDiff<N> = Array<ObjectDiffEntry<N>>\n\nexport const add = <N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>>(\n path: ObjectPath<T>,\n value: Get<N, T>\n): AddObjectDiff<N, T> => {\n return { type: ObjectDiffType.Add, path, value }\n}\n\nexport const remove = <N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>>(\n path: ObjectPath<T>,\n originalValue: Get<N, T>\n): RemoveObjectDiff<N, T> => {\n return { type: ObjectDiffType.Remove, path, originalValue }\n}\n\nexport const update = <N, T extends ConstrainObjectPathTypes<N> = ConstrainObjectPathTypes<N>>(\n path: ObjectPath<T>,\n value: Get<N, T>,\n originalValue: Get<N, T>\n): UpdateObjectDiff<N, T> => {\n return { type: ObjectDiffType.Update, path, value, originalValue }\n}\n"],"mappings":";AAGO,IAAK,iBAAL,kBAAKA,oBAAL;AACL,EAAAA,gBAAA,SAAM;AACN,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,YAAS;AACT,EAAAA,gBAAA,UAAO;AAJG,SAAAA;AAAA,GAAA;AA0CL,IAAM,MAAM,CACjB,MACA,UACwB;AACxB,SAAO,EAAE,MAAM,iBAAoB,MAAM,MAAM;AACjD;AAEO,IAAM,SAAS,CACpB,MACA,kBAC2B;AAC3B,SAAO,EAAE,MAAM,uBAAuB,MAAM,cAAc;AAC5D;AAEO,IAAM,SAAS,CACpB,MACA,OACA,kBAC2B;AAC3B,SAAO,EAAE,MAAM,uBAAuB,MAAM,OAAO,cAAc;AACnE;","names":["ObjectDiffType"]}
@@ -2,8 +2,8 @@ import Zod from 'zod';
2
2
  import { Get, Paths, UnknownRecord } from 'type-fest';
3
3
  import { JoinPath, NominalType, ToString, ToStringArray } from '@bessemer/cornerstone/types';
4
4
  export type ObjectPathType = string;
5
+ export type ConstrainObjectPathTypes<N> = ToString<Paths<N>>;
5
6
  export type ObjectPath<T extends ObjectPathType = ObjectPathType> = NominalType<Array<string>, ['ObjectPath', T]>;
6
- export type ConstrainObjectPaths<N> = ObjectPath<ToString<Paths<N>>>;
7
7
  export declare const of: <T extends Array<string | number>>(value: T) => ObjectPath<JoinPath<ToStringArray<T>>>;
8
8
  export declare const fromString: <T extends ObjectPathType>(path: T) => ObjectPath<T>;
9
9
  export declare const Schema: Zod.ZodPipe<Zod.ZodUnion<readonly [Zod.ZodArray<Zod.ZodUnion<readonly [Zod.ZodString, Zod.ZodNumber]>>, Zod.ZodString]>, Zod.ZodTransform<ObjectPath<string>, string | (string | number)[]>>;
@@ -1 +1 @@
1
- {"version":3,"file":"object-path.d.ts","sourceRoot":"","sources":["../../src/object/object-path.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAMrD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE5F,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAA;AACjH,MAAM,MAAM,oBAAoB,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAEpE,eAAO,MAAM,EAAE,GAAI,CAAC,SAAS,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAEpG,CAAA;AAID,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,cAAc,EAAE,MAAM,CAAC,KAAG,UAAU,CAAC,CAAC,CAG1E,CAAA;AAED,eAAO,MAAM,MAAM,8LAMjB,CAAA;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAQpH,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAQzH,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,aAAa,EAAE,MAAM,UAAU,EAAE,cAAc,OAAO,KAAG,OAc3F,CAAA"}
1
+ {"version":3,"file":"object-path.d.ts","sourceRoot":"","sources":["../../src/object/object-path.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAA;AACrB,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAMrD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAE5F,MAAM,MAAM,cAAc,GAAG,MAAM,CAAA;AACnC,MAAM,MAAM,wBAAwB,CAAC,CAAC,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAE5D,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,IAAI,WAAW,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,CAAA;AAEjH,eAAO,MAAM,EAAE,GAAI,CAAC,SAAS,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,OAAO,CAAC,KAAG,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAEpG,CAAA;AAID,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,cAAc,EAAE,MAAM,CAAC,KAAG,UAAU,CAAC,CAAC,CAG1E,CAAA;AAED,eAAO,MAAM,MAAM,8LAMjB,CAAA;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAQpH,CAAA;AAED,eAAO,MAAM,SAAS,GAAI,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,UAAU,CAAC,CAAC,CAAC,KAAG,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,SAQzH,CAAA;AAED,eAAO,MAAM,UAAU,GAAI,QAAQ,aAAa,EAAE,MAAM,UAAU,EAAE,cAAc,OAAO,KAAG,OAc3F,CAAA"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/object/object-path.ts"],"sourcesContent":["import Zod from 'zod'\nimport { Get, Paths, UnknownRecord } from 'type-fest'\nimport { isObject } from '@bessemer/cornerstone/object'\nimport { produce } from 'immer'\nimport { assert } from '@bessemer/cornerstone/assertion'\nimport { isEmpty } from '@bessemer/cornerstone/array'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { JoinPath, NominalType, ToString, ToStringArray } from '@bessemer/cornerstone/types'\n\nexport type ObjectPathType = string\nexport type ObjectPath<T extends ObjectPathType = ObjectPathType> = NominalType<Array<string>, ['ObjectPath', T]>\nexport type ConstrainObjectPaths<N> = ObjectPath<ToString<Paths<N>>>\n\nexport const of = <T extends Array<string | number>>(value: T): ObjectPath<JoinPath<ToStringArray<T>>> => {\n return value.map((it) => `${it}`) as ObjectPath<JoinPath<ToStringArray<T>>>\n}\n\nconst ObjectPathRegex = /^[a-zA-Z_$][a-zA-Z0-9_$]*(?:\\.[a-zA-Z_$][a-zA-Z0-9_$]*|\\.\\d+)*$/\n\nexport const fromString = <T extends ObjectPathType>(path: T): ObjectPath<T> => {\n assert(ObjectPathRegex.test(path), () => `Unable to parse ObjectPath from string: ${path}`)\n return of(path.split('.')) as ObjectPath<T>\n}\n\nexport const Schema = Zod.union([Zod.array(Zod.union([Zod.string(), Zod.number()])), Zod.string()]).transform((it) => {\n if (Array.isArray(it)) {\n return of(it)\n } else {\n return fromString(it)\n }\n})\n\nexport const getValue = <N extends UnknownRecord, T extends ObjectPathType>(object: N, path: ObjectPath<T>): Get<N, T> => {\n const result = getValueResult(object, path)\n\n if (result.isSuccess) {\n return result.value\n } else {\n throw new Error(`Unable to resolve ObjectPath: ${path} against record: ${JSON.stringify(object)}`)\n }\n}\n\nexport const findValue = <N extends UnknownRecord, T extends ObjectPathType>(object: N, path: ObjectPath<T>): Get<N, T> | undefined => {\n const result = getValueResult(object, path)\n\n if (result.isSuccess) {\n return result.value\n } else {\n return undefined\n }\n}\n\nexport const applyValue = (object: UnknownRecord, path: ObjectPath, valueToApply: unknown): unknown => {\n if (isEmpty(path)) {\n return valueToApply\n }\n\n return produce(object, (draft) => {\n const rest = path.slice(0, -1)\n const last = path[path.length - 1]!\n const parent: any = isEmpty(rest) ? draft : getValue(draft, of(rest))\n\n // Check to make sure the last index is ok\n assertLegalIndex(parent, last, object, path)\n parent[last] = valueToApply\n })\n}\n\nconst getValueResult = (object: UnknownRecord, path: ObjectPath): Result<any> => {\n let value: any = object\n\n for (const key of path) {\n if (Array.isArray(value)) {\n const numberKey = Number(key)\n if (numberKey < 0 || numberKey >= value.length) {\n return failure()\n }\n\n value = value[numberKey]\n } else if (isObject(value)) {\n if (!(key in value)) {\n return failure()\n }\n\n value = value[key]\n } else {\n return failure()\n }\n }\n\n return success(value)\n}\n\nconst assertLegalIndex = (value: any, _key: string, object: UnknownRecord, path: ObjectPath): void => {\n if (Array.isArray(value) || isObject(value)) {\n return\n } else {\n throw new Error(`Unable to resolve ObjectPath: ${path} against record: ${JSON.stringify(object)}`)\n }\n}\n"],"mappings":";AAAA,OAAO,SAAS;AAEhB,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,eAAe;AACxB,SAAS,SAAiB,eAAe;AAOlC,IAAM,KAAK,CAAmC,UAAqD;AACxG,SAAO,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE;AAClC;AAEA,IAAM,kBAAkB;AAEjB,IAAM,aAAa,CAA2B,SAA2B;AAC9E,SAAO,gBAAgB,KAAK,IAAI,GAAG,MAAM,2CAA2C,IAAI,EAAE;AAC1F,SAAO,GAAG,KAAK,MAAM,GAAG,CAAC;AAC3B;AAEO,IAAM,SAAS,IAAI,MAAM,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO;AACpH,MAAI,MAAM,QAAQ,EAAE,GAAG;AACrB,WAAO,GAAG,EAAE;AAAA,EACd,OAAO;AACL,WAAO,WAAW,EAAE;AAAA,EACtB;AACF,CAAC;AAEM,IAAM,WAAW,CAAoD,QAAW,SAAmC;AACxH,QAAM,SAAS,eAAe,QAAQ,IAAI;AAE1C,MAAI,OAAO,WAAW;AACpB,WAAO,OAAO;AAAA,EAChB,OAAO;AACL,UAAM,IAAI,MAAM,iCAAiC,IAAI,oBAAoB,KAAK,UAAU,MAAM,CAAC,EAAE;AAAA,EACnG;AACF;AAEO,IAAM,YAAY,CAAoD,QAAW,SAA+C;AACrI,QAAM,SAAS,eAAe,QAAQ,IAAI;AAE1C,MAAI,OAAO,WAAW;AACpB,WAAO,OAAO;AAAA,EAChB,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAEO,IAAM,aAAa,CAAC,QAAuB,MAAkB,iBAAmC;AACrG,MAAI,QAAQ,IAAI,GAAG;AACjB,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,QAAQ,CAAC,UAAU;AAChC,UAAM,OAAO,KAAK,MAAM,GAAG,EAAE;AAC7B,UAAM,OAAO,KAAK,KAAK,SAAS,CAAC;AACjC,UAAM,SAAc,QAAQ,IAAI,IAAI,QAAQ,SAAS,OAAO,GAAG,IAAI,CAAC;AAGpE,qBAAiB,QAAQ,MAAM,QAAQ,IAAI;AAC3C,WAAO,IAAI,IAAI;AAAA,EACjB,CAAC;AACH;AAEA,IAAM,iBAAiB,CAAC,QAAuB,SAAkC;AAC/E,MAAI,QAAa;AAEjB,aAAW,OAAO,MAAM;AACtB,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,YAAM,YAAY,OAAO,GAAG;AAC5B,UAAI,YAAY,KAAK,aAAa,MAAM,QAAQ;AAC9C,eAAO,QAAQ;AAAA,MACjB;AAEA,cAAQ,MAAM,SAAS;AAAA,IACzB,WAAW,SAAS,KAAK,GAAG;AAC1B,UAAI,EAAE,OAAO,QAAQ;AACnB,eAAO,QAAQ;AAAA,MACjB;AAEA,cAAQ,MAAM,GAAG;AAAA,IACnB,OAAO;AACL,aAAO,QAAQ;AAAA,IACjB;AAAA,EACF;AAEA,SAAO,QAAQ,KAAK;AACtB;AAEA,IAAM,mBAAmB,CAAC,OAAY,MAAc,QAAuB,SAA2B;AACpG,MAAI,MAAM,QAAQ,KAAK,KAAK,SAAS,KAAK,GAAG;AAC3C;AAAA,EACF,OAAO;AACL,UAAM,IAAI,MAAM,iCAAiC,IAAI,oBAAoB,KAAK,UAAU,MAAM,CAAC,EAAE;AAAA,EACnG;AACF;","names":[]}
1
+ {"version":3,"sources":["../../src/object/object-path.ts"],"sourcesContent":["import Zod from 'zod'\nimport { Get, Paths, UnknownRecord } from 'type-fest'\nimport { isObject } from '@bessemer/cornerstone/object'\nimport { produce } from 'immer'\nimport { assert } from '@bessemer/cornerstone/assertion'\nimport { isEmpty } from '@bessemer/cornerstone/array'\nimport { failure, Result, success } from '@bessemer/cornerstone/result'\nimport { JoinPath, NominalType, ToString, ToStringArray } from '@bessemer/cornerstone/types'\n\nexport type ObjectPathType = string\nexport type ConstrainObjectPathTypes<N> = ToString<Paths<N>>\n\nexport type ObjectPath<T extends ObjectPathType = ObjectPathType> = NominalType<Array<string>, ['ObjectPath', T]>\n\nexport const of = <T extends Array<string | number>>(value: T): ObjectPath<JoinPath<ToStringArray<T>>> => {\n return value.map((it) => `${it}`) as ObjectPath<JoinPath<ToStringArray<T>>>\n}\n\nconst ObjectPathRegex = /^[a-zA-Z_$][a-zA-Z0-9_$]*(?:\\.[a-zA-Z_$][a-zA-Z0-9_$]*|\\.\\d+)*$/\n\nexport const fromString = <T extends ObjectPathType>(path: T): ObjectPath<T> => {\n assert(ObjectPathRegex.test(path), () => `Unable to parse ObjectPath from string: ${path}`)\n return of(path.split('.')) as ObjectPath<T>\n}\n\nexport const Schema = Zod.union([Zod.array(Zod.union([Zod.string(), Zod.number()])), Zod.string()]).transform((it) => {\n if (Array.isArray(it)) {\n return of(it)\n } else {\n return fromString(it)\n }\n})\n\nexport const getValue = <N extends UnknownRecord, T extends ObjectPathType>(object: N, path: ObjectPath<T>): Get<N, T> => {\n const result = getValueResult(object, path)\n\n if (result.isSuccess) {\n return result.value\n } else {\n throw new Error(`Unable to resolve ObjectPath: ${path} against record: ${JSON.stringify(object)}`)\n }\n}\n\nexport const findValue = <N extends UnknownRecord, T extends ObjectPathType>(object: N, path: ObjectPath<T>): Get<N, T> | undefined => {\n const result = getValueResult(object, path)\n\n if (result.isSuccess) {\n return result.value\n } else {\n return undefined\n }\n}\n\nexport const applyValue = (object: UnknownRecord, path: ObjectPath, valueToApply: unknown): unknown => {\n if (isEmpty(path)) {\n return valueToApply\n }\n\n return produce(object, (draft) => {\n const rest = path.slice(0, -1)\n const last = path[path.length - 1]!\n const parent: any = isEmpty(rest) ? draft : getValue(draft, of(rest))\n\n // Check to make sure the last index is ok\n assertLegalIndex(parent, last, object, path)\n parent[last] = valueToApply\n })\n}\n\nconst getValueResult = (object: UnknownRecord, path: ObjectPath): Result<any> => {\n let value: any = object\n\n for (const key of path) {\n if (Array.isArray(value)) {\n const numberKey = Number(key)\n if (numberKey < 0 || numberKey >= value.length) {\n return failure()\n }\n\n value = value[numberKey]\n } else if (isObject(value)) {\n if (!(key in value)) {\n return failure()\n }\n\n value = value[key]\n } else {\n return failure()\n }\n }\n\n return success(value)\n}\n\nconst assertLegalIndex = (value: any, _key: string, object: UnknownRecord, path: ObjectPath): void => {\n if (Array.isArray(value) || isObject(value)) {\n return\n } else {\n throw new Error(`Unable to resolve ObjectPath: ${path} against record: ${JSON.stringify(object)}`)\n }\n}\n"],"mappings":";AAAA,OAAO,SAAS;AAEhB,SAAS,gBAAgB;AACzB,SAAS,eAAe;AACxB,SAAS,cAAc;AACvB,SAAS,eAAe;AACxB,SAAS,SAAiB,eAAe;AAQlC,IAAM,KAAK,CAAmC,UAAqD;AACxG,SAAO,MAAM,IAAI,CAAC,OAAO,GAAG,EAAE,EAAE;AAClC;AAEA,IAAM,kBAAkB;AAEjB,IAAM,aAAa,CAA2B,SAA2B;AAC9E,SAAO,gBAAgB,KAAK,IAAI,GAAG,MAAM,2CAA2C,IAAI,EAAE;AAC1F,SAAO,GAAG,KAAK,MAAM,GAAG,CAAC;AAC3B;AAEO,IAAM,SAAS,IAAI,MAAM,CAAC,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,OAAO,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,EAAE,UAAU,CAAC,OAAO;AACpH,MAAI,MAAM,QAAQ,EAAE,GAAG;AACrB,WAAO,GAAG,EAAE;AAAA,EACd,OAAO;AACL,WAAO,WAAW,EAAE;AAAA,EACtB;AACF,CAAC;AAEM,IAAM,WAAW,CAAoD,QAAW,SAAmC;AACxH,QAAM,SAAS,eAAe,QAAQ,IAAI;AAE1C,MAAI,OAAO,WAAW;AACpB,WAAO,OAAO;AAAA,EAChB,OAAO;AACL,UAAM,IAAI,MAAM,iCAAiC,IAAI,oBAAoB,KAAK,UAAU,MAAM,CAAC,EAAE;AAAA,EACnG;AACF;AAEO,IAAM,YAAY,CAAoD,QAAW,SAA+C;AACrI,QAAM,SAAS,eAAe,QAAQ,IAAI;AAE1C,MAAI,OAAO,WAAW;AACpB,WAAO,OAAO;AAAA,EAChB,OAAO;AACL,WAAO;AAAA,EACT;AACF;AAEO,IAAM,aAAa,CAAC,QAAuB,MAAkB,iBAAmC;AACrG,MAAI,QAAQ,IAAI,GAAG;AACjB,WAAO;AAAA,EACT;AAEA,SAAO,QAAQ,QAAQ,CAAC,UAAU;AAChC,UAAM,OAAO,KAAK,MAAM,GAAG,EAAE;AAC7B,UAAM,OAAO,KAAK,KAAK,SAAS,CAAC;AACjC,UAAM,SAAc,QAAQ,IAAI,IAAI,QAAQ,SAAS,OAAO,GAAG,IAAI,CAAC;AAGpE,qBAAiB,QAAQ,MAAM,QAAQ,IAAI;AAC3C,WAAO,IAAI,IAAI;AAAA,EACjB,CAAC;AACH;AAEA,IAAM,iBAAiB,CAAC,QAAuB,SAAkC;AAC/E,MAAI,QAAa;AAEjB,aAAW,OAAO,MAAM;AACtB,QAAI,MAAM,QAAQ,KAAK,GAAG;AACxB,YAAM,YAAY,OAAO,GAAG;AAC5B,UAAI,YAAY,KAAK,aAAa,MAAM,QAAQ;AAC9C,eAAO,QAAQ;AAAA,MACjB;AAEA,cAAQ,MAAM,SAAS;AAAA,IACzB,WAAW,SAAS,KAAK,GAAG;AAC1B,UAAI,EAAE,OAAO,QAAQ;AACnB,eAAO,QAAQ;AAAA,MACjB;AAEA,cAAQ,MAAM,GAAG;AAAA,IACnB,OAAO;AACL,aAAO,QAAQ;AAAA,IACjB;AAAA,EACF;AAEA,SAAO,QAAQ,KAAK;AACtB;AAEA,IAAM,mBAAmB,CAAC,OAAY,MAAc,QAAuB,SAA2B;AACpG,MAAI,MAAM,QAAQ,KAAK,KAAK,SAAS,KAAK,GAAG;AAC3C;AAAA,EACF,OAAO;AACL,UAAM,IAAI,MAAM,iCAAiC,IAAI,oBAAoB,KAAK,UAAU,MAAM,CAAC,EAAE;AAAA,EACnG;AACF;","names":[]}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@bessemer/cornerstone",
3
3
  "type": "module",
4
- "version": "0.5.74",
4
+ "version": "0.5.75",
5
5
  "module": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
7
  "sideEffects": false,