"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var fileUtil_1 = require("../../commons/utils/fileUtil");
var directoryStructure_1 = require("../../commons/constants/directoryStructure");
var repositories_1 = require("../../generators/api/repositories");
/**
* Class which implements the logic for repository generation.
*
* @export
* @class RepositoriesFileOperations
*/
var RepositoriesFileOperations = (function () {
function RepositoriesFileOperations() {
}
/**
* Initialize sequelize repositories
*
* @param {string} filePath - root api file path
* @param {Schema} schema - source schema for api generation
* @return {Promise<boolean[]>}
* @memberof RepositoriesFileOperations
*/
RepositoriesFileOperations.prototype.initializeSequelizeRepositories = function (filePath, schema) {
return tslib_1.__awaiter(this, void 0, void 0, function () {
var promises, factory;
return tslib_1.__generator(this, function (_a) {
promises = [Promise.resolve(true)];
repositories_1.default.sequelize.getRepositories(schema).forEach(function (repository) {
promises.push(fileUtil_1.default.writeFile(filePath + "/" + directoryStructure_1.default.API_STRUCTURE.REPOSITORIES + "/" + repository.name, repository.content));
});
factory = repositories_1.default.sequelize.getRepositoryFactory(schema);
promises.push(fileUtil_1.default.writeFile(filePath + "/" + directoryStructure_1.default.API_STRUCTURE.REPOSITORIES + "/" + factory.name, factory.content));
return [2 /*return*/, Promise.all(promises)];
});
});
};
return RepositoriesFileOperations;
}());
exports.RepositoriesFileOperations = RepositoriesFileOperations;
exports.default = new RepositoriesFileOperations();
|