kasra-apppair-cli
Version:
cli tools
67 lines (63 loc) • 3.14 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRepository = exports.queryTextGenerator = exports.repositoryTextGenerator = void 0;
/* ---------------------------- Node Dependencies --------------------------- */
const node_fs_1 = __importDefault(require("node:fs"));
/* ------------------------------ Dependencies ------------------------------ */
const change_case_all_1 = require("change-case-all");
/* ----------------------------- Custom Modules ----------------------------- */
const helpers_1 = require("../helpers");
const libraries_1 = require("../libraries");
/* -------------------------------------------------------------------------- */
const repositoryTextGenerator = (moduleName) => {
const modulePascalCase = (0, change_case_all_1.pascalCase)(moduleName);
const moduleCamelCase = (0, change_case_all_1.camelCase)(moduleName);
return `
/* ----------------------------- Custom Modules ----------------------------- */
import { postgresPool } from '../../bootstrap'
import ${moduleCamelCase}Queries from './${moduleCamelCase}.query'
/* -------------------------------------------------------------------------- */
class ${modulePascalCase}Repository {
public healthCheck() {
return new Promise((resolve, reject) => {
const query = ${moduleCamelCase}Queries.pingDatabase()
postgresPool.pool
.query(query)
.then(() => resolve('Everything Works Fine'))
.catch(() => reject('Error on connecting database'))
})
}
}
export default new ${modulePascalCase}Repository()
`;
};
exports.repositoryTextGenerator = repositoryTextGenerator;
const queryTextGenerator = () => {
return `
/* ------------------------------ Dependencies ------------------------------ */
import SqlString from 'sqlstring'
/* -------------------------------------------------------------------------- */
export const pingDatabase = () => 'SELECT 1'
`;
};
exports.queryTextGenerator = queryTextGenerator;
const createRepository = (moduleName) => {
const repositoryText = (0, exports.repositoryTextGenerator)(moduleName);
const queryText = (0, exports.queryTextGenerator)();
const repositoryFilePath = (0, helpers_1.getFilePath)(moduleName, libraries_1.FileNames.REPOSITORY);
const queryFilePath = (0, helpers_1.getFilePath)(moduleName, libraries_1.FileNames.QUERY);
try {
node_fs_1.default.writeFileSync(repositoryFilePath, repositoryText);
(0, helpers_1.logger)(`${(0, helpers_1.getFileName)(moduleName, libraries_1.FileNames.REPOSITORY)}\tis created`, libraries_1.LogTypes.SUCCESS);
node_fs_1.default.writeFileSync(queryFilePath, queryText);
(0, helpers_1.logger)(`${(0, helpers_1.getFileName)(moduleName, libraries_1.FileNames.QUERY)}\t\tis created`, libraries_1.LogTypes.SUCCESS);
return true;
}
catch {
return false;
}
};
exports.createRepository = createRepository;