UNPKG

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
"use strict"; 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