dynamodb-toolbox
Version:
Lightweight and type-safe query builder for DynamoDB and TypeScript.
28 lines (27 loc) • 2.29 kB
TypeScript
import type { AnyOfSchema, AnySchema, BinarySchema, BooleanSchema, ListSchema, MapSchema, NullSchema, NumberSchema, RecordSchema, Schema, SetSchema, StringSchema } from '../../schema/index.js';
export type ResetLinks<SCHEMA extends Schema> = (SCHEMA extends AnySchema ? AnySchema<{
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends NullSchema ? NullSchema<{
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends BooleanSchema ? BooleanSchema<{
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends NumberSchema ? NumberSchema<{
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends StringSchema ? StringSchema<{
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends BinarySchema ? BinarySchema<{
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends SetSchema ? SetSchema<SCHEMA['elements'], {
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends ListSchema ? ListSchema<SCHEMA['elements'], {
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends MapSchema ? MapSchema<SCHEMA['attributes'], {
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends RecordSchema ? RecordSchema<SCHEMA['keys'], SCHEMA['elements'], {
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never) | (SCHEMA extends AnyOfSchema ? AnyOfSchema<SCHEMA['elements'], {
[KEY in Exclude<keyof SCHEMA['props'], 'keyLink' | 'putLink' | 'updateLink'>]: SCHEMA['props'][KEY];
}> : never);
type LinksResetter = <SCHEMA extends Schema>(schema: SCHEMA) => ResetLinks<SCHEMA>;
export declare const resetLinks: LinksResetter;
export {};