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
        };
    });
}
Apply the operators that apply to the 'file:changed' event
@param {Rx.Observable} subject
@param options
@return {Rx.Observable<{type: string, files: Array<any>}>}