dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
28 lines (27 loc) • 837 B
JavaScript
import { pipe } from './pipe.js';
export 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 pipe(this, transformer);
}
}
export const prefix = (prefix, { delimiter = '#' } = {}) => new Prefixer(prefix, { delimiter });