UNPKG

@altostra/core

Version:

Core library for shared types and logic

1 lines 1.93 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.identitySpecValue=exports.validateIdentitySpecValue=exports.isIdentitySpecValue=exports.isApiAuthorizerConnection=exports.isCacheTimeout=exports.MAX_CACHE_TIMEOUT=void 0;const NonEmptyString_1=require("../../common/CustomTypes/NonEmptyString"),Numerics_1=require("../../common/CustomTypes/Numerics"),AltoError_1=require("../../common/Errors/AltoError"),type_validations_1=require("@altostra/type-validations"),Common_1=require("./Common");function isCacheTimeout(e){return(0===e||(0,Numerics_1.isNaturalNumber)(e))&&e<=exports.MAX_CACHE_TIMEOUT}exports.MAX_CACHE_TIMEOUT=3600,exports.isCacheTimeout=isCacheTimeout;const maybeIdentitySpecValueArr=(0,type_validations_1.maybe)((0,type_validations_1.arrayOf)(isIdentitySpecValue)),isIdentitySpecification=(0,type_validations_1.objectOf)({headers:maybeIdentitySpecValueArr,query:maybeIdentitySpecValueArr,context:maybeIdentitySpecValueArr,stageParams:maybeIdentitySpecValueArr}),isCachingBehavior=(0,type_validations_1.objectOf)({cacheTimeout:isCacheTimeout,identitySpecification:(0,type_validations_1.maybe)(isIdentitySpecification)});exports.isApiAuthorizerConnection=(0,type_validations_1.objectOf)(Object.assign(Object.assign({},Common_1.connectionBaseValidators),{type:(0,type_validations_1.is)("connection.api.authorizer"),cacheBehavior:(0,type_validations_1.maybe)(isCachingBehavior)}));const identitySpecValueRX=/^[\w\d-]+$/i;function isIdentitySpecValue(e){return(0,NonEmptyString_1.isNonEmptyString)(e)&&identitySpecValueRX.test(e)}function validateIdentitySpecValue(e){if(!isIdentitySpecValue(e))throw AltoError_1.AltoError.create("Invalid IdentitySpecValue",{data:{value:e}})}function identitySpecValue(e){return validateIdentitySpecValue(e),e}exports.isIdentitySpecValue=isIdentitySpecValue,exports.validateIdentitySpecValue=validateIdentitySpecValue,exports.identitySpecValue=identitySpecValue;