UNPKG

@orchestrator/core

Version:
12 lines 2.57 kB
import { Property } from '@orchestrator/gen-io-ts'; import { brand } from 'io-ts'; import { addConfig } from '../../metadata/configuration'; export function OptionRange(min, max, step = 1) { const typeFactory = (type) => brand(type, (n) => n >= min && n <= max, 'InRange'); const decorator = Property({ type: Number, typeFactory }); return (target, prop) => { decorator(target, prop); addConfig(target, { prop, decorator: OptionRange, args: [min, max, step] }); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvcmUvc3JjL2xpYi9jb25maWcvb3B0aW9uL3JhbmdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsS0FBSyxFQUFXLE1BQU0sT0FBTyxDQUFDO0FBRXZDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQU16RCxNQUFNLFVBQVUsV0FBVyxDQUN6QixHQUFXLEVBQ1gsR0FBVyxFQUNYLE9BQWUsQ0FBQztJQUVoQixNQUFNLFdBQVcsR0FBRyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQ2hDLEtBQUssQ0FDSCxJQUFJLEVBQ0osQ0FBQyxDQUFDLEVBQXNDLEVBQUUsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQy9ELFNBQVMsQ0FDVixDQUFDO0lBQ0osTUFBTSxTQUFTLEdBQUcsUUFBUSxDQUFDLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzFELE9BQU8sQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLEVBQUU7UUFDdEIsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUN4QixTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb3BlcnR5IH0gZnJvbSAnQG9yY2hlc3RyYXRvci9nZW4taW8tdHMnO1xuaW1wb3J0IHsgYnJhbmQsIEJyYW5kZWQgfSBmcm9tICdpby10cyc7XG5cbmltcG9ydCB7IGFkZENvbmZpZyB9IGZyb20gJy4uLy4uL21ldGFkYXRhL2NvbmZpZ3VyYXRpb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEluUmFuZ2VCcmFuZCB7XG4gIHJlYWRvbmx5IEluUmFuZ2U6IHVuaXF1ZSBzeW1ib2w7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBPcHRpb25SYW5nZShcbiAgbWluOiBudW1iZXIsXG4gIG1heDogbnVtYmVyLFxuICBzdGVwOiBudW1iZXIgPSAxLFxuKTogUHJvcGVydHlEZWNvcmF0b3Ige1xuICBjb25zdCB0eXBlRmFjdG9yeSA9ICh0eXBlOiBhbnkpID0+XG4gICAgYnJhbmQoXG4gICAgICB0eXBlLFxuICAgICAgKG4pOiBuIGlzIEJyYW5kZWQ8bnVtYmVyLCBJblJhbmdlQnJhbmQ+ID0+IG4gPj0gbWluICYmIG4gPD0gbWF4LFxuICAgICAgJ0luUmFuZ2UnLFxuICAgICk7XG4gIGNvbnN0IGRlY29yYXRvciA9IFByb3BlcnR5KHsgdHlwZTogTnVtYmVyLCB0eXBlRmFjdG9yeSB9KTtcbiAgcmV0dXJuICh0YXJnZXQsIHByb3ApID0+IHtcbiAgICBkZWNvcmF0b3IodGFyZ2V0LCBwcm9wKTtcbiAgICBhZGRDb25maWcodGFyZ2V0LCB7IHByb3AsIGRlY29yYXRvcjogT3B0aW9uUmFuZ2UsIGFyZ3M6IFttaW4sIG1heCwgc3RlcF0gfSk7XG4gIH07XG59XG4iXX0=