bidirectional-adapter 1.0.0 → 1.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.
@@ -0,0 +1,51 @@
1
+ export interface FromDB<DBModel, Model, FromDBArgs extends any[] = []> {
2
+ (dbModel: DBModel, ...args: FromDBArgs): Model;
3
+ }
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>>;
6
+ }
7
+ export interface MapFromDB<DBModel, Model, FromDBArgs extends any[] = []> {
8
+ (dbModels: DBModel[], ...args: FromDBArgs): Model[];
9
+ }
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>>[];
12
+ }
13
+ export interface ToDB<DBModel, Model, ToDBArgs extends any[] = []> {
14
+ (model: Model, ...args: ToDBArgs): DBModel;
15
+ }
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>>;
18
+ }
19
+ export interface MapToDB<DBModel, Model, ToDBArgs extends any[] = []> {
20
+ (models: Model[], ...args: ToDBArgs): DBModel[];
21
+ }
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>>[];
24
+ }
25
+ export interface SimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
26
+ toDB: ToDB<DBModel, Model, ToDBArgs>;
27
+ fromDB: FromDB<DBModel, Model, FromDBArgs>;
28
+ }
29
+ export interface SmartSimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
30
+ toDB: SmartToDB<DBModel, Model, ToDBArgs>;
31
+ fromDB: SmartFromDB<DBModel, Model, FromDBArgs>;
32
+ }
33
+ export interface MultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> extends SimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs> {
34
+ mapToDB: MapToDB<DBModel, Model, ToDBArgs>;
35
+ mapFromDB: MapFromDB<DBModel, Model, FromDBArgs>;
36
+ }
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>;
40
+ }
41
+ export interface AdapterOptions {
42
+ debug?: (message: string, model: unknown) => void;
43
+ }
44
+ export interface AnyMultiAdapter extends MultiAdapter<any, any> {
45
+ }
46
+ export interface AnySimpleAdapter extends SimpleAdapter<any, any> {
47
+ }
48
+ 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>;
50
+ 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) => MultiAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSmartMultiAdapter = exports.createMultiAdapter = exports.createSmartSimpleAdapter = exports.createSimpleAdapter = void 0;
4
+ const toDBFactory = (toDB, { debug } = {}) => (model, ...args) => {
5
+ debug === null || debug === void 0 ? void 0 : debug('adapter called with value from the store', model);
6
+ const result = toDB(model, ...args);
7
+ debug === null || debug === void 0 ? void 0 : debug('converted store value to', result);
8
+ return result;
9
+ };
10
+ const fromDBFactory = (fromDB, { debug } = {}) => (dbModel, ...args) => {
11
+ debug === null || debug === void 0 ? void 0 : debug('adapter called with value from DB', dbModel);
12
+ const result = fromDB(dbModel, ...args);
13
+ debug === null || debug === void 0 ? void 0 : debug('converted DB value to', result);
14
+ return result;
15
+ };
16
+ const mapToDBFactory = (toDB, { debug } = {}) => (models, ...args) => {
17
+ debug === null || debug === void 0 ? void 0 : debug('adapter called with values from store', models);
18
+ const result = models.map((model) => toDB(model, ...args));
19
+ debug === null || debug === void 0 ? void 0 : debug('converted store values to', result);
20
+ return result;
21
+ };
22
+ const mapFromDBFactory = (fromDB, { debug } = {}) => (dbModels, ...args) => {
23
+ debug === null || debug === void 0 ? void 0 : debug('adapter called with values from DB', dbModels);
24
+ const result = dbModels.map((dbModel) => fromDB(dbModel, ...args));
25
+ debug === null || debug === void 0 ? void 0 : debug('converted DB values to', result);
26
+ return result;
27
+ };
28
+ const createSimpleAdapter = (fromDB, toDB, options = {}) => ({
29
+ toDB: toDBFactory(toDB, options),
30
+ fromDB: fromDBFactory(fromDB, options),
31
+ });
32
+ exports.createSimpleAdapter = createSimpleAdapter;
33
+ const createSmartSimpleAdapter = (fromDB, toDB, options = {}
34
+ // eslint-disable-next-line sonarjs/no-identical-functions
35
+ ) => ({
36
+ toDB: toDBFactory(toDB, options),
37
+ fromDB: fromDBFactory(fromDB, options),
38
+ });
39
+ exports.createSmartSimpleAdapter = createSmartSimpleAdapter;
40
+ const createMultiAdapter = (fromDB, toDB, options = {}) => (Object.assign(Object.assign({}, (0, exports.createSimpleAdapter)(fromDB, toDB, options)), { mapToDB: mapToDBFactory(toDB, options), mapFromDB: mapFromDBFactory(fromDB, options) }));
41
+ exports.createMultiAdapter = createMultiAdapter;
42
+ const createSmartMultiAdapter = (fromDB, toDB, options = {}) => (Object.assign(Object.assign({}, (0, exports.createSmartSimpleAdapter)(fromDB, toDB, options)), { mapToDB: mapToDBFactory(toDB, options), mapFromDB: mapFromDBFactory(fromDB, options) }));
43
+ exports.createSmartMultiAdapter = createSmartMultiAdapter;
44
+ //# 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,15 @@
1
+ export declare type Identity = <Model>(model: Model) => Model;
2
+ export declare 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").MultiAdapter<Model, Model, [], []>;
15
+ export declare const createSimple: <Model>() => import("./adapter").SimpleAdapter<Model, Model, [], []>;
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createSimple = exports.createMulti = exports.simple = exports.multi = exports.transformer = void 0;
4
+ const adapter_1 = require("./adapter");
5
+ const transformer = (value) => value;
6
+ exports.transformer = transformer;
7
+ exports.multi = (0, adapter_1.createMultiAdapter)(exports.transformer, exports.transformer);
8
+ exports.simple = (0, adapter_1.createSimpleAdapter)(exports.transformer, exports.transformer);
9
+ const createMulti = () => (0, adapter_1.createMultiAdapter)(exports.transformer, exports.transformer);
10
+ exports.createMulti = createMulti;
11
+ const createSimple = () => (0, adapter_1.createSimpleAdapter)(exports.transformer, exports.transformer);
12
+ exports.createSimple = createSimple;
13
+ //# sourceMappingURL=identity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../../src/identity.ts"],"names":[],"mappings":";;;AAAA,uCAAoE;AAe7D,MAAM,WAAW,GAAa,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC;AAAzC,QAAA,WAAW,eAA8B;AAEzC,QAAA,KAAK,GAAU,IAAA,4BAAkB,EAAW,mBAAW,EAAE,mBAAW,CAAC,CAAC;AAEtE,QAAA,MAAM,GAAW,IAAA,6BAAmB,EAAW,mBAAW,EAAE,mBAAW,CAAC,CAAC;AAE/E,MAAM,WAAW,GAAG,GAAU,EAAE,CAAC,IAAA,4BAAkB,EAAe,mBAAW,EAAE,mBAAW,CAAC,CAAC;AAAtF,QAAA,WAAW,eAA2E;AAE5F,MAAM,YAAY,GAAG,GAAU,EAAE,CAAC,IAAA,6BAAmB,EAAe,mBAAW,EAAE,mBAAW,CAAC,CAAC;AAAxF,QAAA,YAAY,gBAA4E"}
@@ -0,0 +1,4 @@
1
+ export * from './adapter';
2
+ export { createMultiAdapter as default } from './adapter';
3
+ export * as identityAdapter from './identity';
4
+ export * as notImplementedAdapter from './notImplemented';
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || function (mod) {
22
+ if (mod && mod.__esModule) return mod;
23
+ var result = {};
24
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
25
+ __setModuleDefault(result, mod);
26
+ return result;
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.notImplementedAdapter = exports.identityAdapter = exports.default = void 0;
30
+ __exportStar(require("./adapter"), exports);
31
+ // eslint-disable-next-line no-restricted-exports
32
+ var adapter_1 = require("./adapter");
33
+ Object.defineProperty(exports, "default", { enumerable: true, get: function () { return adapter_1.createMultiAdapter; } });
34
+ exports.identityAdapter = __importStar(require("./identity"));
35
+ exports.notImplementedAdapter = __importStar(require("./notImplemented"));
36
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,iDAAiD;AACjD,qCAA0D;AAAjD,kGAAA,kBAAkB,OAAW;AACtC,8DAA8C;AAC9C,0EAA0D"}
@@ -0,0 +1,6 @@
1
+ export declare class NotImplementedError extends Error {
2
+ constructor();
3
+ }
4
+ export declare const transformer: () => never;
5
+ export declare const multi: import("./adapter").MultiAdapter<never, never, [], []>;
6
+ export declare const simple: import("./adapter").SimpleAdapter<never, never, [], []>;
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.simple = exports.multi = exports.transformer = exports.NotImplementedError = void 0;
4
+ const adapter_1 = require("./adapter");
5
+ class NotImplementedError extends Error {
6
+ constructor() {
7
+ super('adapter not implemented');
8
+ }
9
+ }
10
+ exports.NotImplementedError = NotImplementedError;
11
+ const transformer = () => {
12
+ throw new NotImplementedError();
13
+ };
14
+ exports.transformer = transformer;
15
+ exports.multi = (0, adapter_1.createMultiAdapter)(exports.transformer, exports.transformer);
16
+ exports.simple = (0, adapter_1.createSimpleAdapter)(exports.transformer, exports.transformer);
17
+ //# sourceMappingURL=notImplemented.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"notImplemented.js","sourceRoot":"","sources":["../../src/notImplemented.ts"],"names":[],"mappings":";;;AAAA,uCAAoE;AAEpE,MAAa,mBAAoB,SAAQ,KAAK;IAC5C;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnC,CAAC;CACF;AAJD,kDAIC;AAEM,MAAM,WAAW,GAAG,GAAU,EAAE;IACrC,MAAM,IAAI,mBAAmB,EAAE,CAAC;AAClC,CAAC,CAAC;AAFW,QAAA,WAAW,eAEtB;AAEW,QAAA,KAAK,GAAG,IAAA,4BAAkB,EAAC,mBAAW,EAAE,mBAAW,CAAC,CAAC;AACrD,QAAA,MAAM,GAAG,IAAA,6BAAmB,EAAC,mBAAW,EAAE,mBAAW,CAAC,CAAC"}
@@ -0,0 +1,51 @@
1
+ export interface FromDB<DBModel, Model, FromDBArgs extends any[] = []> {
2
+ (dbModel: DBModel, ...args: FromDBArgs): Model;
3
+ }
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>>;
6
+ }
7
+ export interface MapFromDB<DBModel, Model, FromDBArgs extends any[] = []> {
8
+ (dbModels: DBModel[], ...args: FromDBArgs): Model[];
9
+ }
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>>[];
12
+ }
13
+ export interface ToDB<DBModel, Model, ToDBArgs extends any[] = []> {
14
+ (model: Model, ...args: ToDBArgs): DBModel;
15
+ }
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>>;
18
+ }
19
+ export interface MapToDB<DBModel, Model, ToDBArgs extends any[] = []> {
20
+ (models: Model[], ...args: ToDBArgs): DBModel[];
21
+ }
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>>[];
24
+ }
25
+ export interface SimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
26
+ toDB: ToDB<DBModel, Model, ToDBArgs>;
27
+ fromDB: FromDB<DBModel, Model, FromDBArgs>;
28
+ }
29
+ export interface SmartSimpleAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> {
30
+ toDB: SmartToDB<DBModel, Model, ToDBArgs>;
31
+ fromDB: SmartFromDB<DBModel, Model, FromDBArgs>;
32
+ }
33
+ export interface MultiAdapter<DBModel, Model, FromDBArgs extends any[] = [], ToDBArgs extends any[] = []> extends SimpleAdapter<DBModel, Model, FromDBArgs, ToDBArgs> {
34
+ mapToDB: MapToDB<DBModel, Model, ToDBArgs>;
35
+ mapFromDB: MapFromDB<DBModel, Model, FromDBArgs>;
36
+ }
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>;
40
+ }
41
+ export interface AdapterOptions {
42
+ debug?: (message: string, model: unknown) => void;
43
+ }
44
+ export interface AnyMultiAdapter extends MultiAdapter<any, any> {
45
+ }
46
+ export interface AnySimpleAdapter extends SimpleAdapter<any, any> {
47
+ }
48
+ 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>;
50
+ 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) => MultiAdapter<DBModel, Model, FromDBArgs, ToDBArgs>;
@@ -0,0 +1,37 @@
1
+ const toDBFactory = (toDB, { debug } = {}) => (model, ...args) => {
2
+ debug === null || debug === void 0 ? void 0 : debug('adapter called with value from the store', model);
3
+ const result = toDB(model, ...args);
4
+ debug === null || debug === void 0 ? void 0 : debug('converted store value to', result);
5
+ return result;
6
+ };
7
+ const fromDBFactory = (fromDB, { debug } = {}) => (dbModel, ...args) => {
8
+ debug === null || debug === void 0 ? void 0 : debug('adapter called with value from DB', dbModel);
9
+ const result = fromDB(dbModel, ...args);
10
+ debug === null || debug === void 0 ? void 0 : debug('converted DB value to', result);
11
+ return result;
12
+ };
13
+ const mapToDBFactory = (toDB, { debug } = {}) => (models, ...args) => {
14
+ debug === null || debug === void 0 ? void 0 : debug('adapter called with values from store', models);
15
+ const result = models.map((model) => toDB(model, ...args));
16
+ debug === null || debug === void 0 ? void 0 : debug('converted store values to', result);
17
+ return result;
18
+ };
19
+ const mapFromDBFactory = (fromDB, { debug } = {}) => (dbModels, ...args) => {
20
+ debug === null || debug === void 0 ? void 0 : debug('adapter called with values from DB', dbModels);
21
+ const result = dbModels.map((dbModel) => fromDB(dbModel, ...args));
22
+ debug === null || debug === void 0 ? void 0 : 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 = {}) => (Object.assign(Object.assign({}, createSimpleAdapter(fromDB, toDB, options)), { mapToDB: mapToDBFactory(toDB, options), mapFromDB: mapFromDBFactory(fromDB, options) }));
36
+ export const createSmartMultiAdapter = (fromDB, toDB, options = {}) => (Object.assign(Object.assign({}, createSmartSimpleAdapter(fromDB, toDB, options)), { mapToDB: mapToDBFactory(toDB, options), mapFromDB: mapFromDBFactory(fromDB, options) }));
37
+ //# 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,15 @@
1
+ export declare type Identity = <Model>(model: Model) => Model;
2
+ export declare 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").MultiAdapter<Model, Model, [], []>;
15
+ export declare const createSimple: <Model>() => import("./adapter").SimpleAdapter<Model, Model, [], []>;
@@ -0,0 +1,7 @@
1
+ import { createMultiAdapter, createSimpleAdapter } from './adapter';
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"}
@@ -0,0 +1,4 @@
1
+ export * from './adapter';
2
+ export { createMultiAdapter as default } from './adapter';
3
+ export * as identityAdapter from './identity';
4
+ export * as notImplementedAdapter from './notImplemented';
@@ -0,0 +1,6 @@
1
+ export * from './adapter';
2
+ // eslint-disable-next-line no-restricted-exports
3
+ export { createMultiAdapter as default } from './adapter';
4
+ export * as identityAdapter from './identity';
5
+ export * as notImplementedAdapter from './notImplemented';
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,6 @@
1
+ export declare class NotImplementedError extends Error {
2
+ constructor();
3
+ }
4
+ export declare const transformer: () => never;
5
+ export declare const multi: import("./adapter").MultiAdapter<never, never, [], []>;
6
+ export declare const simple: import("./adapter").SimpleAdapter<never, never, [], []>;
@@ -0,0 +1,12 @@
1
+ import { createMultiAdapter, createSimpleAdapter } from './adapter';
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 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.0.0",
4
+ "version": "1.1.0",
5
5
  "author": "Tyler Han, Ben Teichman",
