dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
30 lines (29 loc) • 1.25 kB
TypeScript
import type { Strings } from 'hotscript';
import type { Piped } from './pipe.js';
import type { SerializableTransformer, Transformer } from './transformer.js';
interface SuffixerOptions<DELIMITER extends string> {
delimiter?: DELIMITER;
}
export interface SuffixerDTO {
transformerId: 'suffix';
suffix: string;
delimiter: string;
}
export declare class Suffixer<SUFFIX extends string, DELIMITER extends string = '#'> implements SerializableTransformer<string, string, string, Strings.Append<`${DELIMITER}${SUFFIX}`>, SuffixerDTO> {
_typeModifier: Strings.Append<`${DELIMITER}${SUFFIX}`>;
transformerId: 'suffix';
suffix: SUFFIX;
delimiter: DELIMITER;
constructor(suffix: SUFFIX, { delimiter }?: SuffixerOptions<DELIMITER>);
encode(decoded: string): string;
decode(encoded: string): string;
toJSON(): {
transformerId: "suffix";
suffix: SUFFIX;
delimiter: DELIMITER;
};
pipe<TRANSFORMER extends Transformer<string>>(transformer: TRANSFORMER): Piped<[this, TRANSFORMER]>;
}
type Suffix = <SUFFIX extends string, DELIMITER extends string = '#'>(suffix: SUFFIX, options?: SuffixerOptions<DELIMITER>) => Suffixer<SUFFIX, DELIMITER>;
export declare const suffix: Suffix;
export {};