dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
30 lines (29 loc) • 1.26 kB
TypeScript
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 {};