@fluojs/graphql 1.0.4 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +153 -17
- package/README.md +158 -17
- package/dist/dataloader/dataloader.d.ts.map +1 -1
- package/dist/dataloader/dataloader.js +2 -3
- package/dist/decorators.d.ts +53 -0
- package/dist/decorators.d.ts.map +1 -1
- package/dist/decorators.js +123 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +13 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/instance-of-patch.d.ts +21 -0
- package/dist/instance-of-patch.d.ts.map +1 -0
- package/dist/instance-of-patch.js +126 -0
- package/dist/metadata.d.ts +21 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +68 -7
- package/dist/module.d.ts +14 -10
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +69 -14
- package/dist/node/graphql-websocket-transport.d.ts +53 -0
- package/dist/node/graphql-websocket-transport.d.ts.map +1 -0
- package/dist/node/graphql-websocket-transport.js +219 -0
- package/dist/pipeline/input-pipeline.js +1 -1
- package/dist/schema/object-field-resolvers.d.ts +18 -0
- package/dist/schema/object-field-resolvers.d.ts.map +1 -0
- package/dist/schema/object-field-resolvers.js +86 -0
- package/dist/schema/schema.d.ts +5 -1
- package/dist/schema/schema.d.ts.map +1 -1
- package/dist/schema/schema.js +75 -39
- package/dist/service.d.ts +10 -12
- package/dist/service.d.ts.map +1 -1
- package/dist/service.js +191 -303
- package/dist/transport/transport.d.ts.map +1 -1
- package/dist/transport/transport.js +1 -1
- package/dist/types.d.ts +40 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +19 -1
- package/package.json +11 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAA2B,MAAM,cAAc,CAAC;AAEjG;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AA6ED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAUjE;
|
|
1
|
+
{"version":3,"file":"transport.d.ts","sourceRoot":"","sources":["../../src/transport/transport.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAA2B,MAAM,cAAc,CAAC;AAEjG;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEnD;AA6ED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAUjE;AAmGD;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+BrH"}
|
package/dist/types.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { MetadataPropertyKey, Token } from '@fluojs/core';
|
|
1
|
+
import type { ForwardRefToken, InjectionToken, MaybePromise, MetadataPropertyKey, OptionalInjectToken, Token } from '@fluojs/core';
|
|
2
2
|
import type { Container } from '@fluojs/di';
|
|
3
3
|
import type { FrameworkRequest, Principal } from '@fluojs/http';
|
|
4
4
|
import type { GraphQLObjectType, GraphQLSchema, GraphQLUnionType } from 'graphql';
|
|
@@ -99,9 +99,20 @@ export interface ResolverMetadata {
|
|
|
99
99
|
typeName: string;
|
|
100
100
|
}
|
|
101
101
|
/**
|
|
102
|
-
* Supported GraphQL operation handler categories.
|
|
102
|
+
* Supported GraphQL root-operation and object-field handler categories.
|
|
103
103
|
*/
|
|
104
|
-
export type ResolverHandlerType = 'query' | 'mutation' | 'subscription';
|
|
104
|
+
export type ResolverHandlerType = 'query' | 'mutation' | 'subscription' | 'field';
|
|
105
|
+
/**
|
|
106
|
+
* Explicit source kinds that can be bound to object field-resolver parameters.
|
|
107
|
+
*/
|
|
108
|
+
export type FieldResolverParameterKind = 'parent' | 'context' | 'input';
|
|
109
|
+
/**
|
|
110
|
+
* Describes one positional parameter binding for an object field resolver.
|
|
111
|
+
*/
|
|
112
|
+
export interface FieldResolverParameterBindingMetadata {
|
|
113
|
+
index: number;
|
|
114
|
+
kind: FieldResolverParameterKind;
|
|
115
|
+
}
|
|
105
116
|
/**
|
|
106
117
|
* Scalar names supported by the code-first schema helpers.
|
|
107
118
|
*/
|
|
@@ -157,6 +168,7 @@ export interface ResolverHandlerMetadata {
|
|
|
157
168
|
inputClass?: Function;
|
|
158
169
|
argTypes?: Record<string, GraphqlArgType>;
|
|
159
170
|
outputType?: GraphqlRootOutputType;
|
|
171
|
+
nullable?: boolean;
|
|
160
172
|
}
|
|
161
173
|
/**
|
|
162
174
|
* Describes how one method parameter maps to a named GraphQL argument.
|
|
@@ -177,6 +189,8 @@ export interface ResolverHandlerDescriptor {
|
|
|
177
189
|
argFields: ArgFieldMetadata[];
|
|
178
190
|
argTypes?: Record<string, GraphqlArgType>;
|
|
179
191
|
outputType?: GraphqlRootOutputType;
|
|
192
|
+
nullable?: boolean;
|
|
193
|
+
parameterBindings: FieldResolverParameterBindingMetadata[];
|
|
180
194
|
}
|
|
181
195
|
/**
|
|
182
196
|
* Fully discovered resolver descriptor used by the GraphQL runtime.
|
|
@@ -219,4 +233,27 @@ export interface GraphqlModuleOptions {
|
|
|
219
233
|
plugins?: unknown[];
|
|
220
234
|
subscriptions?: GraphqlSubscriptionsOptions;
|
|
221
235
|
}
|
|
236
|
+
type GraphqlAsyncFactoryDependencies<TTokens extends readonly InjectionToken[]> = {
|
|
237
|
+
-readonly [Index in keyof TTokens]: TTokens[Index] extends OptionalInjectToken<infer TDependency> ? TDependency | undefined : TTokens[Index] extends ForwardRefToken<infer TDependency> ? TDependency : TTokens[Index] extends Token<infer TDependency> ? TDependency : never;
|
|
238
|
+
};
|
|
239
|
+
/**
|
|
240
|
+
* Configures GraphQL registration through explicitly injected application dependencies.
|
|
241
|
+
*
|
|
242
|
+
* Only `inject` and `useFactory` are supported. NestJS-style `imports`, `useClass`,
|
|
243
|
+
* `useExisting`, and implicit provider discovery are intentionally unavailable.
|
|
244
|
+
*
|
|
245
|
+
* @typeParam TTokens Tuple of injection tokens whose resolved values are passed
|
|
246
|
+
* to `useFactory` in the same order. Optional tokens resolve as `T | undefined`.
|
|
247
|
+
*/
|
|
248
|
+
export interface GraphqlAsyncModuleOptions<TTokens extends readonly InjectionToken[] = readonly InjectionToken[]> {
|
|
249
|
+
/**
|
|
250
|
+
* Application-graph tokens whose resolved values are passed to `useFactory` in order.
|
|
251
|
+
*/
|
|
252
|
+
inject?: TTokens;
|
|
253
|
+
/**
|
|
254
|
+
* Resolves the GraphQL module options from the explicitly injected dependency values.
|
|
255
|
+
*/
|
|
256
|
+
useFactory: (...dependencies: GraphqlAsyncFactoryDependencies<TTokens>) => MaybePromise<GraphqlModuleOptions>;
|
|
257
|
+
}
|
|
258
|
+
export {};
|
|
222
259
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -48,7 +48,15 @@ export const GRAPHQL_REQUEST_SCOPED_LOADER_CACHE = Symbol.for('fluo.graphql.requ
|
|
|
48
48
|
*/
|
|
49
49
|
|
|
50
50
|
/**
|
|
51
|
-
* Supported GraphQL operation handler categories.
|
|
51
|
+
* Supported GraphQL root-operation and object-field handler categories.
|
|
52
|
+
*/
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Explicit source kinds that can be bound to object field-resolver parameters.
|
|
56
|
+
*/
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Describes one positional parameter binding for an object field resolver.
|
|
52
60
|
*/
|
|
53
61
|
|
|
54
62
|
/**
|
|
@@ -129,4 +137,14 @@ export function isGraphqlListTypeRef(value) {
|
|
|
129
137
|
* @remarks
|
|
130
138
|
* Keep README examples for end-to-end module wiring. Source hover docs here are
|
|
131
139
|
* meant to clarify how each option shapes the per-request execution pipeline.
|
|
140
|
+
*/
|
|
141
|
+
|
|
142
|
+
/**
|
|
143
|
+
* Configures GraphQL registration through explicitly injected application dependencies.
|
|
144
|
+
*
|
|
145
|
+
* Only `inject` and `useFactory` are supported. NestJS-style `imports`, `useClass`,
|
|
146
|
+
* `useExisting`, and implicit provider discovery are intentionally unavailable.
|
|
147
|
+
*
|
|
148
|
+
* @typeParam TTokens Tuple of injection tokens whose resolved values are passed
|
|
149
|
+
* to `useFactory` in the same order. Optional tokens resolve as `T | undefined`.
|
|
132
150
|
*/
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"yoga",
|
|
10
10
|
"api"
|
|
11
11
|
],
|
|
12
|
-
"version": "
|
|
12
|
+
"version": "2.0.0",
|
|
13
13
|
"private": false,
|
|
14
14
|
"license": "MIT",
|
|
15
15
|
"repository": {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"directory": "packages/graphql"
|
|
19
19
|
},
|
|
20
20
|
"engines": {
|
|
21
|
-
"node": ">=
|
|
21
|
+
"node": ">=24.0.0 <27"
|
|
22
22
|
},
|
|
23
23
|
"publishConfig": {
|
|
24
24
|
"access": "public"
|
|
@@ -40,20 +40,21 @@
|
|
|
40
40
|
"graphql": "^16.13.1",
|
|
41
41
|
"graphql-ws": "^5.16.2",
|
|
42
42
|
"graphql-yoga": "^5.18.1",
|
|
43
|
-
"ws": "^8.
|
|
44
|
-
"@fluojs/
|
|
45
|
-
"@fluojs/
|
|
46
|
-
"@fluojs/http": "^
|
|
47
|
-
"@fluojs/runtime": "^
|
|
48
|
-
"@fluojs/
|
|
43
|
+
"ws": "^8.21.0",
|
|
44
|
+
"@fluojs/core": "^2.0.0",
|
|
45
|
+
"@fluojs/di": "^3.0.0",
|
|
46
|
+
"@fluojs/http": "^3.0.0",
|
|
47
|
+
"@fluojs/runtime": "^3.0.0",
|
|
48
|
+
"@fluojs/validation": "^2.0.0"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@types/ws": "^8.18.1",
|
|
52
|
-
"vitest": "^
|
|
52
|
+
"vitest": "^4.1.11",
|
|
53
|
+
"@fluojs/platform-nodejs": "^2.0.0"
|
|
53
54
|
},
|
|
54
55
|
"scripts": {
|
|
55
56
|
"prebuild": "node ../../tooling/scripts/clean-dist.mjs",
|
|
56
|
-
"build": "pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json",
|
|
57
|
+
"build": "pnpm exec babel src --extensions .ts --ignore 'src/**/*.test.ts','src/**/*.test-fixture.ts' --out-dir dist --config-file ../../tooling/babel/babel.config.cjs && pnpm exec tsc -p tsconfig.build.json",
|
|
57
58
|
"typecheck": "pnpm exec tsc -p tsconfig.json --noEmit",
|
|
58
59
|
"test": "pnpm exec vitest run -c vitest.config.ts",
|
|
59
60
|
"test:watch": "pnpm exec vitest -c vitest.config.ts"
|