orm/src/proxy/model/SortProxy.js

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

const ModelProxy = require('./ModelProxy')

/**
 * Proxy that applies a number of sorts to the cursor.
 * @extends module:flitter-orm/src/proxy/model/ModelProxy~ModelProxy
 */
class SortProxy 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 {Array<string>} sorts - array of sorts ('-field', '+field', or 'field')
     * @param {module:flitter-orm/src/model/CursorBuilder~CursorBuilder} [builder] - optionally, the cursor builder to use
     */
    constructor(model, sorts, builder = undefined) {
        super(model, builder)
        this._sorts = sorts
        this.builder.sort(sorts)
    }
}

module.exports = exports = SortProxy