Organize directories
This commit is contained in:
parent
8a91c9b89b
commit
4898382f78
433 changed files with 0 additions and 0 deletions
54
metamigo-common/records/record-info.d.ts
vendored
54
metamigo-common/records/record-info.d.ts
vendored
|
|
@ -1,54 +0,0 @@
|
|||
export interface EntityType<TUnsaved = any, TSaved = any, TIds extends object = any> {
|
||||
_saved: TSaved;
|
||||
_unsaved: TUnsaved;
|
||||
_idKeys: TIds;
|
||||
idOf: (rec: TSaved) => TIds;
|
||||
}
|
||||
export declare type UnsavedR<T extends {
|
||||
_unsaved: any;
|
||||
}> = T["_unsaved"];
|
||||
export declare type SavedR<T extends {
|
||||
_saved: any;
|
||||
}> = T["_saved"];
|
||||
export declare type KeyType<R extends EntityType> = R["_idKeys"];
|
||||
export interface PgRecordInfo<Unsaved = any, Saved extends Unsaved & IdType = any, IdType extends object = any> extends EntityType<Unsaved, Saved, IdType> {
|
||||
tableName: string;
|
||||
schemaName: string;
|
||||
idKeys: (keyof Saved)[];
|
||||
}
|
||||
/**
|
||||
* Extract the runtime key name from a recordInfo
|
||||
*/
|
||||
export declare function idKeysOf<RI extends PgRecordInfo>(recordInfoWithIdKey: RI): string[];
|
||||
/**
|
||||
* Turns a record type with possibly more fields than "id" into an array
|
||||
*/
|
||||
export declare function collectIdValues<RecordT extends PgRecordInfo>(idObj: KeyType<RecordT>, knexRecordType: RecordT): string[];
|
||||
/**
|
||||
*
|
||||
* Creates a record descriptor that captures the table name, primary key name,
|
||||
* unsaved type, and saved type of a database record type. Assumes "id" as the
|
||||
* primary key name
|
||||
*
|
||||
*/
|
||||
export declare function recordInfo<Unsaved, Saved extends Unsaved & {
|
||||
id: any;
|
||||
}>(schemaName: string, tableName: string): PgRecordInfo<Unsaved, Saved, Pick<Saved, "id">>;
|
||||
export declare function recordInfo<Type extends {
|
||||
id: string;
|
||||
}>(schemaName: string, tableName: string): PgRecordInfo<Type, Type, Pick<Type, "id">>;
|
||||
/**
|
||||
*
|
||||
* Creates a record descriptor that captures the table name, primary key name,
|
||||
* unsaved type, and saved type of a database record type.
|
||||
*
|
||||
*/
|
||||
export declare function recordInfo<Unsaved, Saved extends Unsaved, Id extends keyof Saved>(schemaName: string, tableName: string, idKey: Id[]): PgRecordInfo<Unsaved, Saved, Pick<Saved, Id>>;
|
||||
/**
|
||||
*
|
||||
* Creates a record descriptor for records with composite primary keys
|
||||
*
|
||||
*/
|
||||
export declare function compositeRecordType<TUnsaved, TSaved extends TUnsaved = TUnsaved>(schemaName: string, tableName: string): {
|
||||
withCompositeKeys<TKeys extends keyof TSaved>(keys: TKeys[]): PgRecordInfo<TUnsaved, TSaved, Pick<TSaved, TKeys>>;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue