summaryrefslogtreecommitdiff
path: root/desktop/node_modules/electron-packager/src/hooks.js
blob: a16426af0237afd5bec8e2c50f79a20d9aaa3a2c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
'use strict'

const { promisify } = require('util')

module.exports = {
  promisifyHooks: async function promisifyHooks (hooks, args) {
    if (!hooks || !Array.isArray(hooks)) {
      return Promise.resolve()
    }

    await Promise.all(hooks.map(hookFn => promisify(hookFn).apply(this, args)))
  },
  serialHooks: function serialHooks (hooks) {
    return async function () {
      const args = Array.prototype.splice.call(arguments, 0, arguments.length - 1)
      const done = arguments[arguments.length - 1]
      for (const hook of hooks) {
        await hook.apply(this, args)
      }

      return done() // eslint-disable-line promise/no-callback-in-promise
    }
  }
}