6
6
  "bugs": {
7
7
  "url": "https://github.com/voiceflow/bidirectional-adapter/issues"
@@ -12,34 +12,34 @@
12
12
  }
13
13
  },
14
14
  "devDependencies": {
15
- "@commitlint/cli": "^11.0.0",
16
- "@istanbuljs/nyc-config-typescript": "^1.0.1",
17
- "@types/chai": "^4.2.15",
18
- "@types/mocha": "^9.0.0",
19
- "@voiceflow/commitlint-config": "1.1.0",
20
- "@voiceflow/eslint-config": "3.4.0",
21
- "@voiceflow/git-branch-check": "1.2.0",
22
- "@voiceflow/prettier-config": "1.0.5",
23
- "@voiceflow/tsconfig": "1.1.0",
15
+ "@commitlint/cli": "11.0.0",
16
+ "@istanbuljs/nyc-config-typescript": "^1.0.2",
17
+ "@types/chai": "^4.3.3",
18
+ "@types/mocha": "^9.1.1",
19
+ "@voiceflow/commitlint-config": "2.0.0",
20
+ "@voiceflow/eslint-config": "6.1.0",
21
+ "@voiceflow/git-branch-check": "1.4.0",
22
+ "@voiceflow/prettier-config": "1.2.1",
23
+ "@voiceflow/tsconfig": "1.4.8",
24
24
  "@zerollup/ts-transform-paths": "^1.7.18",
25
- "chai": "^4.3.0",
26
- "commitizen": "^4.2.3",
25
+ "chai": "^4.3.6",
26
+ "commitizen": "^4.2.5",
27
27
  "cz-conventional-changelog": "^3.3.0",
28
- "depcheck": "^1.4.2",
29
- "eslint": "^7.20.0",
28
+ "depcheck": "^1.4.3",
29
+ "eslint": "^8.23.0",
30
30
  "eslint-output": "^3.0.1",
31
31
  "fixpack": "^4.0.0",
32
- "husky": "^4.3.8",
32
+ "husky": "^8.0.1",
33
33
  "istanbul": "^0.4.5",
34
- "lint-staged": "^10.5.4",
35
- "mocha": "^8.3.0",
34
+ "lint-staged": "^13.0.3",
35
+ "mocha": "^10.0.0",
36
36
  "nyc": "^15.1.0",
37
- "prettier": "^2.2.1",
38
- "source-map-support": "^0.5.19",
39
- "ts-mocha": "^8.0.0",
40
- "ts-node": "^9.1.1",
41
- "ttypescript": "^1.5.12",
42
- "typescript": "^4.4.2"
37
+ "prettier": "^2.7.1",
38
+ "source-map-support": "^0.5.21",
39
+ "ts-mocha": "^10.0.0",
40
+ "ts-node": "^10.9.1",
41
+ "ttypescript": "^1.5.13",
42
+ "typescript": "^4.8.2"
43
43
  },
