@solana/rpc-graphql 2.0.0-experimental.fc4e943 → 2.0.0-experimental.fe07532

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 (35) hide show
  1. package/dist/index.browser.cjs +23 -6
  2. package/dist/index.browser.cjs.map +1 -1
  3. package/dist/index.browser.js +23 -6
  4. package/dist/index.browser.js.map +1 -1
  5. package/dist/index.native.js +23 -6
  6. package/dist/index.native.js.map +1 -1
  7. package/dist/index.node.cjs +23 -6
  8. package/dist/index.node.cjs.map +1 -1
  9. package/dist/index.node.js +23 -6
  10. package/dist/index.node.js.map +1 -1
  11. package/dist/types/cache.d.ts.map +1 -0
  12. package/dist/types/context.d.ts +3 -2
  13. package/dist/types/context.d.ts.map +1 -0
  14. package/dist/types/index.d.ts.map +1 -0
  15. package/dist/types/rpc.d.ts.map +1 -0
  16. package/dist/types/schema/account/index.d.ts.map +1 -0
  17. package/dist/types/schema/account/query.d.ts +2 -2
  18. package/dist/types/schema/account/query.d.ts.map +1 -0
  19. package/dist/types/schema/account/types.d.ts.map +1 -0
  20. package/dist/types/schema/block/index.d.ts.map +1 -0
  21. package/dist/types/schema/block/query.d.ts +1 -1
  22. package/dist/types/schema/block/query.d.ts.map +1 -0
  23. package/dist/types/schema/block/types.d.ts.map +1 -0
  24. package/dist/types/schema/inputs.d.ts.map +1 -0
  25. package/dist/types/schema/picks.d.ts.map +1 -0
  26. package/dist/types/schema/program-accounts/index.d.ts.map +1 -0
  27. package/dist/types/schema/program-accounts/query.d.ts +1 -1
  28. package/dist/types/schema/program-accounts/query.d.ts.map +1 -0
  29. package/dist/types/schema/program-accounts/types.d.ts.map +1 -0
  30. package/dist/types/schema/scalars.d.ts.map +1 -0
  31. package/dist/types/schema/transaction/index.d.ts.map +1 -0
  32. package/dist/types/schema/transaction/query.d.ts +1 -1
  33. package/dist/types/schema/transaction/query.d.ts.map +1 -0
  34. package/dist/types/schema/transaction/types.d.ts.map +1 -0
  35. package/package.json +12 -11
@@ -34,7 +34,19 @@ function createGraphQLCache() {
34
34
  }
35
35
 
36
36
  // src/context.ts
37
- async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc) {
37
+ async function resolveAccount({ address, encoding = "jsonParsed", ...config }, cache, rpc, info) {
38
+ if (info && info.fieldNodes[0].selectionSet) {
39
+ const selectionSet = info.fieldNodes[0].selectionSet;
40
+ const requestedFields = selectionSet.selections.map((field) => {
41
+ if (field.kind === "Field") {
42
+ return field.name.value;
43
+ }
44
+ return null;
45
+ });
46
+ if (requestedFields && requestedFields.length === 1 && requestedFields[0] === "address") {
47
+ return { address };
48
+ }
49
+ }
38
50
  const requestConfig = { encoding, ...config };
39
51
  const cached = cache.get(address, requestConfig);
40
52
  if (cached !== null) {
@@ -44,11 +56,14 @@ async function resolveAccount({ address, encoding = "jsonParsed", ...config }, c
44
56
  throw e;
45
57
  });
46
58
  if (account === null) {
47
- return null;
59
+ return {
60
+ address
61
+ };
48
62
  }
49
63
  const [data, responseEncoding] = Array.isArray(account.data) ? encoding === "jsonParsed" ? [account.data[0], "base64"] : [account.data[0], encoding] : [account.data, "jsonParsed"];
50
64
  const queryResponse = {
51
65
  ...account,
66
+ address,
52
67
  data,
53
68
  encoding: responseEncoding
54
69
  };
@@ -123,8 +138,8 @@ function createSolanaGraphQLContext(rpc) {
123
138
  const cache = createGraphQLCache();
124
139
  return {
125
140
  cache,
126
- resolveAccount(args) {
127
- return resolveAccount(args, this.cache, this.rpc);
141
+ resolveAccount(args, info) {
142
+ return resolveAccount(args, this.cache, this.rpc, info);
128
143
  },
129
144
  resolveBlock(args) {
130
145
  return resolveBlock(args, this.cache, this.rpc);
@@ -341,6 +356,7 @@ var memoisedAccountInterfaceFields;
341
356
  var accountInterfaceFields = () => {
342
357
  if (!memoisedAccountInterfaceFields) {
343
358
  memoisedAccountInterfaceFields = {
359
+ address: string(),
344
360
  encoding: string(),
345
361
  executable: boolean(),
346
362
  lamports: bigint(),
@@ -407,7 +423,7 @@ var accountType = (name, description, data) => new GraphQLObjectType({
407
423
  encoding: type(accountEncodingInputType()),
408
424
  minContextSlot: bigint()
409
425
  },
410
- resolve: (parent, args, context) => context.resolveAccount({ ...args, address: parent.owner }),
426
+ resolve: (parent, args, context, info) => context.resolveAccount({ ...args, address: parent.owner }, info),
411
427
  type: accountInterface()
412
428
  }
413
429
  },
@@ -607,7 +623,8 @@ var accountQuery = () => ({
607
623
  encoding: type(accountEncodingInputType()),
608
624
  minContextSlot: bigint()
609
625
  },
610
- resolve: (_parent, args, context) => context.resolveAccount(args),
626
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
627
+ resolve: (_parent, args, context, info) => context.resolveAccount(args, info),
611
628
  type: accountInterface()
612
629
  }
613
630
  });