class-validatorでIsBase64を使用したときにurlSafeオプションが効かない

class-validatorでIsBase64を使用したときにurlSafeオプションが効かない

Tags
Node.js
Published
June 12, 2024
Last Updated
Last updated February 24, 2025
Author
検証バージョン
"class-validator": "^0.14.1”
 
class-validarでIsBase64を使用した際にオプションを指定しても無視される不具合があった
 
class Hoge { @IsBase64({ urlSafe: true }) fuga: string; }
 
実装を見てもオプションが渡されていない
 
function IsBase64(options, validationOptions) { return (0, ValidateBy_1.ValidateBy)({ name: exports.IS_BASE64, constraints: [options], validator: { validate: (value, args) => isBase64(value), defaultMessage: (0, ValidateBy_1.buildMessage)(eachPrefix => eachPrefix + '$property must be base64 encoded', validationOptions), }, }, validationOptions); }
 
他のメソッドを参考に修正すると以下のようになる
function IsBase64(options, validationOptions) { return (0, ValidateBy_1.ValidateBy)({ name: exports.IS_BASE64, constraints: [options], validator: { validate: (value, args) => isBase64(value, args === null || args === void 0 ? void 0 : args.constraints[0]), defaultMessage: (0, ValidateBy_1.buildMessage)(eachPrefix => eachPrefix + '$property must be base64 encoded', validationOptions), }, }, validationOptions); }
 
既にissueの報告とプルリクエストが作成されていたので修正待ち