UNPKG

pg-node-migrations

Version:

Based on the work on ThomWright's postgres migration package. Adds the ability to specify a schema and table name.

38 lines (37 loc) 1.44 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.loadMigrationFiles = void 0; const fs = require("fs"); const path = require("path"); const util_1 = require("util"); const migration_file_1 = require("./migration-file"); const validation_1 = require("./validation"); const readDir = util_1.promisify(fs.readdir); const isValidFile = (fileName) => /\.(sql|js)$/gi.test(fileName); /** * Load the migration files and assert they are reasonably valid. * * 'Reasonably valid' in this case means obeying the file name and * consecutive ordering rules. * * No assertions are made about the validity of the SQL. */ const loadMigrationFiles = async (directory, // tslint:disable-next-line no-empty log = () => { }) => { log(`Loading migrations from: ${directory}`); const fileNames = await readDir(directory); log(`Found migration files: ${fileNames}`); if (fileNames == null) { return []; } const migrationFiles = [ ...fileNames.map((fileName) => path.resolve(directory, fileName)), ].filter(isValidFile); const unorderedMigrations = await Promise.all(migrationFiles.map(migration_file_1.loadMigrationFile)); // Arrange in ID order const orderedMigrations = unorderedMigrations.sort((a, b) => a.id - b.id); validation_1.validateMigrationOrdering(orderedMigrations); return orderedMigrations; }; exports.loadMigrationFiles = loadMigrationFiles;