sql-ddl-query-generator
Version:
To make it easy for you to get started with GitLab, here's a list of recommended next steps.
78 lines • 3.71 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());
});
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.rename = exports.truncate = exports.alter = exports.createTable = exports.drop = exports.createSchema = exports.createDatabaseOrExercise = void 0;
function createDatabaseOrExercise(categoryName) {
return 'CREATE DATABASE ' + categoryName;
}
exports.createDatabaseOrExercise = createDatabaseOrExercise;
function createSchema(schemaName) {
return 'CREATE SCHEMA ' + schemaName;
}
exports.createSchema = createSchema;
function drop(tableName) {
return 'DROP TABLE ' + tableName;
}
exports.drop = drop;
function createTable(table, columns) {
return __awaiter(this, void 0, void 0, function* () {
const operation = 'CREATE TABLE';
let query = '';
if (columns) {
let tableColumns = '';
for (const column of columns) {
if (column.constraints.length) {
for (const constraint of column.constraints) {
tableColumns += `\n${column.fieldName} ${column.datatype} ${constraint} ,`;
}
}
else {
tableColumns += `\n${column.fieldName} ${column.datatype} ,`;
}
}
query = `${operation} ${table} (${tableColumns.substring(0, tableColumns.length - 2)})`;
return query;
}
query = `${operation} ${table}`;
return query;
});
}
exports.createTable = createTable;
function alter(tablename, fields, operation, modifyTableConstraints) {
if (operation === 'ADD') {
if (modifyTableConstraints) {
if (fields.constraint === "FOREIGN KEY") {
return `ALTER TABLE ${tablename} ${operation} CONSTRAINT ${fields.constraint} (${fields.target}) REFERENCES ${fields.sourceTable} (${fields.source})`;
}
return `ALTER TABLE ${tablename} ${operation} CONSTRAINT ${fields.constraint} (${fields.column})`;
}
else
return `ALTER TABLE ${tablename} ${operation} (${fields.columnname} ${fields.datatype})`;
}
else if (operation === 'DROP') {
return modifyTableConstraints ? `ALTER TABLE ${tablename} ${operation} CONSTRAINT ${fields.constraint} (${fields.column})` :
`ALTER TABLE ${tablename} ${operation} (${fields.columnname})`;
}
else if (operation === 'MODIFY') {
return modifyTableConstraints ? `ALTER TABLE ${tablename} ${operation} CONSTRAINT ${fields.constraint} (${fields.column})` :
`ALTER TABLE ${tablename} ${operation} (${fields.columnname} ${fields.datatype})`;
}
}
exports.alter = alter;
function truncate(tableName) {
return `TRUNCATE TABLE ${tableName}`;
}
exports.truncate = truncate;
function rename(Old_Table_Name, New_Table_Name) {
return `RENAME TABLE ${Old_Table_Name} TO ${New_Table_Name}`;
}
exports.rename = rename;
//# sourceMappingURL=index.js.map