diff --git a/lib/Filby.js b/lib/Filby.js index f311768..ec45b5a 100644 --- a/lib/Filby.js +++ b/lib/Filby.js @@ -32,26 +32,27 @@ module.exports = class Filby { async init() { const filbyDirectory = path.join(__dirname, '..', 'migrations'); - const filbyDirectoryPermissions = [{ path: filbyDirectory, permissions: expandPermissions(['ALL']) }]; + const filbyDirectoryPermissions = [{ path: filbyDirectory, permissions: ['ALL'] }]; const relativeDirectoryPermissions = this.#config.migrations || [{ migrations: ['ALL'] }]; - const absoluteDirectoryPermissions = this.#expandDirectoryPermissions(relativeDirectoryPermissions); + const absoluteDirectoryPermissions = this.#resolveDirectories(relativeDirectoryPermissions); await this.#migrateAll([...filbyDirectoryPermissions, ...absoluteDirectoryPermissions]); } - #expandDirectoryPermissions(relativeDirectoryPermissions) { - return relativeDirectoryPermissions.reduce((absoluteDirectoryPermissions, directoryPermissions) => ([ - ...absoluteDirectoryPermissions, - { + #resolveDirectories(relativeDirectoryPermissions) { + return relativeDirectoryPermissions.reduce((absoluteDirectoryPermissions, directoryPermissions) => { + return absoluteDirectoryPermissions.concat({ + ...directoryPermissions, path: path.resolve(directoryPermissions.path), - permissions: expandPermissions(directoryPermissions.permissions), - }, - ]), []); + }); + }, []); } async #migrateAll(directoryPermissions) { for (const { path: directory, permissions } of directoryPermissions) { const migrations = await marv.scan(directory, { filter: /(?:\.*yaml|\.*json|.*sql)$/ }); - await marv.migrate(migrations, driver(this.#config, permissions)); + const expandedPermissions = expandPermissions(permissions); + const filbyDriver = driver(this.#config, expandedPermissions); + await marv.migrate(migrations, filbyDriver); } } @@ -158,9 +159,7 @@ module.exports = class Filby { } while (ok); }; - return pipsqueak({ - name: 'filby-notifications', factory, interval, delay: initialDelay, - }); + return pipsqueak({ name: 'filby', factory, interval, delay: initialDelay }); } async #sendNotification(tx, notification, maxAttempts) {