refactor(core): Delete boilerplate code across migrations (no-changelog) (#5254)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2023-05-05 09:28:59 +00:00
committed by GitHub
parent d5c44987f4
commit 82fe6383ef
122 changed files with 879 additions and 1844 deletions

View File

@@ -5,6 +5,9 @@ import type { QueryRunner } from 'typeorm/query-runner/QueryRunner';
import config from '@/config';
import { getLogger } from '@/Logger';
import { inTest } from '@/constants';
import type { Migration } from '@db/types';
const logger = getLogger();
const PERSONALIZATION_SURVEY_FILENAME = 'personalizationSurvey.json';
@@ -42,10 +45,10 @@ export function logMigrationStart(migrationName: string, disableLogging = inTest
if (disableLogging) return;
if (!logFinishTimeout) {
getLogger().warn('Migrations in progress, please do NOT stop the process.');
logger.warn('Migrations in progress, please do NOT stop the process.');
}
getLogger().debug(`Starting migration ${migrationName}`);
logger.debug(`Starting migration ${migrationName}`);
clearTimeout(logFinishTimeout);
}
@@ -53,13 +56,33 @@ export function logMigrationStart(migrationName: string, disableLogging = inTest
export function logMigrationEnd(migrationName: string, disableLogging = inTest): void {
if (disableLogging) return;
getLogger().debug(`Finished migration ${migrationName}`);
logger.debug(`Finished migration ${migrationName}`);
logFinishTimeout = setTimeout(() => {
getLogger().warn('Migrations finished.');
logger.warn('Migrations finished.');
}, 100);
}
export const wrapMigration = (migration: Migration) => {
const dbType = config.getEnv('database.type');
const dbName = config.getEnv(`database.${dbType === 'mariadb' ? 'mysqldb' : dbType}.database`);
const tablePrefix = config.getEnv('database.tablePrefix');
const migrationName = migration.name;
const context = { tablePrefix, dbType, dbName, migrationName };
const { up, down } = migration.prototype;
Object.assign(migration.prototype, {
up: async (queryRunner: QueryRunner) => {
logMigrationStart(migrationName);
await up.call(this, { queryRunner, ...context });
logMigrationEnd(migrationName);
},
down: async (queryRunner: QueryRunner) => {
await down?.call(this, { queryRunner, ...context });
},
});
};
function batchQuery(query: string, limit: number, offset = 0): string {
return `
${query}
@@ -91,8 +114,6 @@ export async function runInBatches(
} while (batchedQueryResults.length === limit);
}
export const getTablePrefix = () => config.getEnv('database.tablePrefix');
export const escapeQuery = (
queryRunner: QueryRunner,
query: string,

View File

@@ -1,22 +0,0 @@
import type { IDataObject, INodeExecutionData } from 'n8n-workflow';
export namespace PinData {
export type Old = { [nodeName: string]: IDataObject[] };
export type New = { [nodeName: string]: INodeExecutionData[] };
export type FetchedWorkflow = { id: number; pinData: string | Old };
}
export function isObjectLiteral(maybeObject: unknown): maybeObject is { [key: string]: string } {
return typeof maybeObject === 'object' && maybeObject !== null && !Array.isArray(maybeObject);
}
export function isJsonKeyObject(item: unknown): item is {
json: unknown;
[otherKeys: string]: unknown;
} {
if (!isObjectLiteral(item)) return false;
return Object.keys(item).includes('json');
}