@respeecher/respeecher-js
Version:
[](https://buildwithfern.com?utm_source=github&utm_medium=github&utm_campaign=readme&utm_source=https%3A%2F%2Fgithub.com%2Frespeecher%2Frespeecher-js) [ • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.enum_ = enum_;
const Schema_js_1 = require("../../Schema.js");
const createIdentitySchemaCreator_js_1 = require("../../utils/createIdentitySchemaCreator.js");
const getErrorMessageForIncorrectType_js_1 = require("../../utils/getErrorMessageForIncorrectType.js");
function enum_(values) {
const validValues = new Set(values);
const schemaCreator = (0, createIdentitySchemaCreator_js_1.createIdentitySchemaCreator)(Schema_js_1.SchemaType.ENUM, (value, { allowUnrecognizedEnumValues, breadcrumbsPrefix = [] } = {}) => {
if (typeof value !== "string") {
return {
ok: false,
errors: [
{
path: breadcrumbsPrefix,
message: (0, getErrorMessageForIncorrectType_js_1.getErrorMessageForIncorrectType)(value, "string"),
},
],
};
}
if (!validValues.has(value) && !allowUnrecognizedEnumValues) {
return {
ok: false,
errors: [
{
path: breadcrumbsPrefix,
message: (0, getErrorMessageForIncorrectType_js_1.getErrorMessageForIncorrectType)(value, "enum"),
},
],
};
}
return {
ok: true,
value: value,
};
});
return schemaCreator();
}