44
44
  "files": [
45
45
  "build/"
@@ -52,14 +52,17 @@
52
52
  "voiceflow"
53
53
  ],
54
54
  "license": "ISC",
55
- "main": "build/index.js",
55
+ "main": "build/cjs/index.js",
56
+ "module": "build/esm/index.js",
56
57
  "prettier": "@voiceflow/prettier-config",
57
58
  "repository": {
58
59
  "type": "git",
59
60
  "url": "git+https://github.com/voiceflow/bidirectional-adapter.git"
60
61
  },
61
62
  "scripts": {
62
- "build": "yarn clean && ttsc --project ./tsconfig.build.json --declaration",
63
+ "build": "yarn clean && yarn build:cjs && yarn build:esm",
64
+ "build:cjs": "ttsc --build tsconfig.build.json",
65
+ "build:esm": "ttsc --build tsconfig.esm.json",
63
66
  "clean": "rimraf build",
64
67
  "commit": "cz",
65
68
  "eslint-output": "eslint-output",
@@ -75,5 +78,5 @@
75
78
  "test:single": "NODE_ENV=test ts-mocha --paths --config ./config/test/.mocharc.yml",
76
79
  "test:unit": "NODE_ENV=test nyc --report-dir=nyc_coverage_unit ts-mocha --paths --config ./config/test/.mocharc.yml 'test/**/*.unit.ts'"
77
80
  },
