orm/src/proxy/model/FilterProxy.js

/**
 * @module flitter-orm/src/proxy/model/FilterProxy
 */

const ModelProxy = require('./ModelProxy')

/**
 * Proxy that applies a filter to the reference's result set.
 * @extends module:flitter-orm/src/proxy/model/ModelProxy
 */
class FilterProxy extends ModelProxy {
    /**
     * Instantiate the proxy.
     * @param {module:flitter-orm/src/model/Model~Model|module:flitter-orm/src/proxy/model/ModelProxy~ModelProxy} model - proxy ref
     * @param {module:flitter-orm/src/filter/Filter~Filter} filter - the filter to apply
     * @param {module:flitter-orm/src/model/CursorBuilder~CursorBuilder} [builder] - optionally, the cursor builder to use
     */
    constructor(model, filter, builder = undefined) {
        super(model, builder)
        this.builder.filter(filter)
    }
}

module.exports = exports = FilterProxy