UNPKG

dynamodb-toolbox

Version:

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

30 lines (29 loc) 1.26 kB
import type { Strings } from 'hotscript'; import type { Piped } from './pipe.js'; import type { SerializableTransformer, Transformer } from './transformer.js'; interface PrefixerOptions<DELIMITER extends string> { delimiter?: DELIMITER; } export interface PrefixerDTO { transformerId: 'prefix'; prefix: string; delimiter: string; } export declare class Prefixer<PREFIX extends string, DELIMITER extends string = '#'> implements SerializableTransformer<string, string, string, Strings.Prepend<`${PREFIX}${DELIMITER}`>, PrefixerDTO> { _typeModifier: Strings.Prepend<`${PREFIX}${DELIMITER}`>; transformerId: 'prefix'; prefix: PREFIX; delimiter: DELIMITER; constructor(prefix: PREFIX, { delimiter }?: PrefixerOptions<DELIMITER>); encode(decoded: string): string; decode(encoded: string): string; toJSON(): { transformerId: "prefix"; prefix: PREFIX; delimiter: DELIMITER; }; pipe<TRANSFORMER extends Transformer<string>>(transformer: TRANSFORMER): Piped<[this, TRANSFORMER]>; } type Prefix = <PREFIX extends string, DELIMITER extends string = '#'>(prefix: PREFIX, options?: PrefixerOptions<DELIMITER>) => Prefixer<PREFIX, DELIMITER>; export declare const prefix: Prefix; export {};