Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 36cc9e7

Browse files
authored
Merge pull request #13 from 9at8/types
Add TypeScript declarations
2 parents bfeb4c2 + 008b75e commit 36cc9e7

File tree

3 files changed

+1694
-1580
lines changed

3 files changed

+1694
-1580
lines changed

‎index.d.ts‎

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
declare module 'apollo-datasource-mongodb' {
2+
import { DataSource } from 'apollo-datasource'
3+
import { Collection as MongoCollection, ObjectId } from 'mongodb'
4+
import {
5+
Collection as MongooseCollection,
6+
Document,
7+
Model as MongooseModel
8+
} from 'mongoose'
9+
10+
export type Collection<T> = T extends Document
11+
? MongooseCollection
12+
: MongoCollection<T>
13+
14+
export type Model<T> = T extends Document ? MongooseModel<T> : undefined
15+
16+
export type ModelOrCollection<T> = T extends Document
17+
? Model<T>
18+
: Collection<T>
19+
20+
export interface Options {
21+
ttl: number
22+
}
23+
24+
export class MongoDataSource<TData, TContext = any> extends DataSource<
25+
TContext
26+
> {
27+
protected context: TContext
28+
protected collection: Collection<TData>
29+
protected model: Model<TData>
30+
31+
constructor(modelOrCollection: ModelOrCollection<TData>)
32+
33+
findOneById(
34+
id: ObjectId,
35+
options?: Options
36+
): Promise<TData | null | undefined>
37+
38+
findManyByIds(
39+
ids: ObjectId[],
40+
options?: Options
41+
): Promise<(TData | null | undefined)[]>
42+
43+
deleteFromCacheById(id: ObjectId): void
44+
}
45+
}

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /