@opra/common
Version:
Opra common package
45 lines (44 loc) • 1.42 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Base64Type = void 0;
const tslib_1 = require("tslib");
const valgen_1 = require("valgen");
const constants_js_1 = require("../../constants.js");
const simple_type_js_1 = require("../simple-type.js");
let Base64Type = class Base64Type {
constructor(attributes) {
if (attributes)
Object.assign(this, attributes);
}
[constants_js_1.DECODER](properties) {
const fn = valgen_1.vg.isBase64({ coerce: true });
if (properties.convertToNative)
return valgen_1.vg.pipe([fn, toBuffer], { coerce: true });
return fn;
}
[constants_js_1.ENCODER]() {
return fromBuffer;
}
};
exports.Base64Type = Base64Type;
exports.Base64Type = Base64Type = tslib_1.__decorate([
(0, simple_type_js_1.SimpleType)({
name: 'base64',
description: 'A stream of bytes, base64 encoded',
nameMappings: {
js: 'string',
json: 'string',
},
}),
tslib_1.__metadata("design:paramtypes", [Object])
], Base64Type);
const toBuffer = (0, valgen_1.validator)((base64String) => {
return Buffer.from(base64String, 'base64');
});
const fromBuffer = (0, valgen_1.validator)((input) => {
if (Buffer.isBuffer(input))
return input.toString('base64');
else {
return (0, valgen_1.isBase64)(input);
}
});