| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 | var utils = require("./utils");/** * Apply the operators that apply to the 'file:changed' event * @param {Rx.Observable} subject * @param options * @return {Rx.Observable<{type: string, files: Array<any>}>} */function fileChanges(subject, options) {    const operators = [        {            option: "reloadThrottle",            fnName: "throttle"        },        {            option: "reloadDelay",            fnName: "delay"        }    ];    const scheduler = options.getIn(["debug", "scheduler"]);    /**     * Create a stream buffered/debounced stream of events     */    const initial = getAggregatedDebouncedStream(subject, options, scheduler);    return applyOperators(operators, initial, options, scheduler).map(function (items) {        const paths = items.map(x => x.path);        if (utils.willCauseReload(paths, options.get("injectFileTypes").toJS())) {            return {                type: "reload",                files: items            };        }        return {            type: "inject",            files: items        };    });}module.exports.fileChanges = fileChanges;/** * Apply the operators that apply to the 'browser:reload' event * @param {Rx.Observable} subject * @param options * @returns {Rx.Observable} */function applyReloadOperators(subject, options) {    var operators = [        {            option: "reloadDebounce",            fnName: "debounce"        },        {            option: "reloadThrottle",            fnName: "throttle"        },        {            option: "reloadDelay",            fnName: "delay"        }    ];    return applyOperators(operators, subject, options, options.getIn(["debug", "scheduler"]));}module.exports.applyReloadOperators = applyReloadOperators;/** * @param items * @param subject * @param options * @param scheduler */function applyOperators(items, subject, options, scheduler) {    return items.reduce(function (subject, item) {        var value = options.get(item.option);        if (value > 0) {            return subject[item.fnName].call(subject, value, scheduler);        }        return subject;    }, subject);}/** * @param subject * @param options * @param scheduler */function getAggregatedDebouncedStream(subject, options, scheduler) {    return subject        .filter(function (x) {        return options.get("watchEvents").indexOf(x.event) > -1;    })        .buffer(subject.debounce(options.get("reloadDebounce"), scheduler));}//# sourceMappingURL=file-event-handler.js.map
 |