78
- "types": "build/index.d.ts"
81
+ "types": "build/cjs/index.d.ts"
79
82
  }
package/build/index.d.ts DELETED
@@ -1,24 +0,0 @@
1
- export declare class AdapterNotImplementedError extends Error {
2
- constructor();
3
- }
4
- export interface AdapterOptions {
5
- debug?: (message: string, value: any) => void;
6
- }
7
- export declare type Adapter<I, A extends any[], O> = (value: I, ...args: A) => O;
8
- export interface BidirectionalAdapter<I, O, T extends any[], R extends any[]> {
9
- fromDB: Adapter<I, T, O>;
10
- toDB: Adapter<O, R, I>;
11
- }
12
- export declare type AnyBidirectionalAdapter = BidirectionalAdapter<any, any, any[], any[]>;
13
- export declare type BidirectionalMultiAdapter<I, O, T extends any[], R extends any[]> = BidirectionalAdapter<I, O, T, R> & {
14
- mapFromDB: Adapter<I[], T, O[]>;
15
- mapToDB: Adapter<O[], R, I[]>;
16
- };
17
- export declare type AnyBidirectionalMultiAdapter = BidirectionalMultiAdapter<any, any, any[], any[]>;
18
- export declare const createSimpleAdapter: <I, O, T extends any[] = [], R extends any[] = []>(fromDB: Adapter<I, T, O>, toDB: Adapter<O, R, I>, { debug }?: AdapterOptions) => BidirectionalAdapter<I, O, T, R>;
19
- export declare const createAdapter: <I, O, T extends any[] = [], R extends any[] = []>(fromDB: Adapter<I, T, O>, toDB: Adapter<O, R, I>, options?: AdapterOptions) => BidirectionalMultiAdapter<I, O, T, R>;
20
- export default createAdapter;
21
- export declare const identityAdapter: {
22
- toDB: <T>(value: T) => T;
23
- fromDB: <T>(value: T) => T;
24
- };
package/build/index.js DELETED
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.identityAdapter = exports.createAdapter = exports.createSimpleAdapter = exports.AdapterNotImplementedError = void 0;
4
- const identity = (value) => value;
5
- class AdapterNotImplementedError extends Error {
6
- constructor() {
7
- super('adapter not implemented');
8
- }
9
- }
10
- exports.AdapterNotImplementedError = AdapterNotImplementedError;
11
- const createSimpleAdapter = (fromDB, toDB, { debug } = {}) => ({
12
- fromDB: (dbValue, ...args) => {
13
- debug === null || debug === void 0 ? void 0 : debug('adapter called with value from DB', dbValue);
14
- const result = fromDB(dbValue, ...args);
15
- debug === null || debug === void 0 ? void 0 : debug('converted DB value to', result);
16
- return result;
17
- },
18
- toDB: (appValue, ...args) => {
19
- debug === null || debug === void 0 ? void 0 : debug('adapter called with value from the store', appValue);
20
- const result = toDB(appValue, ...args);
21
- debug === null || debug === void 0 ? void 0 : debug('converted store value to', result);
22
- return result;
23
- },
24
- });
25
- exports.createSimpleAdapter = createSimpleAdapter;
26
- const createAdapter = (fromDB, toDB, options = {}) => (Object.assign(Object.assign({}, (0, exports.createSimpleAdapter)(fromDB, toDB, options)), { mapFromDB: (dbValues, ...args) => {
27
- var _a, _b;
28
- (_a = options.debug) === null || _a === void 0 ? void 0 : _a.call(options, 'adapter called with values from DB', dbValues);
29
- const result = dbValues.map((dbValue) => fromDB(dbValue, ...args));
30
- (_b = options.debug) === null || _b === void 0 ? void 0 : _b.call(options, 'converted DB values to', result);
31
- return result;
32
- }, mapToDB: (appValues, ...args) => {
33
- var _a, _b;
34
- (_a = options.debug) === null || _a === void 0 ? void 0 : _a.call(options, 'adapter called with values from store', appValues);
35
- const result = appValues.map((appValue) => toDB(appValue, ...args));
36
- (_b = options.debug) === null || _b === void 0 ? void 0 : _b.call(options, 'converted store values to', result);
37
- return result;
38
- } }));
39
- exports.createAdapter = createAdapter;
40
- exports.default = exports.createAdapter;
41
- exports.identityAdapter = (0, exports.createSimpleAdapter)(identity, identity);
42
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,QAAQ,GAAG,CAAI,KAAQ,EAAK,EAAE,CAAC,KAAK,CAAC;AAE3C,MAAa,0BAA2B,SAAQ,KAAK;IACnD;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IACnC,CAAC;CACF;AAJD,gEAIC;AAsBM,MAAM,mBAAmB,GAAG,CACjC,MAAwB,EACxB,IAAsB,EACtB,EAAE,KAAK,KAAqB,EAAE,EACI,EAAE,CAAC,CAAC;IACtC,MAAM,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE;QAC3B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,mCAAmC,EAAE,OAAO,CAAC,CAAC;QAEtD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;QAExC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,uBAAuB,EAAE,MAAM,CAAC,CAAC;QAEzC,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,IAAI,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;QAC1B,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,0CAA0C,EAAE,QAAQ,CAAC,CAAC;QAE9D,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;QAEvC,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAE5C,OAAO,MAAM,CAAC;IAChB,CAAC;CACF,CAAC,CAAC;AAvBU,QAAA,mBAAmB,uBAuB7B;AAEI,MAAM,aAAa,GAAG,CAC3B,MAAwB,EACxB,IAAsB,EACtB,UAA0B,EAAE,EACW,EAAE,CAAC,iCACvC,IAAA,2BAAmB,EAAa,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,KACzD,SAAS,EAAE,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE;;QAC/B,MAAA,OAAO,CAAC,KAAK,+CAAb,OAAO,EAAS,oCAAoC,EAAE,QAAQ,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEnE,MAAA,OAAO,CAAC,KAAK,+CAAb,OAAO,EAAS,wBAAwB,EAAE,MAAM,CAAC,CAAC;QAElD,OAAO,MAAM,CAAC;IAChB,CAAC,EACD,OAAO,EAAE,CAAC,SAAS,EAAE,GAAG,IAAI,EAAE,EAAE;;QAC9B,MAAA,OAAO,CAAC,KAAK,+CAAb,OAAO,EAAS,uCAAuC,EAAE,SAAS,CAAC,CAAC;QAEpE,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAEpE,MAAA,OAAO,CAAC,KAAK,+CAAb,OAAO,EAAS,2BAA2B,EAAE,MAAM,CAAC,CAAC;QAErD,OAAO,MAAM,CAAC;IAChB,CAAC,IACD,CAAC;AAxBU,QAAA,aAAa,iBAwBvB;AAEH,kBAAe,qBAAa,CAAC;AAEhB,QAAA,eAAe,GAGxB,IAAA,2BAAmB,EAAW,QAAQ,EAAE,QAAQ,CAAC,CAAC"}