@webiny/api-graphql 0.0.0-unstable.0156a4c312

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.
Files changed (122) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +11 -0
  3. package/ResolverDecoration.d.ts +6 -0
  4. package/ResolverDecoration.js +23 -0
  5. package/ResolverDecoration.js.map +1 -0
  6. package/builtInTypes/AnyScalar.d.ts +2 -0
  7. package/builtInTypes/AnyScalar.js +11 -0
  8. package/builtInTypes/AnyScalar.js.map +1 -0
  9. package/builtInTypes/DateScalar.d.ts +2 -0
  10. package/builtInTypes/DateScalar.js +23 -0
  11. package/builtInTypes/DateScalar.js.map +1 -0
  12. package/builtInTypes/DateTimeScalar.d.ts +2 -0
  13. package/builtInTypes/DateTimeScalar.js +18 -0
  14. package/builtInTypes/DateTimeScalar.js.map +1 -0
  15. package/builtInTypes/DateTimeZScalar.d.ts +6 -0
  16. package/builtInTypes/DateTimeZScalar.js +32 -0
  17. package/builtInTypes/DateTimeZScalar.js.map +1 -0
  18. package/builtInTypes/IconScalar.d.ts +10 -0
  19. package/builtInTypes/IconScalar.js +65 -0
  20. package/builtInTypes/IconScalar.js.map +1 -0
  21. package/builtInTypes/JsonScalar.d.ts +1 -0
  22. package/builtInTypes/JsonScalar.js +5 -0
  23. package/builtInTypes/JsonScalar.js.map +1 -0
  24. package/builtInTypes/LongScalar.d.ts +2 -0
  25. package/builtInTypes/LongScalar.js +40 -0
  26. package/builtInTypes/LongScalar.js.map +1 -0
  27. package/builtInTypes/NumberScalar.d.ts +2 -0
  28. package/builtInTypes/NumberScalar.js +41 -0
  29. package/builtInTypes/NumberScalar.js.map +1 -0
  30. package/builtInTypes/RefInputScalar.d.ts +2 -0
  31. package/builtInTypes/RefInputScalar.js +53 -0
  32. package/builtInTypes/RefInputScalar.js.map +1 -0
  33. package/builtInTypes/TimeScalar.d.ts +2 -0
  34. package/builtInTypes/TimeScalar.js +40 -0
  35. package/builtInTypes/TimeScalar.js.map +1 -0
  36. package/builtInTypes/index.d.ts +10 -0
  37. package/builtInTypes/index.js +10 -0
  38. package/createRequestBody.d.ts +2 -0
  39. package/createRequestBody.js +28 -0
  40. package/createRequestBody.js.map +1 -0
  41. package/createResolverDecorator.d.ts +2 -0
  42. package/createResolverDecorator.js +4 -0
  43. package/createResolverDecorator.js.map +1 -0
  44. package/engine/GraphQLEngine.d.ts +23 -0
  45. package/engine/GraphQLEngine.js +81 -0
  46. package/engine/GraphQLEngine.js.map +1 -0
  47. package/engine/GraphQLEngineFeature.d.ts +4 -0
  48. package/engine/GraphQLEngineFeature.js +15 -0
  49. package/engine/GraphQLEngineFeature.js.map +1 -0
  50. package/engine/GraphQLRoute.d.ts +24 -0
  51. package/engine/GraphQLRoute.js +38 -0
  52. package/engine/GraphQLRoute.js.map +1 -0
  53. package/engine/GraphQLSchemaCacheFeature.d.ts +8 -0
  54. package/engine/GraphQLSchemaCacheFeature.js +11 -0
  55. package/engine/GraphQLSchemaCacheFeature.js.map +1 -0
  56. package/engine/GraphQLSchemaKeyVerificationFeature.d.ts +9 -0
  57. package/engine/GraphQLSchemaKeyVerificationFeature.js +11 -0
  58. package/engine/GraphQLSchemaKeyVerificationFeature.js.map +1 -0
  59. package/engine/MemoryGraphQLSchemaCache.d.ts +15 -0
  60. package/engine/MemoryGraphQLSchemaCache.js +32 -0
  61. package/engine/MemoryGraphQLSchemaCache.js.map +1 -0
  62. package/engine/MemoryGraphQLSchemaKeyVerification.d.ts +13 -0
  63. package/engine/MemoryGraphQLSchemaKeyVerification.js +23 -0
  64. package/engine/MemoryGraphQLSchemaKeyVerification.js.map +1 -0
  65. package/engine/abstractions.d.ts +36 -0
  66. package/engine/abstractions.js +7 -0
  67. package/engine/abstractions.js.map +1 -0
  68. package/engine/createSchemaCacheKey.d.ts +8 -0
  69. package/engine/createSchemaCacheKey.js +23 -0
  70. package/engine/createSchemaCacheKey.js.map +1 -0
  71. package/engine/index.d.ts +5 -0
  72. package/engine/index.js +5 -0
  73. package/errors.d.ts +4 -0
  74. package/errors.js +9 -0
  75. package/errors.js.map +1 -0
  76. package/exports/api/graphql.d.ts +3 -0
  77. package/exports/api/graphql.js +3 -0
  78. package/features/GraphQLSchemaBuilder/GraphQLSchemaBuilder.d.ts +17 -0
  79. package/features/GraphQLSchemaBuilder/GraphQLSchemaBuilder.js +72 -0
  80. package/features/GraphQLSchemaBuilder/GraphQLSchemaBuilder.js.map +1 -0
  81. package/features/GraphQLSchemaBuilder/GraphQLSchemaComposer.d.ts +16 -0
  82. package/features/GraphQLSchemaBuilder/GraphQLSchemaComposer.js +70 -0
  83. package/features/GraphQLSchemaBuilder/GraphQLSchemaComposer.js.map +1 -0
  84. package/features/GraphQLSchemaBuilder/abstractions.d.ts +44 -0
  85. package/features/GraphQLSchemaBuilder/abstractions.js +6 -0
  86. package/features/GraphQLSchemaBuilder/abstractions.js.map +1 -0
  87. package/features/GraphQLSchemaBuilder/feature.d.ts +4 -0
  88. package/features/GraphQLSchemaBuilder/feature.js +11 -0
  89. package/features/GraphQLSchemaBuilder/feature.js.map +1 -0
  90. package/graphql/abstractions.core.d.ts +17 -0
  91. package/graphql/abstractions.core.js +5 -0
  92. package/graphql/abstractions.core.js.map +1 -0
  93. package/graphql/abstractions.d.ts +2 -0
  94. package/graphql/abstractions.js +2 -0
  95. package/graphql/abstractions.public.d.ts +39 -0
  96. package/graphql/abstractions.public.js +5 -0
  97. package/graphql/abstractions.public.js.map +1 -0
  98. package/graphql/staticSchemaKey.d.ts +5 -0
  99. package/graphql/staticSchemaKey.js +4 -0
  100. package/graphql/staticSchemaKey.js.map +1 -0
  101. package/index.d.ts +12 -0
  102. package/index.js +14 -0
  103. package/index.js.map +1 -0
  104. package/package.json +49 -0
  105. package/plugins/GraphQLSchemaPlugin.d.ts +21 -0
  106. package/plugins/GraphQLSchemaPlugin.js +25 -0
  107. package/plugins/GraphQLSchemaPlugin.js.map +1 -0
  108. package/plugins/index.d.ts +1 -0
  109. package/plugins/index.js +1 -0
  110. package/processRequestBody.d.ts +4 -0
  111. package/processRequestBody.js +26 -0
  112. package/processRequestBody.js.map +1 -0
  113. package/responses.d.ts +51 -0
  114. package/responses.js +59 -0
  115. package/responses.js.map +1 -0
  116. package/types.d.ts +50 -0
  117. package/types.js +0 -0
  118. package/utils/index.d.ts +1 -0
  119. package/utils/index.js +1 -0
  120. package/utils/resolve.d.ts +21 -0
  121. package/utils/resolve.js +20 -0
  122. package/utils/resolve.js.map +1 -0
