dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
33 lines (32 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.prefix = exports.Prefixer = void 0;
const pipe_js_1 = require("./pipe.js");
class Prefixer {
constructor(prefix, { delimiter = '#' } = {}) {
this.transformerId = 'prefix';
this.prefix = prefix;
this.delimiter = delimiter;
}
encode(decoded) {
return [this.prefix, decoded].join(this.delimiter);
}
decode(encoded) {
return encoded.startsWith(`${this.prefix}${this.delimiter}`)
? encoded.slice(this.prefix.length + this.delimiter.length)
: encoded;
}
toJSON() {
return {
transformerId: this.transformerId,
prefix: this.prefix,
delimiter: this.delimiter
};
}
pipe(transformer) {
return (0, pipe_js_1.pipe)(this, transformer);
}
}
exports.Prefixer = Prefixer;
const prefix = (prefix, { delimiter = '#' } = {}) => new Prefixer(prefix, { delimiter });
exports.prefix = prefix;