@itrocks/storage
Version:
Transforms model objects to and from storage systems
28 lines • 1.61 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Sort = exports.Option = exports.Limit = exports.isIdentifier = exports.DataSource = void 0;
exports.createDataSource = createDataSource;
exports.dataSource = dataSource;
exports.ds = dataSource;
const class_type_1 = require("@itrocks/class-type");
var data_source_1 = require("./data-source");
Object.defineProperty(exports, "DataSource", { enumerable: true, get: function () { return data_source_1.DataSource; } });
var entity_1 = require("./entity");
Object.defineProperty(exports, "isIdentifier", { enumerable: true, get: function () { return entity_1.isIdentifier; } });
var limit_1 = require("./option/limit");
Object.defineProperty(exports, "Limit", { enumerable: true, get: function () { return limit_1.Limit; } });
var option_1 = require("./option/option");
Object.defineProperty(exports, "Option", { enumerable: true, get: function () { return option_1.Option; } });
var sort_1 = require("./option/sort");
Object.defineProperty(exports, "Sort", { enumerable: true, get: function () { return sort_1.Sort; } });
let dataSources = {};
function createDataSource(config, dataSource = 'main') {
const { engine, ...engineConfig } = config;
const module = require(engine);
const type = module.default ?? Object.values(module).find(any => (0, class_type_1.isAnyType)(any));
return dataSources[dataSource] = new type(engineConfig);
}
function dataSource(dataSource = 'main') {
return dataSources[dataSource] ?? (() => { throw 'Unknown data source ' + dataSource; })();
}
//# sourceMappingURL=storage.js.map