@itrocks/storage
Version:
Transforms model objects to and from storage systems
17 lines • 736 B
JavaScript
import { createRequire } from 'module'
const require = createRequire(import.meta.url)
import { isAnyType } from '@itrocks/class-type';
import { DataSource } from './data-source.js';
export { DataSource };
let dataSources = {};
export function createDataSource(config, dataSource = 'main') {
const { engine, ...engineConfig } = config;
const module = require(engine);
const type = module.default ?? Object.values(module).find(any => isAnyType(any));
return dataSources[dataSource] = new type(engineConfig);
}
export { dataSource as ds };
export function dataSource(dataSource = 'main') {
return dataSources[dataSource] ?? (() => { throw 'Unknown data source ' + dataSource; })();
}
//# sourceMappingURL=storage.js.map