package/types.d.ts ADDED
@@ -0,0 +1,50 @@
1
+ import type { GraphQLScalarType, GraphQLFieldResolver as BaseGraphQLFieldResolver, GraphQLSchema } from "graphql";
2
+ import type { Plugin } from "@webiny/plugins/types.js";
3
+ import type { Context, GenericRecord } from "@webiny/api/types.js";
4
+ import type { ResolversComposition } from "@graphql-tools/resolvers-composition";
5
+ import type { IResolvers, TypeSource } from "@graphql-tools/utils";
6
+ export interface GraphQLScalarPlugin extends Plugin {
7
+ type: "graphql-scalar";
8
+ scalar: GraphQLScalarType;
9
+ }
10
+ export type GraphQLFieldResolver<TSource = any, TArgs = any, TContext = Context> = BaseGraphQLFieldResolver<TSource, TContext, TArgs>;
11
+ export type TypeDefs = TypeSource;
12
+ export interface GraphQLSchemaPluginTypeArgs {
13
+ context?: any;
14
+ args?: any;
15
+ source?: any;
16
+ }
17
+ export type Resolvers<TContext> = IResolvers<any, TContext>;
18
+ export type ResolverDecorator<TSource = any, TContext = any, TArgs = any> = ResolversComposition<GraphQLFieldResolver<TSource, TContext, TArgs>>;
19
+ export type ResolverDecorators = GenericRecord<string, ResolverDecorator[]>;
20
+ export interface GraphQLSchemaDefinition<TContext = any> {
21
+ typeDefs: TypeDefs;
22
+ resolvers?: Resolvers<TContext>;
23
+ resolverDecorators?: ResolverDecorators;
24
+ }
25
+ export interface GraphQLSchemaPlugin<TContext extends Context = Context> extends Plugin {
26
+ type: "graphql-schema";
27
+ schema: GraphQLSchemaDefinition<TContext>;
28
+ }
29
+ export interface GraphQLRequestBody {
30
+ query: string;
31
+ variables?: Record<string, any> | null;
32
+ operationName?: string;
33
+ }
34
+ export interface GraphQLBeforeQueryPlugin<TContext extends Context = Context> extends Plugin {
35
+ type: "graphql-before-query";
36
+ apply(params: {
37
+ body: GraphQLRequestBody;
38
+ schema: GraphQLSchema;
39
+ context: TContext;
40
+ }): void;
41
+ }
42
+ export interface GraphQLAfterQueryPlugin<TContext extends Context = Context> extends Plugin {
43
+ type: "graphql-after-query";
44
+ apply(params: {
45
+ result: any;
46
+ body: GraphQLRequestBody;
47
+ schema: GraphQLSchema;
48
+ context: TContext;
49
+ }): void;
50
+ }
package/types.js ADDED
File without changes
@@ -0,0 +1 @@
1
+ export * from "./resolve.js";
package/utils/index.js ADDED
@@ -0,0 +1 @@
1
+ export * from "./resolve.js";
@@ -0,0 +1,21 @@
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "../responses.js";
2
+ import type { GenericRecord } from "@webiny/api/types.js";
3
+ export interface Meta {
4
+ totalCount: number;
5
+ hasMoreItems: boolean;
6
+ cursor: string | null;
7
+ }
8
+ export declare const emptyResolver: () => {};
9
+ interface ResolveCallable<T = GenericRecord> {
10
+ (): Promise<T>;
11
+ }
12
+ export declare const resolve: <T = GenericRecord>(fn: ResolveCallable<T>) => Promise<ErrorResponse | Response<Awaited<T>>>;
13
+ interface ResolveListCallable<T> {
14
+ (): Promise<IListResult<T>>;
15
+ }
16
+ interface IListResult<T = GenericRecord> {
17
+ items: T[];
18
+ meta: Meta;
19
+ }
20
+ export declare const resolveList: <T = GenericRecord>(fn: ResolveListCallable<T>) => Promise<ListErrorResponse | ListResponse<T, Meta>>;
21
+ export {};
@@ -0,0 +1,20 @@
1
+ import { ErrorResponse, ListErrorResponse, ListResponse, Response } from "../responses.js";
2
+ const emptyResolver = ()=>({});
3
+ const resolve = async (fn)=>{
4
+ try {
5
+ return new Response(await fn());
6
+ } catch (ex) {
7
+ return new ErrorResponse(ex);
8
+ }
9
+ };
10
+ const resolveList = async (fn)=>{
11
+ try {
12
+ const result = await fn();
13
+ return new ListResponse(result.items, result.meta);
14
+ } catch (ex) {
15
+ return new ListErrorResponse(ex);
16
+ }
17
+ };
18
+ export { emptyResolver, resolve, resolveList };
19
+
20
+ //# sourceMappingURL=resolve.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils/resolve.js","sources":["../../src/utils/resolve.ts"],"sourcesContent":["import { ErrorResponse, ListErrorResponse, ListResponse, Response } from \"~/responses.js\";\nimport type { GenericRecord } from \"@webiny/api/types.js\";\n\nexport interface Meta {\n totalCount: number;\n hasMoreItems: boolean;\n cursor: string | null;\n}\n\nexport const emptyResolver = () => ({});\n\ninterface ResolveCallable<T = GenericRecord> {\n (): Promise<T>;\n}\n\nexport const resolve = async <T = GenericRecord>(fn: ResolveCallable<T>) => {\n try {\n return new Response(await fn());\n } catch (ex) {\n return new ErrorResponse(ex);\n }\n};\n\ninterface ResolveListCallable<T> {\n (): Promise<IListResult<T>>;\n}\n\ninterface IListResult<T = GenericRecord> {\n items: T[];\n meta: Meta;\n}\n\nexport const resolveList = async <T = GenericRecord>(fn: ResolveListCallable<T>) => {\n try {\n const result = (await fn()) as IListResult<T>;\n return new ListResponse(result.items, result.meta);\n } catch (ex) {\n return new ListErrorResponse(ex);\n }\n};\n"],"names":["emptyResolver","resolve","fn","Response","ex","ErrorResponse","resolveList","result","ListResponse","ListErrorResponse"],"mappings":";AASO,MAAMA,gBAAgB,IAAO,EAAC;AAM9B,MAAMC,UAAU,OAA0BC;IAC7C,IAAI;QACA,OAAO,IAAIC,SAAS,MAAMD;IAC9B,EAAE,OAAOE,IAAI;QACT,OAAO,IAAIC,cAAcD;IAC7B;AACJ;AAWO,MAAME,cAAc,OAA0BJ;IACjD,IAAI;QACA,MAAMK,SAAU,MAAML;QACtB,OAAO,IAAIM,aAAaD,OAAO,KAAK,EAAEA,OAAO,IAAI;IACrD,EAAE,OAAOH,IAAI;QACT,OAAO,IAAIK,kBAAkBL;IACjC;AACJ"}