UNPKG

@goatlab/fluent

Version:

Readable query Interface & API generator for TS and Node

45 lines 1.86 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.collect = collect; exports.initialize = initialize; const js_utils_1 = require("@goatlab/js-utils"); const generatorDatasource_1 = require("./generatorDatasource"); /** * * @param args */ function collect(data) { return new js_utils_1.Collection(data); } async function initialize(dataSources, Entities) { // If modelGeneratorDataSource is already initialized with the same entities, skip if (generatorDatasource_1.modelGeneratorDataSource.isInitialized) { // Check if entities are the same const currentEntities = generatorDatasource_1.modelGeneratorDataSource.options.entities || []; const areEntitiesEqual = Array.isArray(currentEntities) && currentEntities.length === Entities.length && currentEntities.every((entity, index) => entity === Entities[index]); if (areEntitiesEqual) { // Already initialized with the same entities, just initialize other data sources for (const dataSource of dataSources) { if (!dataSource.isInitialized) { await dataSource.initialize(); } } return; } // Different entities, need to reinitialize await generatorDatasource_1.modelGeneratorDataSource.destroy(); } // Set the entities on the modelGeneratorDataSource generatorDatasource_1.modelGeneratorDataSource.setOptions({ entities: Entities }); // Initialize the modelGeneratorDataSource await generatorDatasource_1.modelGeneratorDataSource.initialize(); // Initialize all provided data sources for (const dataSource of dataSources) { if (!dataSource.isInitialized) { await dataSource.initialize(); } } } //# sourceMappingURL=Fluent.js.map