summaryrefslogtreecommitdiff
path: root/lib/forever.js
blob: 82d004a1cf6a22cb4e8ae6eeb28db35d99a43952 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
'use strict';

import noop from 'lodash/noop';

import onlyOnce from './internal/onlyOnce';
import ensureAsync from './ensureAsync';

export default function forever(fn, cb) {
    var done = onlyOnce(cb || noop);
    var task = ensureAsync(fn);

    function next(err) {
        if (err) return done(err);
        task(next);
    }
    next();
}