sql-code-generator
Version:
Generate code from your SQL schema and queries for type safety and development speed.
57 lines • 3.36 kB
JavaScript
;
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
return new (P || (P = Promise))(function (resolve, reject) {
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.generate = void 0;
const chalk_1 = __importDefault(require("chalk"));
const readConfig_1 = require("../../config/getConfig/readConfig");
const defineTypescriptQueryFunctionsFileCodeFromTypeDefinitions_1 = require("./defineTypescriptQueryFunctionsFileCodeFromTypeDefinitions/defineTypescriptQueryFunctionsFileCodeFromTypeDefinitions");
const defineTypescriptTypesFileCodeFromTypeDefinition_1 = require("./defineTypescriptTypesFileCodeFromTypeDefinition/defineTypescriptTypesFileCodeFromTypeDefinition");
const extractTypeDefinitionsFromDeclarations_1 = require("./extractTypeDefinitionsFromDeclarations/extractTypeDefinitionsFromDeclarations");
const saveCode_1 = require("./saveCode");
const generate = (_a) => __awaiter(void 0, [_a], void 0, function* ({ configPath }) {
// read the declarations from config
const config = yield (0, readConfig_1.readConfig)({ filePath: configPath });
// get type definitions for each resource and query
console.log(chalk_1.default.bold('Parsing sql and extracting type definitions...\n')); // tslint:disable-line no-console
const definitions = (0, extractTypeDefinitionsFromDeclarations_1.extractTypeDefinitionsFromDeclarations)({
language: config.language,
declarations: config.declarations,
});
// begin generating the output code files
console.log(chalk_1.default.bold('Generating code...\n')); // tslint:disable-line no-console
// output the type definitions code
const typescriptTypesFileCode = (0, defineTypescriptTypesFileCodeFromTypeDefinition_1.defineTypescriptTypesFileCodeFromTypeDefinitions)({
definitions,
});
yield (0, saveCode_1.saveCode)({
rootDir: config.rootDir,
filePath: config.generates.types,
code: typescriptTypesFileCode,
});
// output the query functions (if requested)
if (config.generates.queryFunctions) {
const typescriptQueryFunctionsFileCode = (0, defineTypescriptQueryFunctionsFileCodeFromTypeDefinitions_1.defineTypescriptQueryFunctionsFileCodeFromTypeDefinitions)({
definitions,
language: config.language,
generatedOutputPaths: config.generates,
});
yield (0, saveCode_1.saveCode)({
rootDir: config.rootDir,
filePath: config.generates.queryFunctions,
code: typescriptQueryFunctionsFileCode,
});
}
});
exports.generate = generate;
//# sourceMappingURL=generate.js.map