"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.oneOf = void 0; const util_1 = require("util"); /** * A union of literals. When you want to take an exact enum value. */ function oneOf(literals) { const examples = literals.map(x => util_1.inspect(x)).join(', '); return { async from(str) { const value = literals.find(x => x === str); if (!value) { throw new Error(`Invalid value '${str}'. Expected one of: ${examples}`); } return value; }, description: `One of ${examples}`, }; } exports.oneOf = oneOf; //# sourceMappingURL=oneOf.js.map