mirror of
https://github.com/Fabio286/antares.git
synced 2025-06-05 21:59:22 +02:00
refactor: ts improvements
This commit is contained in:
@ -58,6 +58,15 @@ export interface ConnectionParams {
|
|||||||
sshPassphrase?: string;
|
sshPassphrase?: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export interface TypeInformations {
|
||||||
|
name: string;
|
||||||
|
length: boolean;
|
||||||
|
scale: boolean;
|
||||||
|
collation: boolean;
|
||||||
|
unsigned: boolean;
|
||||||
|
zerofill: boolean;
|
||||||
|
}
|
||||||
|
|
||||||
// Tables
|
// Tables
|
||||||
export interface TableField {
|
export interface TableField {
|
||||||
name: string;
|
name: string;
|
||||||
|
@ -102,7 +102,7 @@ export class MySQLClient extends AntaresCore {
|
|||||||
return { name, length };
|
return { name, length };
|
||||||
}
|
}
|
||||||
|
|
||||||
_getTypeInfo (type: string) {
|
getTypeInfo (type: string): antares.TypeInformations {
|
||||||
return dataTypes
|
return dataTypes
|
||||||
.reduce((acc, group) => [...acc, ...group.types], [])
|
.reduce((acc, group) => [...acc, ...group.types], [])
|
||||||
.filter((_type) => _type.name === type.toUpperCase())[0];
|
.filter((_type) => _type.name === type.toUpperCase())[0];
|
||||||
@ -745,7 +745,7 @@ export class MySQLClient extends AntaresCore {
|
|||||||
|
|
||||||
// ADD FIELDS
|
// ADD FIELDS
|
||||||
fields.forEach(field => {
|
fields.forEach(field => {
|
||||||
const typeInfo = this._getTypeInfo(field.type);
|
const typeInfo = this.getTypeInfo(field.type);
|
||||||
const length = typeInfo.length ? field.enumValues || field.numLength || field.charLength || field.datePrecision : false;
|
const length = typeInfo.length ? field.enumValues || field.numLength || field.charLength || field.datePrecision : false;
|
||||||
|
|
||||||
newColumns.push(`\`${field.name}\`
|
newColumns.push(`\`${field.name}\`
|
||||||
@ -808,7 +808,7 @@ export class MySQLClient extends AntaresCore {
|
|||||||
|
|
||||||
// ADD FIELDS
|
// ADD FIELDS
|
||||||
additions.forEach(addition => {
|
additions.forEach(addition => {
|
||||||
const typeInfo = this._getTypeInfo(addition.type);
|
const typeInfo = this.getTypeInfo(addition.type);
|
||||||
const length = typeInfo.length ? addition.enumValues || addition.numLength || addition.charLength || addition.datePrecision : false;
|
const length = typeInfo.length ? addition.enumValues || addition.numLength || addition.charLength || addition.datePrecision : false;
|
||||||
|
|
||||||
alterColumns.push(`ADD COLUMN \`${addition.name}\`
|
alterColumns.push(`ADD COLUMN \`${addition.name}\`
|
||||||
@ -846,7 +846,7 @@ export class MySQLClient extends AntaresCore {
|
|||||||
|
|
||||||
// CHANGE FIELDS
|
// CHANGE FIELDS
|
||||||
changes.forEach(change => {
|
changes.forEach(change => {
|
||||||
const typeInfo = this._getTypeInfo(change.type);
|
const typeInfo = this.getTypeInfo(change.type);
|
||||||
const length = typeInfo.length ? change.enumValues || change.numLength || change.charLength || change.datePrecision : false;
|
const length = typeInfo.length ? change.enumValues || change.numLength || change.charLength || change.datePrecision : false;
|
||||||
|
|
||||||
alterColumns.push(`CHANGE COLUMN \`${change.orgName}\` \`${change.name}\`
|
alterColumns.push(`CHANGE COLUMN \`${change.orgName}\` \`${change.name}\`
|
||||||
|
@ -71,7 +71,7 @@ export class PostgreSQLClient extends AntaresCore {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_getTypeInfo (type: string) {
|
getTypeInfo (type: string): antares.TypeInformations {
|
||||||
return dataTypes
|
return dataTypes
|
||||||
.reduce((acc, group) => [...acc, ...group.types], [])
|
.reduce((acc, group) => [...acc, ...group.types], [])
|
||||||
.filter(_type => _type.name === type.toUpperCase())[0];
|
.filter(_type => _type.name === type.toUpperCase())[0];
|
||||||
@ -604,7 +604,7 @@ export class PostgreSQLClient extends AntaresCore {
|
|||||||
|
|
||||||
// ADD FIELDS
|
// ADD FIELDS
|
||||||
fields.forEach(field => {
|
fields.forEach(field => {
|
||||||
const typeInfo = this._getTypeInfo(field.type);
|
const typeInfo = this.getTypeInfo(field.type);
|
||||||
const length = typeInfo.length ? field.enumValues || field.numLength || field.charLength || field.datePrecision : false;
|
const length = typeInfo.length ? field.enumValues || field.numLength || field.charLength || field.datePrecision : false;
|
||||||
|
|
||||||
newColumns.push(`"${field.name}"
|
newColumns.push(`"${field.name}"
|
||||||
@ -663,7 +663,7 @@ export class PostgreSQLClient extends AntaresCore {
|
|||||||
|
|
||||||
// ADD FIELDS
|
// ADD FIELDS
|
||||||
additions.forEach(addition => {
|
additions.forEach(addition => {
|
||||||
const typeInfo = this._getTypeInfo(addition.type);
|
const typeInfo = this.getTypeInfo(addition.type);
|
||||||
const length = typeInfo.length ? addition.numLength || addition.charLength || addition.datePrecision : false;
|
const length = typeInfo.length ? addition.numLength || addition.charLength || addition.datePrecision : false;
|
||||||
|
|
||||||
alterColumns.push(`ADD COLUMN "${addition.name}"
|
alterColumns.push(`ADD COLUMN "${addition.name}"
|
||||||
@ -695,7 +695,7 @@ export class PostgreSQLClient extends AntaresCore {
|
|||||||
|
|
||||||
// CHANGE FIELDS
|
// CHANGE FIELDS
|
||||||
changes.forEach(change => {
|
changes.forEach(change => {
|
||||||
const typeInfo = this._getTypeInfo(change.type);
|
const typeInfo = this.getTypeInfo(change.type);
|
||||||
const length = typeInfo.length ? change.numLength || change.charLength || change.datePrecision : false;
|
const length = typeInfo.length ? change.numLength || change.charLength || change.datePrecision : false;
|
||||||
let localType;
|
let localType;
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ export class SQLiteClient extends AntaresCore {
|
|||||||
this._connectionsToCommit = new Map();
|
this._connectionsToCommit = new Map();
|
||||||
}
|
}
|
||||||
|
|
||||||
_getTypeInfo (type: string) {
|
getTypeInfo (type: string): antares.TypeInformations {
|
||||||
return dataTypes
|
return dataTypes
|
||||||
.reduce((acc, group) => [...acc, ...group.types], [])
|
.reduce((acc, group) => [...acc, ...group.types], [])
|
||||||
.filter(_type => _type.name === type.toUpperCase())[0];
|
.filter(_type => _type.name === type.toUpperCase())[0];
|
||||||
@ -298,7 +298,7 @@ export class SQLiteClient extends AntaresCore {
|
|||||||
|
|
||||||
// ADD FIELDS
|
// ADD FIELDS
|
||||||
fields.forEach(field => {
|
fields.forEach(field => {
|
||||||
const typeInfo = this._getTypeInfo(field.type);
|
const typeInfo = this.getTypeInfo(field.type);
|
||||||
const length = typeInfo?.length ? field.enumValues || field.numLength || field.charLength || field.datePrecision : false;
|
const length = typeInfo?.length ? field.enumValues || field.numLength || field.charLength || field.datePrecision : false;
|
||||||
|
|
||||||
newColumns.push(`"${field.name}"
|
newColumns.push(`"${field.name}"
|
||||||
|
@ -205,7 +205,7 @@ ${footer}
|
|||||||
const tableFields: string[] = [];
|
const tableFields: string[] = [];
|
||||||
|
|
||||||
for (const field of viewFields) {
|
for (const field of viewFields) {
|
||||||
const typeInfo = this._client._getTypeInfo(field.type);
|
const typeInfo = this._client.getTypeInfo(field.type);
|
||||||
const length = typeInfo.length ? field.enumValues || field.numLength || field.charLength || field.datePrecision : false;
|
const length = typeInfo.length ? field.enumValues || field.numLength || field.charLength || field.datePrecision : false;
|
||||||
|
|
||||||
tableFields.push(`\`${field.name}\` ${field.type.toUpperCase()}${length ? `(${length}${field.numScale ? `,${field.numScale}` : ''})` : ''} ${field.unsigned ? 'UNSIGNED' : ''} ${field.zerofill ? 'ZEROFILL' : ''} ${field.nullable ? 'NULL' : 'NOT NULL'} ${field.autoIncrement ? 'AUTO_INCREMENT' : ''} ${field.collation ? `COLLATE ${field.collation}` : ''}`);
|
tableFields.push(`\`${field.name}\` ${field.type.toUpperCase()}${length ? `(${length}${field.numScale ? `,${field.numScale}` : ''})` : ''} ${field.unsigned ? 'UNSIGNED' : ''} ${field.zerofill ? 'ZEROFILL' : ''} ${field.nullable ? 'NULL' : 'NOT NULL'} ${field.autoIncrement ? 'AUTO_INCREMENT' : ''} ${field.collation ? `COLLATE ${field.collation}` : ''}`);
|
||||||
|
Reference in New Issue
Block a user