Skip to content

Commit f0a1267

Browse files
Merge pull request #33 from theGlenn/tg-feature-resolversTypes
Tg feature resolvers types
2 parents 0703f59 + d137a18 commit f0a1267

20 files changed

+22
-204
lines changed

dist/context.d.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

dist/context.js

Lines changed: 0 additions & 33 deletions
This file was deleted.

dist/context.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/helper.d.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

dist/helper.js

Lines changed: 0 additions & 30 deletions
This file was deleted.

dist/helper.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/index.d.ts

Lines changed: 0 additions & 5 deletions
This file was deleted.

dist/index.js

Lines changed: 0 additions & 11 deletions
This file was deleted.

dist/index.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/promise.d.ts

Lines changed: 0 additions & 2 deletions
This file was deleted.

dist/promise.js

Lines changed: 0 additions & 18 deletions
This file was deleted.

dist/promise.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/resolver.d.ts

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/resolver.js

Lines changed: 0 additions & 60 deletions
This file was deleted.

dist/resolver.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

dist/util.d.ts

Lines changed: 0 additions & 3 deletions
This file was deleted.

dist/util.js

Lines changed: 0 additions & 17 deletions
This file was deleted.

dist/util.js.map

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/resolver.ts

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,28 @@
11
import { getPromise } from './promise';
22
import { isFunction, Promisify, isNotNullOrUndefined } from './util';
33

4+
const Promise = getPromise();
45

5-
export const createResolver = (resFn, errFn) => {
6+
export interface ResultFunction<ResulType> {
7+
(root, args, context, info): Promise<ResulType> | ResulType | void
8+
}
9+
10+
export interface ErrorFunction<ErrorType> {
11+
(root, args, context, err): ErrorType | void
12+
}
13+
14+
export interface CreateResolverFunction {
15+
<R, E>(resFn: ResultFunction<R>, errFn?: ErrorFunction<E>): Resolver<R>
16+
}
17+
18+
export interface Resolver<ResulType> {
19+
(root, args: {}, context: {}, info: {}): Promise<ResulType>
20+
createResolver?: CreateResolverFunction
21+
}
22+
23+
export const createResolver: CreateResolverFunction = <R, E>(resFn: ResultFunction<R>, errFn: ErrorFunction<E>) => {
624
const Promise = getPromise();
7-
const baseResolver = (root, args = {}, context = {}, info = {}) => {
25+
const baseResolver: Resolver<R> = (root, args = {}, context = {}, info = {}) => {
826
// Return resolving promise with `null` if the resolver function param is not a function
927
if (!isFunction(resFn)) return Promise.resolve(null);
1028
return Promisify(resFn)(root, args, context, info).catch(e => {
@@ -20,7 +38,7 @@ export const createResolver = (resFn, errFn) => {
2038
});
2139
});
2240
};
23-
baseResolver['createResolver'] = (cResFn, cErrFn) => {
41+
baseResolver.createResolver = (cResFn, cErrFn) => {
2442
const Promise = getPromise();
2543

2644
const childResFn = (root, args, context, info = {}) => {

src/util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { getPromise } from './promise';
22

3-
export const isFunction = fn => typeof fn === 'function';
3+
export const isFunction = fn => typeof fn === 'function' || fn instanceof Function;
44

55
export const Promisify = fn => {
66
const Promise = getPromise();

0 commit comments

Comments
 (0)