sql-code-generator
Version:
Generate code from your SQL schema and queries for type safety and development speed.
37 lines • 1.91 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.extractTypeDefinitionFromQuerySql = void 0;
const sql_strip_comments_1 = __importDefault(require("sql-strip-comments"));
const TypeDefinitionOfQuery_1 = require("../../../domain/objects/TypeDefinitionOfQuery");
const extractInputVariablesFromQuerySql_1 = require("./extractInputVariablesFromQuerySql/extractInputVariablesFromQuerySql");
const extractSelectExpressionsFromQuerySql_1 = require("./extractSelectExpressionsFromQuerySql/extractSelectExpressionsFromQuerySql");
const extractTableReferencesFromQuerySql_1 = require("./extractTableReferencesFromQuerySql/extractTableReferencesFromQuerySql");
const extractTypeDefinitionFromQuerySql = ({ name, path, sql, }) => {
// 0. strip out comments
const strippedSql = (0, sql_strip_comments_1.default)(sql);
// 1. grab the selectExpression definitions
const selectExpressions = (0, extractSelectExpressionsFromQuerySql_1.extractSelectExpressionsFromQuerySql)({
sql: strippedSql,
});
// 2. grab the table reference definitions
const tableReferences = (0, extractTableReferencesFromQuerySql_1.extractTableReferencesFromQuerySql)({
sql: strippedSql,
});
// 3. grab the input variable definitions
const inputVariables = (0, extractInputVariablesFromQuerySql_1.extractInputVariablesFromQuerySql)({
sql: strippedSql,
});
// 4. return the full query typedef
return new TypeDefinitionOfQuery_1.TypeDefinitionOfQuery({
name,
path,
selectExpressions,
tableReferences,
inputVariables,
});
};
exports.extractTypeDefinitionFromQuerySql = extractTypeDefinitionFromQuerySql;
//# sourceMappingURL=extractTypeDefinitionFromQuerySql.js.map