@voiceflow/bidirectional-adapter 2.1.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.
- package/LICENSE.md +7 -0
- package/README.md +125 -0
- package/build/adapter.d.ts +71 -0
- package/build/adapter.d.ts.map +1 -0
- package/build/adapter.js +45 -0
- package/build/adapter.js.map +1 -0
- package/build/identity.d.ts +16 -0
- package/build/identity.d.ts.map +1 -0
- package/build/identity.js +7 -0
- package/build/identity.js.map +1 -0
- package/build/index.d.ts +5 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +6 -0
- package/build/index.js.map +1 -0
- package/build/notImplemented.d.ts +7 -0
- package/build/notImplemented.d.ts.map +1 -0
- package/build/notImplemented.js +12 -0
- package/build/notImplemented.js.map +1 -0
- package/package.json +48 -0
package/LICENSE.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
ISC License
|
|
2
|
+
|
|
3
|
+
Copyright 2021 Voiceflow Inc.
|
|
4
|
+
|
|
5
|
+
Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies.
|
|
6
|
+
|
|
7
|
+
THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
# Bi-Directional Adapter
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/bidirectional-adapter)
|
|
4
|
+
[](https://www.npmjs.com/package/bidirectional-adapter)
|
|
5
|
+
|
|
6
|
+
Factory to create bi-directional adapters that can convert between two distinct data structures.
|
|
7
|
+
Using adapters helps to decouple systems which share common data structures and may need to alter them
|
|
8
|
+
independently without introducing conflicts in each other.
|
|
9
|
+
|
|
10
|
+
## Why?
|
|
11
|
+
|
|
12
|
+
You have multiple services which each operate on a single shared resource but want to represent the data
|
|
13
|
+
differently in each service or want to isolate each service from data structure changes required by the other.
|
|
14
|
+
|
|
15
|
+
With `bidirectional-adapter` you can define a simple entity which can be used to transform data between two formats.
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
const adapter = createAdapter<string, number>(
|
|
19
|
+
(stringValue) => parseInt(stringValue, 10),
|
|
20
|
+
(numericValue) => String(numericValue)
|
|
21
|
+
);
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Example
|
|
25
|
+
|
|
26
|
+
```ts
|
|
27
|
+
import axios from 'axios';
|
|
28
|
+
import createAdapter from '@voiceflow/bidirectional-adapter';
|
|
29
|
+
|
|
30
|
+
const accountAdapter = createAdapter(
|
|
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
|
+
})
|
|
44
|
+
);
|
|
45
|
+
|
|
46
|
+
const fetchAccount = (userID) => {
|
|
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));
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
const updateAccount = (account) => {
|
|
53
|
+
// state is in the shape of propertyTwo
|
|
54
|
+
// do reducer stuff here
|
|
55
|
+
return axios.post(`/account/${userID}`, accountAdapter.toDB(account));
|
|
56
|
+
};
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Smart Adapter Example
|
|
60
|
+
|
|
61
|
+
```ts
|
|
62
|
+
import { createSmartMultiAdapter } from '@voiceflow/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
|
+
|
|
109
|
+
## Installation
|
|
110
|
+
|
|
111
|
+
To use `bidirectional-adapter`, install it as a dependency:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# If you use npm:
|
|
115
|
+
npm install @voiceflow/bidirectional-adapter
|
|
116
|
+
|
|
117
|
+
# Or if you use Yarn:
|
|
118
|
+
yarn add @voiceflow/bidirectional-adapter
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
This assumes that you’re using a package manager such as [npm](http://npmjs.com/).
|
|
122
|
+
|
|
123
|
+
## License
|
|
124
|
+
|
|
125
|
+
[ISC](LICENSE.md)
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
type EmptyObject = Record<string, never>;
|
|
2
|
+
type UnionToIntersection<Union> = (Union extends any ? (k: Union) => void : never) extends (k: infer Intersection) => void ? Intersection : never;
|
|
3
|
+
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
|
+
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
|
+
type RemapToDBUnion<DBModel, Model, PartialModel extends Partial<Model>, KeyRemap extends [keyof DBModel, keyof PartialModel]> = KeyRemap extends [infer ToDBKey extends keyof DBModel, infer FromDBKey extends keyof PartialModel] ? PartialModel extends {
|
|
10
|
+
[key in FromDBKey]: Exclude<PartialModel[key], undefined>;
|
|
11
|
+
} ? {
|
|
12
|
+
[key in ToDBKey]: DBModel[key];
|
|
13
|
+
} : EmptyObject : EmptyObject;
|
|
14
|
+
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>>;
|
|
15
|
+
export interface FromDB<DBModel, Model, FromDBArgs extends any[] = []> {
|
|
16
|
+
(dbModel: DBModel, ...args: FromDBArgs): Model;
|
|
17
|
+
}
|
|
18
|
+
export interface SmartFromDB<DBModel, Model, FromDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
|
|
19
|
+
(dbModel: DBModel, ...args: FromDBArgs): Model;
|
|
20
|
+
<PartialDBModel extends Partial<DBModel>>(dbModel: PartialDBModel, ...args: FromDBArgs): RemapFromDBKeys<DBModel, Model, PartialDBModel, KeyRemap>;
|
|
21
|
+
}
|
|
22
|
+
export interface MapFromDB<DBModel, Model, FromDBArgs extends any[] = []> {
|
|
23
|
+
(dbModels: DBModel[], ...args: FromDBArgs): Model[];
|
|
24
|
+
}
|
|
25
|
+
export interface SmartMapFromDB<DBModel, Model, FromDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
|
|
26
|
+
(dbModels: DBModel[], ...args: FromDBArgs): Model[];
|
|
27
|
+
<PartialDBModel extends Partial<DBModel>>(dbModels: PartialDBModel[], ...args: FromDBArgs): RemapFromDBKeys<DBModel, Model, PartialDBModel, KeyRemap>[];
|
|
28
|
+
}
|
|
29
|
+
export interface ToDB<DBModel, Model, ToDBArgs extends any[] = []> {
|
|
30
|
+
(model: Model, ...args: ToDBArgs): DBModel;
|
|
31
|
+
}
|
|
32
|
+
export interface SmartToDB<DBModel, Model, ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
|
|
33
|
+
(model: Model, ...args: ToDBArgs): DBModel;
|
|
34
|
+
<PartialModel extends Partial<Model>>(model: PartialModel, ...args: ToDBArgs): RemapToDBKeys<DBModel, Model, PartialModel, KeyRemap>;
|
|
35
|
+
}
|
|
36
|
+
export interface MapToDB<DBModel, Model, ToDBArgs extends any[] = []> {
|
|
37
|
+
(models: Model[], ...args: ToDBArgs): DBModel[];
|
|
38
|
+
}
|
|
39
|
+
export interface SmartMapToDB<DBModel, Model, ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
|
|
40
|
+
(models: Model[], ...args: ToDBArgs): DBModel[];
|
|
41
|
+
<PartialModel extends Partial<Model>>(diagrams: PartialModel[], ...args: ToDBArgs): RemapToDBKeys<DBModel, Model, PartialModel, KeyRemap>[];
|
|
42
|
+
}
|
|
43
|
+
export interface SimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
|
|
44
|
+
toDB: ToDB<DBModel, Model, ToDBArgs>;
|
|
45
|
+
fromDB: FromDB<DBModel, Model, FromDBArgs>;
|
|
46
|
+
}
|
|
47
|
+
export interface SmartSimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> {
|
|
48
|
+
toDB: SmartToDB<DBModel, Model, ToDBArgs, KeyRemap>;
|
|
49
|
+
fromDB: SmartFromDB<DBModel, Model, FromDBArgs, KeyRemap>;
|
|
50
|
+
}
|
|
51
|
+
export interface MultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> extends SimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs> {
|
|
52
|
+
mapToDB: MapToDB<DBModel, Model, ToDBArgs>;
|
|
53
|
+
mapFromDB: MapFromDB<DBModel, Model, FromDBArgs>;
|
|
54
|
+
}
|
|
55
|
+
export interface SmartMultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = [], KeyRemap extends [keyof DBModel, keyof Model][] = []> extends SmartSimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs, KeyRemap> {
|
|
56
|
+
mapToDB: SmartMapToDB<DBModel, Model, ToDBArgs, KeyRemap>;
|
|
57
|
+
mapFromDB: SmartMapFromDB<DBModel, Model, FromDBArgs, KeyRemap>;
|
|
58
|
+
}
|
|
59
|
+
export interface AdapterOptions {
|
|
60
|
+
debug?: (message: string, model: unknown) => void;
|
|
61
|
+
}
|
|
62
|
+
export interface AnyMultiAdapter extends MultiAdapter<any, any> {
|
|
63
|
+
}
|
|
64
|
+
export interface AnySimpleAdapter extends SimpleAdapter<any, any> {
|
|
65
|
+
}
|
|
66
|
+
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>;
|
|
67
|
+
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>;
|
|
68
|
+
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>;
|
|
69
|
+
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>;
|
|
70
|
+
export {};
|
|
71
|
+
//# sourceMappingURL=adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
package/build/adapter.js
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const toDBFactory = (toDB, { debug } = {}) => (model, ...args) => {
|
|
2
|
+
debug?.('adapter called with value from the store', model);
|
|
3
|
+
const result = toDB(model, ...args);
|
|
4
|
+
debug?.('converted store value to', result);
|
|
5
|
+
return result;
|
|
6
|
+
};
|
|
7
|
+
const fromDBFactory = (fromDB, { debug } = {}) => (dbModel, ...args) => {
|
|
8
|
+
debug?.('adapter called with value from DB', dbModel);
|
|
9
|
+
const result = fromDB(dbModel, ...args);
|
|
10
|
+
debug?.('converted DB value to', result);
|
|
11
|
+
return result;
|
|
12
|
+
};
|
|
13
|
+
const mapToDBFactory = (toDB, { debug } = {}) => (models, ...args) => {
|
|
14
|
+
debug?.('adapter called with values from store', models);
|
|
15
|
+
const result = models.map((model) => toDB(model, ...args));
|
|
16
|
+
debug?.('converted store values to', result);
|
|
17
|
+
return result;
|
|
18
|
+
};
|
|
19
|
+
const mapFromDBFactory = (fromDB, { debug } = {}) => (dbModels, ...args) => {
|
|
20
|
+
debug?.('adapter called with values from DB', dbModels);
|
|
21
|
+
const result = dbModels.map((dbModel) => fromDB(dbModel, ...args));
|
|
22
|
+
debug?.('converted DB values to', result);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
export const createSimpleAdapter = (fromDB, toDB, options = {}) => ({
|
|
26
|
+
toDB: toDBFactory(toDB, options),
|
|
27
|
+
fromDB: fromDBFactory(fromDB, options),
|
|
28
|
+
});
|
|
29
|
+
export const createSmartSimpleAdapter = (fromDB, toDB, options = {}
|
|
30
|
+
// eslint-disable-next-line sonarjs/no-identical-functions
|
|
31
|
+
) => ({
|
|
32
|
+
toDB: toDBFactory(toDB, options),
|
|
33
|
+
fromDB: fromDBFactory(fromDB, options),
|
|
34
|
+
});
|
|
35
|
+
export const createMultiAdapter = (fromDB, toDB, options = {}) => ({
|
|
36
|
+
...createSimpleAdapter(fromDB, toDB, options),
|
|
37
|
+
mapToDB: mapToDBFactory(toDB, options),
|
|
38
|
+
mapFromDB: mapFromDBFactory(fromDB, options),
|
|
39
|
+
});
|
|
40
|
+
export const createSmartMultiAdapter = (fromDB, toDB, options = {}) => ({
|
|
41
|
+
...createSmartSimpleAdapter(fromDB, toDB, options),
|
|
42
|
+
mapToDB: mapToDBFactory(toDB, options),
|
|
43
|
+
mapFromDB: mapFromDBFactory(fromDB, options),
|
|
44
|
+
});
|
|
45
|
+
//# sourceMappingURL=adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adapter.js","sourceRoot":"","sources":["../src/adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type Identity = <Model>(model: Model) => Model;
|
|
2
|
+
export type IdentityMulti = <Model>(models: Model[]) => Model[];
|
|
3
|
+
export interface Simple {
|
|
4
|
+
toDB: Identity;
|
|
5
|
+
fromDB: Identity;
|
|
6
|
+
}
|
|
7
|
+
export interface Multi extends Simple {
|
|
8
|
+
mapToDB: IdentityMulti;
|
|
9
|
+
mapFromDB: IdentityMulti;
|
|
10
|
+
}
|
|
11
|
+
export declare const transformer: Identity;
|
|
12
|
+
export declare const multi: Multi;
|
|
13
|
+
export declare const simple: Simple;
|
|
14
|
+
export declare const createMulti: <Model>() => import("./adapter.js").MultiAdapter<Model, Model, [], []>;
|
|
15
|
+
export declare const createSimple: <Model>() => import("./adapter.js").SimpleAdapter<Model, Model, [], []>;
|
|
16
|
+
//# sourceMappingURL=identity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,KAAK,KAAK,CAAC;AACtD,MAAM,MAAM,aAAa,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,KAAK,EAAE,CAAC;AAEhE,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,QAAQ,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,MAAM,WAAW,KAAM,SAAQ,MAAM;IACnC,OAAO,EAAE,aAAa,CAAC;IACvB,SAAS,EAAE,aAAa,CAAC;CAC1B;AAED,eAAO,MAAM,WAAW,EAAE,QAA2B,CAAC;AAEtD,eAAO,MAAM,KAAK,EAAE,KAA8D,CAAC;AAEnF,eAAO,MAAM,MAAM,EAAE,MAAgE,CAAC;AAEtF,eAAO,MAAM,WAAW,GAAI,KAAK,6DAAiE,CAAC;AAEnG,eAAO,MAAM,YAAY,GAAI,KAAK,8DAAkE,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { createMultiAdapter, createSimpleAdapter } from './adapter.js';
|
|
2
|
+
export const transformer = (value) => value;
|
|
3
|
+
export const multi = createMultiAdapter(transformer, transformer);
|
|
4
|
+
export const simple = createSimpleAdapter(transformer, transformer);
|
|
5
|
+
export const createMulti = () => createMultiAdapter(transformer, transformer);
|
|
6
|
+
export const createSimple = () => createSimpleAdapter(transformer, transformer);
|
|
7
|
+
//# sourceMappingURL=identity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAepE,MAAM,CAAC,MAAM,WAAW,GAAa,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAEtD,MAAM,CAAC,MAAM,KAAK,GAAU,kBAAkB,CAAW,WAAW,EAAE,WAAW,CAAC,CAAC;AAEnF,MAAM,CAAC,MAAM,MAAM,GAAW,mBAAmB,CAAW,WAAW,EAAE,WAAW,CAAC,CAAC;AAEtF,MAAM,CAAC,MAAM,WAAW,GAAG,GAAU,EAAE,CAAC,kBAAkB,CAAe,WAAW,EAAE,WAAW,CAAC,CAAC;AAEnG,MAAM,CAAC,MAAM,YAAY,GAAG,GAAU,EAAE,CAAC,mBAAmB,CAAe,WAAW,EAAE,WAAW,CAAC,CAAC"}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAE1B,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,eAAe,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,qBAAqB,MAAM,kBAAkB,CAAC"}
|
package/build/index.js
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './adapter.js';
|
|
2
|
+
// eslint-disable-next-line no-restricted-exports
|
|
3
|
+
export { createMultiAdapter as default } from './adapter.js';
|
|
4
|
+
export * as identityAdapter from './identity.js';
|
|
5
|
+
export * as notImplementedAdapter from './notImplemented.js';
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,WAAW,CAAC;AAC1B,iDAAiD;AACjD,OAAO,EAAE,kBAAkB,IAAI,OAAO,EAAE,MAAM,WAAW,CAAC;AAC1D,OAAO,KAAK,eAAe,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,qBAAqB,MAAM,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare class NotImplementedError extends Error {
|
|
2
|
+
constructor();
|
|
3
|
+
}
|
|
4
|
+
export declare const transformer: () => never;
|
|
5
|
+
export declare const multi: import("./adapter.js").MultiAdapter<never, never, [], []>;
|
|
6
|
+
export declare const simple: import("./adapter.js").SimpleAdapter<never, never, [], []>;
|
|
7
|
+
//# sourceMappingURL=notImplemented.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notImplemented.d.ts","sourceRoot":"","sources":["../src/notImplemented.ts"],"names":[],"mappings":"AAEA,qBAAa,mBAAoB,SAAQ,KAAK;;CAI7C;AAED,eAAO,MAAM,WAAW,QAAO,KAE9B,CAAC;AAEF,eAAO,MAAM,KAAK,wDAA+C,CAAC;AAClE,eAAO,MAAM,MAAM,yDAAgD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { createMultiAdapter, createSimpleAdapter } from './adapter.js';
|
|
2
|
+
export class NotImplementedError extends Error {
|
|
3
|
+
constructor() {
|
|
4
|
+
super('adapter not implemented');
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export const transformer = () => {
|
|
8
|
+
throw new NotImplementedError();
|
|
9
|
+
};
|
|
10
|
+
export const multi = createMultiAdapter(transformer, transformer);
|
|
11
|
+
export const simple = createSimpleAdapter(transformer, transformer);
|
|
12
|
+
//# sourceMappingURL=notImplemented.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"notImplemented.js","sourceRoot":"","sources":["../src/notImplemented.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAEpE,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,WAAW,GAAG,GAAU,EAAE;IACrC,MAAM,IAAI,mBAAmB,EAAE,CAAC;AAClC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,KAAK,GAAG,kBAAkB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;AAClE,MAAM,CAAC,MAAM,MAAM,GAAG,mBAAmB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@voiceflow/bidirectional-adapter",
|
|
3
|
+
"version": "2.1.0",
|
|
4
|
+
"description": "bi-directional adapter factory, used to decouple systems across shared data structures",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"adapter",
|
|
7
|
+
"data",
|
|
8
|
+
"model",
|
|
9
|
+
"voiceflow"
|
|
10
|
+
],
|
|
11
|
+
"homepage": "https://github.com/voiceflow/oss/tree/master/libs/bidirectional-adapter#readme",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/voiceflow/oss/issues"
|
|
14
|
+
},
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "git+https://github.com/voiceflow/oss.git"
|
|
18
|
+
},
|
|
19
|
+
"license": "ISC",
|
|
20
|
+
"author": "Tyler Han, Ben Teichman",
|
|
21
|
+
"type": "module",
|
|
22
|
+
"main": "build/index.js",
|
|
23
|
+
"types": "build/index.d.ts",
|
|
24
|
+
"files": [
|
|
25
|
+
"build"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "yarn g:turbo run build:cmd --filter=@voiceflow/bidirectional-adapter...",
|
|
29
|
+
"build:cmd": "yarn g:build:pkg",
|
|
30
|
+
"clean": "yarn g:rimraf build",
|
|
31
|
+
"lint": "yarn g:run-p -c lint:eslint lint:prettier",
|
|
32
|
+
"lint:eslint": "yarn g:eslint",
|
|
33
|
+
"lint:fix": "yarn g:run-p -c \"lint:eslint --fix\" \"lint:prettier --write\"",
|
|
34
|
+
"lint:prettier": "yarn g:prettier --check",
|
|
35
|
+
"tdd": "yarn g:vitest",
|
|
36
|
+
"test": "yarn g:run-p -c test:dependencies test:types test:unit",
|
|
37
|
+
"test:dependencies": "yarn g:depcruise",
|
|
38
|
+
"test:types": "yarn g:tsc --noEmit",
|
|
39
|
+
"test:unit": "yarn g:vitest run --coverage"
|
|
40
|
+
},
|
|
41
|
+
"engines": {
|
|
42
|
+
"node": "20"
|
|
43
|
+
},
|
|
44
|
+
"volta": {
|
|
45
|
+
"extends": "../../package.json"
|
|
46
|
+
},
|
|
47
|
+
"gitHead": "02e41c39211bad5d02e3f79573037685548d9646"
|
|
48
|
+
}
|