bidirectional-adapter 1.1.1 → 1.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/README.md CHANGED
@@ -1,5 +1,4 @@
1
- Bi-Directional Adapter
2
- =========================
1
+ # Bi-Directional Adapter
3
2
 
4
3
  [![npm version](https://img.shields.io/npm/v/bidirectional-adapter.svg?style=flat-square)](https://www.npmjs.com/package/bidirectional-adapter)
5
4
  [![npm downloads](https://img.shields.io/npm/dm/bidirectional-adapter.svg?style=flat-square)](https://www.npmjs.com/package/bidirectional-adapter)
@@ -17,8 +16,8 @@ With `bidirectional-adapter` you can define a simple entity which can be used to
17
16
 
18
17
  ```ts
19
18
  const adapter = createAdapter<string, number>(
20
- (stringValue) => parseInt(stringValue, 10),
21
- (numericValue) => String(numericValue)
19
+ (stringValue) => parseInt(stringValue, 10),
20
+ (numericValue) => String(numericValue)
22
21
  );
23
22
  ```
24
23
 
@@ -29,34 +28,84 @@ import axios from 'axios';
29
28
  import createAdapter from 'bidirectional-adapter';
30
29
 
31
30
  const accountAdapter = createAdapter(
32
- (dbAccount) => ({
33
- id: dbAccount.user_id,
34
- name: `${dbAccount.user.firstName} ${dbAccount.user.lastName}`,
35
- email: dbAccount.user.email
36
- }),
37
- (appAccount) => ({
38
- user_id: appAcount.id,
39
- user: {
40
- firstName: appAccount.name.split(' ')[0],
41
- lastName: appAccount.name.split(' ')[1]
42
- },
43
- email: appAccount.email
44
- })
31
+ (dbAccount) => ({
32
+ id: dbAccount.user_id,
33
+ name: `${dbAccount.user.firstName} ${dbAccount.user.lastName}`,
34
+ email: dbAccount.user.email,
35
+ }),
36
+ (appAccount) => ({
37
+ user_id: appAcount.id,
38
+ user: {
39
+ firstName: appAccount.name.split(' ')[0],
40
+ lastName: appAccount.name.split(' ')[1],
41
+ },
42
+ email: appAccount.email,
43
+ })
45
44
  );
46
45
 
47
46
  const fetchAccount = (userID) => {
48
- // state is in the shape of propertyTwo
49
- // do reducer stuff here
50
- return axios.get(`/account/${userID}`).then(res => accountAdapter.fromDB(res.data));
47
+ // state is in the shape of propertyTwo
48
+ // do reducer stuff here
49
+ return axios.get(`/account/${userID}`).then((res) => accountAdapter.fromDB(res.data));
51
50
  };
52
51
 
53
52
  const updateAccount = (account) => {
54
- // state is in the shape of propertyTwo
55
- // do reducer stuff here
56
- return axios.post(`/account/${userID}`, accountAdapter.toDB(account));
53
+ // state is in the shape of propertyTwo
54
+ // do reducer stuff here
55
+ return axios.post(`/account/${userID}`, accountAdapter.toDB(account));
57
56
  };
58
57
  ```
59
58
 
59
+ ## Smart Adapter Example
60
+
61
+ ```ts
62
+ import { createSmartMultiAdapter } from 'bidirectional-adapter';
63
+
64
+ interface DBModel {
65
+ x: number;
66
+ a: number;
67
+ b: string;
68
+ c1: boolean;
69
+ }
70
+
71
+ interface Model {
72
+ x: number;
73
+ ab: string;
74
+ c2: boolean;
75
+ }
76
+
77
+ type KeyMap = [['a' | 'b', 'ab'], ['c1', 'c2']];
78
+
79
+ const adapter = createSmartMultiAdapter<DBModel, Model, [], [], KeyMap>(
80
+ () => ({} as any),
81
+ () => ({} as any)
82
+ );
83
+
84
+ adapter.fromDB({ a: 1, b: 'a', c1: false, x: 1 }); // Model
85
+ adapter.fromDB({ a: 1, b: 'a', c1: false }); // Pick<Model, 'ab' | 'c2'>
86
+ adapter.fromDB({ b: 'a', c1: false }); // Pick<Model, 'c2'>
87
+ adapter.fromDB({ x: 1 }); // Pick<Model, 'x1'>
88
+ adapter.fromDB({}); // EmptyObject
89
+
90
+ adapter.mapFromDB([{ a: 1, b: 'a', c1: false, x: 1 }]); // Model[]
91
+ adapter.mapFromDB([{ a: 1, b: 'a', c1: false }]); // Pick<Model, 'ab' | 'c2'>[]
92
+ adapter.mapFromDB([{ b: 'a', c1: false }]); // Pick<Model, 'c2'>[]
93
+ adapter.mapFromDB([{ x: 1 }]); // Pick<Model, 'x1'>[]
94
+ adapter.mapFromDB([{}]); // EmptyObject[]
95
+
96
+ adapter.toDB({ ab: '1', c2: false, x: 1 }); // DBModel
97
+ adapter.toDB({ ab: '1', x: 1 }); // Pick<DBModel, 'a' | 'b' | 'x'>
98
+ adapter.toDB({ c2: false }); // Pick<Model, 'c2'>
99
+ adapter.toDB({ x: 1 }); // Pick<Model, 'x1'>
100
+ adapter.toDB({}); // EmptyObject
101
+
102
+ adapter.mapToDB([{ ab: '1', c2: false, x: 1 }]); // DBModel
103
+ adapter.mapToDB([{ ab: '1', x: 1 }]); // Pick<DBModel, 'a' | 'b' | 'x'>
104
+ adapter.mapToDB([{ c2: false }]); // Pick<Model, 'c2'>
105
+ adapter.mapToDB([{ x: 1 }]); // Pick<Model, 'x1'>
106
+ adapter.mapToDB([{}]); // EmptyObject
107
+ ```
108
+
60
109
  ## Installation
61
110
 
62
111
  To use `bidirectional-adapter`, install it as a dependency:
@@ -73,4 +122,4 @@ This assumes that you’re using a package manager such as [npm](http://npmjs.co
73
122
 
74
123
  ## License
75
124
 
76
- [ISC](LICENSE.md)
125
+ [ISC](LICENSE.md)
@@ -1,42 +1,63 @@
1
+ declare type EmptyObject = Record<string, never>;
2
+ declare type UnionToIntersection<Union> = (Union extends any ? (k: Union) => void : never) extends (k: infer Intersection) => void ? Intersection : never;
3
+ declare type RemapFromDBUnion<DBModel, Model, PartialDBModel extends Partial<DBModel>, KeyRemap extends [keyof PartialDBModel, keyof Model]> = KeyRemap extends [infer ToDBKey extends keyof PartialDBModel, infer FromDBKey extends keyof Model] ? PartialDBModel extends {
4
+ [key in ToDBKey]: Exclude<PartialDBModel[key], undefined>;
5
+ } ? {
6
+ [key in FromDBKey]: Model[key];
7
+ } : EmptyObject : EmptyObject;
8
+ declare type RemapFromDBKeys<DBModel, Model, PartialDBModel extends Partial<DBModel>, KeyRemap extends [keyof PartialDBModel, keyof Model][]> = Pick<Model, Extract<keyof Model, Exclude<keyof PartialDBModel, KeyRemap[number][0]>>> & UnionToIntersection<Exclude<RemapFromDBUnion<DBModel, Model, PartialDBModel, KeyRemap[number]>, EmptyObject>>;
9
+ declare type RemapToDBUnion<DBModel, Model, PartialModel extends Partial<Model>, KeyRemap extends [keyof DBModel, keyof PartialModel]> = KeyRemap extends [
10
+ infer ToDBKey extends keyof DBModel,
11
+ infer FromDBKey extends keyof PartialModel
12
+ ] ? PartialModel extends {
13
+ [key in FromDBKey]: Exclude<PartialModel[key], undefined>;
14
+ } ? {
15
+ [key in ToDBKey]: DBModel[key];
16
+ } : EmptyObject : EmptyObject;
17
+ declare type RemapToDBKeys<DBModel, Model, PartialModel extends Partial<Model>, KeyRemap extends [keyof DBModel, keyof PartialModel][]> = Pick<DBModel, Extract<keyof DBModel, Exclude<keyof PartialModel, KeyRemap[number][1]>>> & UnionToIntersection<Exclude<RemapToDBUnion<DBModel, Model, PartialModel, KeyRemap[number]>, EmptyObject>>;
1
18
  export interface FromDB<DBModel, Model, FromDBArgs extends any[] = []> {
2
19
  (dbModel: DBModel, ...args: FromDBArgs): Model;
3
20
  }
4
- export interface SmartFromDB<DBModel, Model, FromDBArgs extends any[] = []> extends FromDB<DBModel, Model, FromDBArgs> {
5
- <PartialDBModel extends Partial<DBModel>>(dbModel: PartialDBModel, ...args: FromDBArgs): Pick<Model, Extract<keyof Model, keyof PartialDBModel>>;
21
+ export interface SmartFromDB<DBModel, Model, FromDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
22
+ (dbModel: DBModel, ...args: FromDBArgs): Model;
23
+ <PartialDBModel extends Partial<DBModel>>(dbModel: PartialDBModel, ...args: FromDBArgs): RemapFromDBKeys<DBModel, Model, PartialDBModel, KeyRemap>;
6
24
  }
7
25
  export interface MapFromDB<DBModel, Model, FromDBArgs extends any[] = []> {
8
26
  (dbModels: DBModel[], ...args: FromDBArgs): Model[];
9
27
  }
10
- export interface SmartMapFromDB<DBModel, Model, FromDBArgs extends any[] = []> extends MapFromDB<DBModel, Model, FromDBArgs> {
11
- <PartialDBModel extends Partial<DBModel>>(dbModels: PartialDBModel[], ...args: FromDBArgs): Pick<Model, Extract<keyof Model, keyof PartialDBModel>>[];
28
+ export interface SmartMapFromDB<DBModel, Model, FromDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
29
+ (dbModels: DBModel[], ...args: FromDBArgs): Model[];
30
+ <PartialDBModel extends Partial<DBModel>>(dbModels: PartialDBModel[], ...args: FromDBArgs): RemapFromDBKeys<DBModel, Model, PartialDBModel, KeyRemap>[];
12
31
  }
13
32
  export interface ToDB<DBModel, Model, ToDBArgs extends any[] = []> {
14
33
  (model: Model, ...args: ToDBArgs): DBModel;
15
34
  }
16
- export interface SmartToDB<DBModel, Model, ToDBArgs extends any[] = []> extends ToDB<DBModel, Model, ToDBArgs> {
17
- <PartialModel extends Partial<Model>>(model: PartialModel, ...args: ToDBArgs): Pick<DBModel, Extract<keyof DBModel, keyof PartialModel>>;
35
+ export interface SmartToDB<DBModel, Model, ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
36
+ (model: Model, ...args: ToDBArgs): DBModel;
37
+ <PartialModel extends Partial<Model>>(model: PartialModel, ...args: ToDBArgs): RemapToDBKeys<DBModel, Model, PartialModel, KeyRemap>;
18
38
  }
19
39
  export interface MapToDB<DBModel, Model, ToDBArgs extends any[] = []> {
20
40
  (models: Model[], ...args: ToDBArgs): DBModel[];
21
41
  }
22
- export interface SmartMapToDB<DBModel, Model, ToDBArgs extends any[] = []> extends MapToDB<DBModel, Model, ToDBArgs> {
23
- <PartialModel extends Partial<Model>>(diagrams: PartialModel[], ...args: ToDBArgs): Pick<DBModel, Extract<keyof DBModel, keyof PartialModel>>[];
42
+ export interface SmartMapToDB<DBModel, Model, ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
43
+ (models: Model[], ...args: ToDBArgs): DBModel[];
44
+ <PartialModel extends Partial<Model>>(diagrams: PartialModel[], ...args: ToDBArgs): RemapToDBKeys<DBModel, Model, PartialModel, KeyRemap>[];
24
45
  }
25
46
  export interface SimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
26
47
  toDB: ToDB<DBModel, Model, ToDBArgs>;
27
48
  fromDB: FromDB<DBModel, Model, FromDBArgs>;
28
49
  }
29
- export interface SmartSimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
30
- toDB: SmartToDB<DBModel, Model, ToDBArgs>;
31
- fromDB: SmartFromDB<DBModel, Model, FromDBArgs>;
50
+ export interface SmartSimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
51
+ toDB: SmartToDB<DBModel, Model, ToDBArgs, KeyRemap>;
52
+ fromDB: SmartFromDB<DBModel, Model, FromDBArgs, KeyRemap>;
32
53
  }
33
54
  export interface MultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> extends SimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs> {
34
55
  mapToDB: MapToDB<DBModel, Model, ToDBArgs>;
35
56
  mapFromDB: MapFromDB<DBModel, Model, FromDBArgs>;
36
57
  }
37
- export interface SmartMultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> extends SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs> {
38
- mapToDB: SmartMapToDB<DBModel, Model, ToDBArgs>;
39
- mapFromDB: SmartMapFromDB<DBModel, Model, FromDBArgs>;
58
+ export interface SmartMultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> extends SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs, KeyRemap> {
59
+ mapToDB: SmartMapToDB<DBModel, Model, ToDBArgs, KeyRemap>;
60
+ mapFromDB: SmartMapFromDB<DBModel, Model, FromDBArgs, KeyRemap>;
40
61
  }
41
62
  export interface AdapterOptions {
42
63
  debug?: (message: string, model: unknown) => void;
@@ -46,6 +67,7 @@ export interface AnyMultiAdapter extends MultiAdapter<any, any> {
46
67
  export interface AnySimpleAdapter extends SimpleAdapter<any, any> {
47
68
  }
48
69
  export declare const createSimpleAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []>(fromDB: (dbModel: DBModel, ...args: FromDBArgs) => Model, toDB: (model: Model, ...args: ToDBArgs) => DBModel, options?: AdapterOptions) => SimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
49
- export declare const createSmartSimpleAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []>(fromDB: (dbModel: Partial<DBModel>, ...args: FromDBArgs) => Partial<Model>, toDB: (model: Partial<Model>, ...args: ToDBArgs) => Partial<DBModel>, options?: AdapterOptions) => SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
70
+ export declare const createSmartSimpleAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []>(fromDB: (dbModel: Partial<DBModel>, ...args: FromDBArgs) => Partial<Model>, toDB: (model: Partial<Model>, ...args: ToDBArgs) => Partial<DBModel>, options?: AdapterOptions) => SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs, KeyRemap>;
50
71
  export declare const createMultiAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []>(fromDB: (dbModel: DBModel, ...args: FromDBArgs) => Model, toDB: (model: Model, ...args: ToDBArgs) => DBModel, options?: AdapterOptions) => MultiAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
51
- export declare const createSmartMultiAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []>(fromDB: (dbModel: Partial<DBModel>, ...args: FromDBArgs) => Partial<Model>, toDB: (model: Partial<Model>, ...args: ToDBArgs) => Partial<DBModel>, options?: AdapterOptions) => SmartMultiAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
72
+ export declare const createSmartMultiAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []>(fromDB: (dbModel: Partial<DBModel>, ...args: FromDBArgs) => Partial<Model>, toDB: (model: Partial<Model>, ...args: ToDBArgs) => Partial<DBModel>, options?: AdapterOptions) => SmartMultiAdapter<DBModel, Model, FromDBArgs, ToDBArgs, KeyRemap>;
73
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":";;;AA0HA,MAAM,WAAW,GACf,CAA8B,IAA4C,EAAE,EAAE,KAAK,KAAqB,EAAE,EAAE,EAAE,CAC9G,CAAC,KAAU,EAAE,GAAG,IAAc,EAAO,EAAE;IACrC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,0CAA0C,EAAE,KAAK,CAAC,CAAC;IAE3D,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC;IAEpC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,0BAA0B,EAAE,MAAM,CAAC,CAAC;IAE5C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEJ,MAAM,aAAa,GACjB,CAAgC,MAAkD,EAAE,EAAE,KAAK,KAAqB,EAAE,EAAE,EAAE,CACtH,CAAC,OAAY,EAAE,GAAG,IAAgB,EAAO,EAAE;IACzC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,mCAAmC,EAAE,OAAO,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IAExC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,uBAAuB,EAAE,MAAM,CAAC,CAAC;IAEzC,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEJ,MAAM,cAAc,GAClB,CAA8B,IAA4C,EAAE,EAAE,KAAK,KAAqB,EAAE,EAAE,EAAE,CAC9G,CAAC,MAAa,EAAE,GAAG,IAAc,EAAS,EAAE;IAC1C,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,uCAAuC,EAAE,MAAM,CAAC,CAAC;IAEzD,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAE3D,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,2BAA2B,EAAE,MAAM,CAAC,CAAC;IAE7C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEJ,MAAM,gBAAgB,GACpB,CAAgC,MAAkD,EAAE,EAAE,KAAK,KAAqB,EAAE,EAAE,EAAE,CACtH,CAAC,QAAe,EAAE,GAAG,IAAgB,EAAS,EAAE;IAC9C,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,oCAAoC,EAAE,QAAQ,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAEnE,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,wBAAwB,EAAE,MAAM,CAAC,CAAC;IAE1C,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEG,MAAM,mBAAmB,GAAG,CACjC,MAAwD,EACxD,IAAkD,EAClD,UAA0B,EAAE,EACyB,EAAE,CAAC,CAAC;IACzD,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;IAEhC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;CACvC,CAAC,CAAC;AARU,QAAA,mBAAmB,uBAQ7B;AAEI,MAAM,wBAAwB,GAAG,CAOtC,MAA0E,EAC1E,IAAoE,EACpE,UAA0B,EAAE;AAC5B,0DAA0D;EACU,EAAE,CAAC,CAAC;IACxE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,OAAO,CAAC;IAEhC,MAAM,EAAE,aAAa,CAAC,MAAM,EAAE,OAAO,CAAC;CACvC,CAAC,CAAC;AAfU,QAAA,wBAAwB,4BAelC;AAEI,MAAM,kBAAkB,GAAG,CAChC,MAAwD,EACxD,IAAkD,EAClD,UAA0B,EAAE,EACwB,EAAE,CAAC,iCACpD,IAAA,2BAAmB,EAAuC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KAEnF,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAEtC,SAAS,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5C,CAAC;AAVU,QAAA,kBAAkB,sBAU5B;AAEI,MAAM,uBAAuB,GAAG,CAOrC,MAA0E,EAC1E,IAAoE,EACpE,UAA0B,EAAE,EACuC,EAAE,CAAC,iCACnE,IAAA,gCAAwB,EAAiD,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KAElG,OAAO,EAAE,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,EAEtC,SAAS,EAAE,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5C,CAAC;AAhBU,QAAA,uBAAuB,2BAgBjC"}
@@ -1,42 +1,63 @@
1
+ declare type EmptyObject = Record<string, never>;
2
+ declare type UnionToIntersection<Union> = (Union extends any ? (k: Union) => void : never) extends (k: infer Intersection) => void ? Intersection : never;
3
+ declare type RemapFromDBUnion<DBModel, Model, PartialDBModel extends Partial<DBModel>, KeyRemap extends [keyof PartialDBModel, keyof Model]> = KeyRemap extends [infer ToDBKey extends keyof PartialDBModel, infer FromDBKey extends keyof Model] ? PartialDBModel extends {
4
+ [key in ToDBKey]: Exclude<PartialDBModel[key], undefined>;
5
+ } ? {
6
+ [key in FromDBKey]: Model[key];
7
+ } : EmptyObject : EmptyObject;
8
+ declare type RemapFromDBKeys<DBModel, Model, PartialDBModel extends Partial<DBModel>, KeyRemap extends [keyof PartialDBModel, keyof Model][]> = Pick<Model, Extract<keyof Model, Exclude<keyof PartialDBModel, KeyRemap[number][0]>>> & UnionToIntersection<Exclude<RemapFromDBUnion<DBModel, Model, PartialDBModel, KeyRemap[number]>, EmptyObject>>;
9
+ declare type RemapToDBUnion<DBModel, Model, PartialModel extends Partial<Model>, KeyRemap extends [keyof DBModel, keyof PartialModel]> = KeyRemap extends [
10
+ infer ToDBKey extends keyof DBModel,
11
+ infer FromDBKey extends keyof PartialModel
12
+ ] ? PartialModel extends {
13
+ [key in FromDBKey]: Exclude<PartialModel[key], undefined>;
14
+ } ? {
15
+ [key in ToDBKey]: DBModel[key];
16
+ } : EmptyObject : EmptyObject;
17
+ declare type RemapToDBKeys<DBModel, Model, PartialModel extends Partial<Model>, KeyRemap extends [keyof DBModel, keyof PartialModel][]> = Pick<DBModel, Extract<keyof DBModel, Exclude<keyof PartialModel, KeyRemap[number][1]>>> & UnionToIntersection<Exclude<RemapToDBUnion<DBModel, Model, PartialModel, KeyRemap[number]>, EmptyObject>>;
1
18
  export interface FromDB<DBModel, Model, FromDBArgs extends any[] = []> {
2
19
  (dbModel: DBModel, ...args: FromDBArgs): Model;
3
20
  }
4
- export interface SmartFromDB<DBModel, Model, FromDBArgs extends any[] = []> extends FromDB<DBModel, Model, FromDBArgs> {
5
- <PartialDBModel extends Partial<DBModel>>(dbModel: PartialDBModel, ...args: FromDBArgs): Pick<Model, Extract<keyof Model, keyof PartialDBModel>>;
21
+ export interface SmartFromDB<DBModel, Model, FromDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
22
+ (dbModel: DBModel, ...args: FromDBArgs): Model;
23
+ <PartialDBModel extends Partial<DBModel>>(dbModel: PartialDBModel, ...args: FromDBArgs): RemapFromDBKeys<DBModel, Model, PartialDBModel, KeyRemap>;
6
24
  }
7
25
  export interface MapFromDB<DBModel, Model, FromDBArgs extends any[] = []> {
8
26
  (dbModels: DBModel[], ...args: FromDBArgs): Model[];
9
27
  }
10
- export interface SmartMapFromDB<DBModel, Model, FromDBArgs extends any[] = []> extends MapFromDB<DBModel, Model, FromDBArgs> {
11
- <PartialDBModel extends Partial<DBModel>>(dbModels: PartialDBModel[], ...args: FromDBArgs): Pick<Model, Extract<keyof Model, keyof PartialDBModel>>[];
28
+ export interface SmartMapFromDB<DBModel, Model, FromDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
29
+ (dbModels: DBModel[], ...args: FromDBArgs): Model[];
30
+ <PartialDBModel extends Partial<DBModel>>(dbModels: PartialDBModel[], ...args: FromDBArgs): RemapFromDBKeys<DBModel, Model, PartialDBModel, KeyRemap>[];
12
31
  }
13
32
  export interface ToDB<DBModel, Model, ToDBArgs extends any[] = []> {
14
33
  (model: Model, ...args: ToDBArgs): DBModel;
15
34
  }
16
- export interface SmartToDB<DBModel, Model, ToDBArgs extends any[] = []> extends ToDB<DBModel, Model, ToDBArgs> {
17
- <PartialModel extends Partial<Model>>(model: PartialModel, ...args: ToDBArgs): Pick<DBModel, Extract<keyof DBModel, keyof PartialModel>>;
35
+ export interface SmartToDB<DBModel, Model, ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
36
+ (model: Model, ...args: ToDBArgs): DBModel;
37
+ <PartialModel extends Partial<Model>>(model: PartialModel, ...args: ToDBArgs): RemapToDBKeys<DBModel, Model, PartialModel, KeyRemap>;
18
38
  }
19
39
  export interface MapToDB<DBModel, Model, ToDBArgs extends any[] = []> {
20
40
  (models: Model[], ...args: ToDBArgs): DBModel[];
21
41
  }
22
- export interface SmartMapToDB<DBModel, Model, ToDBArgs extends any[] = []> extends MapToDB<DBModel, Model, ToDBArgs> {
23
- <PartialModel extends Partial<Model>>(diagrams: PartialModel[], ...args: ToDBArgs): Pick<DBModel, Extract<keyof DBModel, keyof PartialModel>>[];
42
+ export interface SmartMapToDB<DBModel, Model, ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
43
+ (models: Model[], ...args: ToDBArgs): DBModel[];
44
+ <PartialModel extends Partial<Model>>(diagrams: PartialModel[], ...args: ToDBArgs): RemapToDBKeys<DBModel, Model, PartialModel, KeyRemap>[];
24
45
  }
25
46
  export interface SimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
26
47
  toDB: ToDB<DBModel, Model, ToDBArgs>;
27
48
  fromDB: FromDB<DBModel, Model, FromDBArgs>;
28
49
  }
29
- export interface SmartSimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
30
- toDB: SmartToDB<DBModel, Model, ToDBArgs>;
31
- fromDB: SmartFromDB<DBModel, Model, FromDBArgs>;
50
+ export interface SmartSimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
51
+ toDB: SmartToDB<DBModel, Model, ToDBArgs, KeyRemap>;
52
+ fromDB: SmartFromDB<DBModel, Model, FromDBArgs, KeyRemap>;
32
53
  }
33
54
  export interface MultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> extends SimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs> {
34
55
  mapToDB: MapToDB<DBModel, Model, ToDBArgs>;
35
56
  mapFromDB: MapFromDB<DBModel, Model, FromDBArgs>;
36
57
  }
37
- export interface SmartMultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> extends SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs> {
38
- mapToDB: SmartMapToDB<DBModel, Model, ToDBArgs>;
39
- mapFromDB: SmartMapFromDB<DBModel, Model, FromDBArgs>;
58
+ export interface SmartMultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> extends SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs, KeyRemap> {
59
+ mapToDB: SmartMapToDB<DBModel, Model, ToDBArgs, KeyRemap>;
60
+ mapFromDB: SmartMapFromDB<DBModel, Model, FromDBArgs, KeyRemap>;
40
61
  }
41
62
  export interface AdapterOptions {
42
63
  debug?: (message: string, model: unknown) => void;
@@ -46,6 +67,7 @@ export interface AnyMultiAdapter extends MultiAdapter<any, any> {
46
67
  export interface AnySimpleAdapter extends SimpleAdapter<any, any> {
47
68
  }
48
69
  export declare const createSimpleAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []>(fromDB: (dbModel: DBModel, ...args: FromDBArgs) => Model, toDB: (model: Model, ...args: ToDBArgs) => DBModel, options?: AdapterOptions) => SimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
49
- export declare const createSmartSimpleAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []>(fromDB: (dbModel: Partial<DBModel>, ...args: FromDBArgs) => Partial<Model>, toDB: (model: Partial<Model>, ...args: ToDBArgs) => Partial<DBModel>, options?: AdapterOptions) => SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
70
+ export declare const createSmartSimpleAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []>(fromDB: (dbModel: Partial<DBModel>, ...args: FromDBArgs) => Partial<Model>, toDB: (model: Partial<Model>, ...args: ToDBArgs) => Partial<DBModel>, options?: AdapterOptions) => SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs, KeyRemap>;
50
71
  export declare const createMultiAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []>(fromDB: (dbModel: DBModel, ...args: FromDBArgs) => Model, toDB: (model: Model, ...args: ToDBArgs) => DBModel, options?: AdapterOptions) => MultiAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
51
- export declare const createSmartMultiAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []>(fromDB: (dbModel: Partial<DBModel>, ...args: FromDBArgs) => Partial<Model>, toDB: (model: Partial<Model>, ...args: ToDBArgs) => Partial<DBModel>, options?: AdapterOptions) => SmartMultiAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
72
+ export declare const createSmartMultiAdapter: <DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []>(fromDB: (dbModel: Partial<DBModel>, ...args: FromDBArgs) => Partial<Model>, toDB: (model: Partial<Model>, ...args: ToDBArgs) => Partial<DBModel>, options?: AdapterOptions) => SmartMultiAdapter<DBModel, Model, FromDBArgs, ToDBArgs, KeyRemap>;
73
+ export {};
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.js","sourceRoot":"","sources":["../../src/adapter.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "bidirectional-adapter",
3
3
  "description": "bi-directional adapter factory, used to decouple systems across shared data structures",
4
- "version": "1.1.1",
4
+ "version": "1.2.1",
5
5
  "author": "Tyler Han, Ben Teichman",
6
6
  "bugs": {
7
7
  "url": "https://github.com/voiceflow/bidirectional-adapter/issues"