@executor-js/plugin-graphql 0.0.2 → 0.2.1

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 (39) hide show
  1. package/dist/AddGraphqlSource-LGXJQEAR.js +239 -0
  2. package/dist/AddGraphqlSource-LGXJQEAR.js.map +1 -0
  3. package/dist/EditGraphqlSource-5Y47ZAZ7.js +251 -0
  4. package/dist/EditGraphqlSource-5Y47ZAZ7.js.map +1 -0
  5. package/dist/GraphqlSourceSummary-F3JWR4YN.js +70 -0
  6. package/dist/GraphqlSourceSummary-F3JWR4YN.js.map +1 -0
  7. package/dist/api/group.d.ts +169 -13
  8. package/dist/api/handlers.d.ts +15 -3
  9. package/dist/api/index.d.ts +410 -0
  10. package/dist/chunk-7QSGNR4C.js +162 -0
  11. package/dist/chunk-7QSGNR4C.js.map +1 -0
  12. package/dist/chunk-HDPYOBBG.js +1633 -0
  13. package/dist/chunk-HDPYOBBG.js.map +1 -0
  14. package/dist/chunk-M4SJY6CB.js +45 -0
  15. package/dist/chunk-M4SJY6CB.js.map +1 -0
  16. package/dist/chunk-WPRU5C6M.js +182 -0
  17. package/dist/chunk-WPRU5C6M.js.map +1 -0
  18. package/dist/client.js +75 -0
  19. package/dist/client.js.map +1 -0
  20. package/dist/core.js +32 -10
  21. package/dist/index.js +2 -1
  22. package/dist/react/GraphqlSourceFields.d.ts +8 -0
  23. package/dist/react/GraphqlSourceSummary.d.ts +3 -1
  24. package/dist/react/atoms.d.ts +170 -10
  25. package/dist/react/client.d.ts +160 -341
  26. package/dist/react/plugin-client.d.ts +2 -0
  27. package/dist/react/source-plugin.d.ts +1 -1
  28. package/dist/sdk/index.d.ts +1 -1
  29. package/dist/sdk/introspect.d.ts +437 -43
  30. package/dist/sdk/invoke.d.ts +3 -2
  31. package/dist/sdk/plugin.d.ts +121 -55
  32. package/dist/sdk/store.d.ts +84 -11
  33. package/dist/sdk/types.d.ts +107 -3
  34. package/dist/testing/index.d.ts +52 -0
  35. package/dist/testing.js +131 -0
  36. package/dist/testing.js.map +1 -0
  37. package/package.json +18 -4
  38. package/dist/chunk-ILBZO52O.js +0 -1090
  39. package/dist/chunk-ILBZO52O.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/testing/index.ts"],"sourcesContent":["import {\n Context,\n Data,\n Effect,\n Layer,\n Predicate,\n Ref,\n Schema as EffectSchema,\n Scope,\n} from \"effect\";\nimport { HttpServerRequest, HttpServerResponse } from \"effect/unstable/http\";\nimport { GraphQLNonNull, GraphQLObjectType, GraphQLSchema, GraphQLString } from \"graphql\";\nimport { createYoga, type GraphQLParams, type YogaInitialContext } from \"graphql-yoga\";\nimport { serveTestHttpApp } from \"@executor-js/sdk/testing\";\n\nconst GraphqlRequestPayload = EffectSchema.Struct({\n query: EffectSchema.optional(EffectSchema.String),\n variables: EffectSchema.optional(EffectSchema.Record(EffectSchema.String, EffectSchema.Unknown)),\n operationName: EffectSchema.optional(EffectSchema.NullOr(EffectSchema.String)),\n});\n\ntype GraphqlRequestPayload = typeof GraphqlRequestPayload.Type;\n\nexport interface GraphqlTestRequest {\n readonly url: string;\n readonly method: string;\n readonly path: string;\n readonly headers: Readonly<Record<string, string>>;\n readonly payload: GraphqlRequestPayload;\n}\n\nexport interface GraphqlTestContext {\n readonly request: GraphqlTestRequest;\n}\n\nexport interface GraphqlTestServerOptions {\n readonly schema: GraphQLSchema;\n readonly path?: string;\n}\n\nexport interface GraphqlTestServerShape {\n readonly endpoint: string;\n readonly schema: GraphQLSchema;\n readonly requests: Effect.Effect<readonly GraphqlTestRequest[]>;\n readonly clearRequests: Effect.Effect<void>;\n}\n\nclass GraphqlTestServerAddressError extends Data.TaggedError(\"GraphqlTestServerAddressError\")<{\n readonly address: unknown;\n}> {}\n\nclass GraphqlTestServerHandlerError extends Data.TaggedError(\"GraphqlTestServerHandlerError\")<{\n readonly cause: unknown;\n}> {}\n\nconst headersFromRequest = (headers: Headers): Readonly<Record<string, string>> =>\n Object.fromEntries(headers.entries());\n\nconst payloadFromParams = (params: GraphQLParams): GraphqlRequestPayload => ({\n query: params.query,\n variables:\n typeof params.variables === \"object\" && params.variables !== null\n ? params.variables\n : undefined,\n operationName: params.operationName ?? null,\n});\n\nconst captureRequest = (\n initial: YogaInitialContext,\n requests: Ref.Ref<readonly GraphqlTestRequest[]>,\n) => {\n const url = new URL(initial.request.url);\n const captured: GraphqlTestRequest = {\n url: initial.request.url,\n method: initial.request.method,\n path: url.pathname,\n headers: headersFromRequest(initial.request.headers),\n payload: payloadFromParams(initial.params),\n };\n return Effect.runPromise(\n Ref.update(requests, (all) => [...all, captured]).pipe(Effect.as(captured)),\n );\n};\n\nexport const serveGraphqlTestServer = (\n options: GraphqlTestServerOptions,\n): Effect.Effect<\n GraphqlTestServerShape,\n GraphqlTestServerAddressError | GraphqlTestServerHandlerError,\n Scope.Scope\n> =>\n Effect.gen(function* () {\n const requests = yield* Ref.make<readonly GraphqlTestRequest[]>([]);\n const path = options.path ?? \"/graphql\";\n\n const yoga = createYoga<Record<string, never>, GraphqlTestContext>({\n schema: options.schema,\n graphqlEndpoint: path,\n graphiql: false,\n landingPage: false,\n logging: false,\n maskedErrors: false,\n context: (initial) =>\n captureRequest(initial, requests).then((request) => ({\n request,\n })),\n });\n\n const server = yield* serveTestHttpApp((request) =>\n Effect.gen(function* () {\n const webRequest = yield* HttpServerRequest.toWeb(request);\n const response = yield* Effect.promise(() => Promise.resolve(yoga.handle(webRequest, {})));\n return HttpServerResponse.fromWeb(response);\n }).pipe(\n Effect.catch(() =>\n Effect.succeed(\n HttpServerResponse.text(\"GraphQL test server failed\", {\n status: 500,\n contentType: \"text/plain\",\n }),\n ),\n ),\n ),\n ).pipe(\n Effect.mapError((error) =>\n Predicate.isTagged(error, \"TestHttpServerAddressError\")\n ? new GraphqlTestServerAddressError({ address: error.address })\n : new GraphqlTestServerHandlerError({ cause: error.cause }),\n ),\n );\n\n return {\n endpoint: server.url(path),\n schema: options.schema,\n requests: Ref.get(requests),\n clearRequests: Ref.set(requests, []),\n };\n });\n\nexport class GraphqlTestServer extends Context.Service<GraphqlTestServer, GraphqlTestServerShape>()(\n \"@executor-js/plugin-graphql/testing/GraphqlTestServer\",\n) {\n static readonly layer = (options: GraphqlTestServerOptions) =>\n Layer.effect(GraphqlTestServer, serveGraphqlTestServer(options));\n}\n\nconst stringArgument = (\n args: Readonly<Record<string, unknown>>,\n key: string,\n fallback: string,\n): string => {\n const value = args[key];\n return typeof value === \"string\" ? value : fallback;\n};\n\nexport const makeGreetingGraphqlSchema = (): GraphQLSchema => {\n const Query = new GraphQLObjectType<unknown, GraphqlTestContext>({\n name: \"Query\",\n fields: {\n hello: {\n type: GraphQLString,\n description: \"Say hello\",\n args: {\n name: { type: GraphQLString },\n },\n resolve: (_source, args) => `Hello ${stringArgument(args, \"name\", \"world\")}`,\n },\n },\n });\n\n const Mutation = new GraphQLObjectType<unknown, GraphqlTestContext>({\n name: \"Mutation\",\n fields: {\n setGreeting: {\n type: GraphQLString,\n description: \"Set greeting message\",\n args: {\n message: { type: new GraphQLNonNull(GraphQLString) },\n },\n resolve: (_source, args) => stringArgument(args, \"message\", \"\"),\n },\n },\n });\n\n return new GraphQLSchema({ query: Query, mutation: Mutation });\n};\n\nexport const TestLayers = {\n greeting: () => GraphqlTestServer.layer({ schema: makeGreetingGraphqlSchema() }),\n};\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@executor-js/plugin-graphql",
