/**
 * @author schukai GmbH
 */

import {AbstractConstraint} from "./abstract.mjs";

export {Valid}

/**
 * Constraints are used to define conditions that must be met by the value of a variable.
 *
 * The uniform API of the constraints allows chains to be formed.
 *
 * The valid constraint allows an always valid query to be performed. this constraint is mainly intended for testing.
 *
 * ```
 * <script type="module">
 * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.mjs';
 * new Valid();
 * </script>
 * ```
 *
 * @example
 *
 * import {Valid} from 'https://cdn.jsdelivr.net/npm/@schukai/monster@latest/source/constraints/valid.mjs';
 *
 * new Valid().isValid()
 * .then(()=>console.log(true))
 * .catch(()=>console.log(false));
 * // ↦ true
 *
 * @since 1.3.0
 * @copyright schukai GmbH
 * @memberOf Monster.Constraints
 * @summary A constraint that always valid
 */
class Valid extends AbstractConstraint {

    /**
     * this method return a promise containing the result of the check.
     *
     * @param {*} value
     * @returns {Promise}
     */
    isValid(value) {
        return Promise.resolve(value);
    }

}