@goatlab/fluent
Version:
Readable query Interface & API generator for TS and Node
45 lines • 1.86 kB
JavaScript
;
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