UNPKG

dynamodb-toolbox

Version:

Lightweight and type-safe query builder for DynamoDB and TypeScript.

28 lines (27 loc) 837 B
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 });