all files / fileOperations/api/ configurationsFileOperations.js

100% Statements 47/47
100% Branches 2/2
100% Functions 23/23
100% Lines 47/47
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118                                                                                                                                             
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
var models_1 = require("../../generators/api/models");
var fileUtil_1 = require("../../commons/utils/fileUtil");
var directoryStructure_1 = require("../../commons/constants/directoryStructure");
var config_1 = require("../../generators/api/config/config");
var cors_1 = require("../../generators/api/config/cors");
var express_1 = require("../../generators/api/config/express");
var router_1 = require("../../generators/api/config/router");
var index_1 = require("../../generators/api/config/index");
/**
 * Class which implements logic for creating configuration files
 *
 * @export
 * @class ConfigurationFileOperations
 */
var ConfigurationFileOperations = (function () {
    function ConfigurationFileOperations() {
    }
    /**
     * Generate general configuration
     * @param {string} filePath - file path where api will be generated
     * @return {Promise<boolean>}
     */
    ConfigurationFileOperations.prototype.initializeConfig = function (filePath) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            return tslib_1.__generator(this, function (_a) {
                return [2 /*return*/, fileUtil_1.default.writeFile(fileUtil_1.default.joinPaths(filePath, directoryStructure_1.default.API_STRUCTURE.CONFIG, 'config.js'), config_1.default.getConfig())];
            });
        });
    };
    /**
     * Generate get env based config util class
     * @param {string} filePath - file path where api will be generated
     * @return {Promise<boolean>}
     */
    ConfigurationFileOperations.prototype.initializeGetEnvBasedConfig = function (filePath) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            return tslib_1.__generator(this, function (_a) {
                return [2 /*return*/, fileUtil_1.default.writeFile(fileUtil_1.default.joinPaths(filePath, directoryStructure_1.default.API_STRUCTURE.CONFIG, 'index.js'), config_1.default.getEnvBasedConfig())];
            });
        });
    };
    /**
     * Generate database configuration
     * @param {Connection data} connection - connection info
     * @param {string} filePath - file path where api will be generated
     * @return {Promise<boolean>}
     */
    ConfigurationFileOperations.prototype.initializeDbConfig = function (connection, filePath) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            var configContent;
            return tslib_1.__generator(this, function (_a) {
                configContent = '';
                switch (connection.dialect) {
                    case 'MySql':
                        configContent = models_1.default.sequelize.getConfig(connection);
                    default:
                }
                return [2 /*return*/, fileUtil_1.default.writeFile(fileUtil_1.default.joinPaths(filePath, directoryStructure_1.default.API_STRUCTURE.CONFIG, 'database.js'), configContent)];
            });
        });
    };
    /**
     * Initialize cors configuration
     * @param filePath - file path where api will be generated
     * @return {Promise<boolean>} - true if cors file was successfully created
     */
    ConfigurationFileOperations.prototype.initializeCorsConfig = function (filePath) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            return tslib_1.__generator(this, function (_a) {
                return [2 /*return*/, fileUtil_1.default.writeFile(fileUtil_1.default.joinPaths(filePath, directoryStructure_1.default.API_STRUCTURE.MIDDLEWARES, 'cors.js'), cors_1.default.getCorsConfig())];
            });
        });
    };
    /**
     * Initialize express configuration
     * @param filePath - file path where api will be generated
     * @return {Promise<boolean>} - true if express file was successfully created
     */
    ConfigurationFileOperations.prototype.initializeExpressConfig = function (filePath) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            return tslib_1.__generator(this, function (_a) {
                return [2 /*return*/, fileUtil_1.default.writeFile(fileUtil_1.default.joinPaths(filePath, directoryStructure_1.default.API_STRUCTURE.CONFIG, 'express.js'), express_1.default.getExpressConfig())];
            });
        });
    };
    /**
     * Initialize express configuration
     * @param filePath - file path where api will be generated
     * @param schema - database schema table
     * @return {Promise<boolean>}
     */
    ConfigurationFileOperations.prototype.initializeRouterConfig = function (filePath, schema) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            return tslib_1.__generator(this, function (_a) {
                return [2 /*return*/, fileUtil_1.default.writeFile(fileUtil_1.default.joinPaths(filePath, directoryStructure_1.default.API_STRUCTURE.CONFIG, 'router.js'), router_1.default.getRouterConfig(schema))];
            });
        });
    };
    /**
     * Initialize main index.js file
     * @param filePath - file path where api will be generated
     * @return {Promise<boolean>} - true if index file was created
     */
    ConfigurationFileOperations.prototype.initializeIndex = function (filePath) {
        return tslib_1.__awaiter(this, void 0, void 0, function () {
            return tslib_1.__generator(this, function (_a) {
                return [2 /*return*/, fileUtil_1.default.writeFile(fileUtil_1.default.joinPaths(filePath, directoryStructure_1.default.API_STRUCTURE.SRC, 'index.js'), index_1.default.getIndex())];
            });
        });
    };
    return ConfigurationFileOperations;
}());
exports.ConfigurationFileOperations = ConfigurationFileOperations;
exports.default = new ConfigurationFileOperations();