dce-mango
Version:
Harvard DCE's Non-relational DB Wrapper.
33 lines (31 loc) • 908 B
text/typescript
/**
* Options for when constructing a Collection.
* @author Benedikt Arnarsson
*/
type CollectionOpts = (
// Opts that are independent of concurrency
{
// If provided, will delete documents after the set number of seconds
expireAfterSeconds?: number,
// Extra secondary index keys, for querying
indexKeys?: string[],
} & (
// Supports concurrency
| {
supportConcurrency: true,
// The max time that a collection will wait for a lock
atomicUpdateTimeoutMs?: number,
// Primary index key, must be 'id' for concurrent collections
uniqueIndexKey: 'id',
}
// Doesn't support concurrency
| {
supportConcurrency?: false,
// see above, undefined for non-concurrent collections
atomicUpdateTimeoutMs?: undefined,
// Optional primary index key
uniqueIndexKey?: string,
}
)
);
export default CollectionOpts;