3
- "version": "0.0.2",
3
+ "version": "0.2.1",
4
4
  "homepage": "https://github.com/RhysSullivan/executor/tree/main/packages/plugins/graphql",
5
5
  "bugs": {
6
6
  "url": "https://github.com/RhysSullivan/executor/issues"
@@ -27,6 +27,18 @@
27
27
  "types": "./dist/sdk/index.d.ts",
28
28
  "default": "./dist/core.js"
29
29
  }
30
+ },
31
+ "./client": {
32
+ "import": {
33
+ "types": "./dist/react/plugin-client.d.ts",
34
+ "default": "./dist/client.js"
35
+ }
36
+ },
37
+ "./testing": {
38
+ "import": {
39
+ "types": "./dist/testing/index.d.ts",
40
+ "default": "./dist/testing.js"
41
+ }
30
42
  }
31
43
  },
32
44
  "publishConfig": {
@@ -41,9 +53,11 @@
41
53
  },
42
54
  "dependencies": {
43
55
  "@effect/platform-node": "4.0.0-beta.59",
44
- "@executor-js/config": "0.0.2",
45
- "@executor-js/sdk": "0.0.2",
46
- "effect": "4.0.0-beta.59"
56
+ "@executor-js/config": "0.2.1",
57
+ "@executor-js/sdk": "0.2.1",
58
+ "effect": "4.0.0-beta.59",
59
+ "graphql": "^16.12.0",
60
+ "graphql-yoga": "^5.17.0"
47
61
  },
48
62
  "devDependencies": {
49
63
  "@effect/atom-react": "4.0.0-beta.59",