@vrplatform/graphql 1.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.
Files changed (75) hide show
  1. package/LICENSE +3 -0
  2. package/build/main/constants.d.ts +2 -0
  3. package/build/main/constants.js +5 -0
  4. package/build/main/create-client-v2.d.ts +11 -0
  5. package/build/main/create-client-v2.js +79 -0
  6. package/build/main/create-client.d.ts +11 -0
  7. package/build/main/create-client.js +122 -0
  8. package/build/main/dotenv.d.ts +1 -0
  9. package/build/main/dotenv.js +6 -0
  10. package/build/main/gqty/index.d.ts +1 -0
  11. package/build/main/gqty/index.js +17 -0
  12. package/build/main/gqty/schema.generated.d.ts +117383 -0
  13. package/build/main/gqty/schema.generated.js +47182 -0
  14. package/build/main/index.d.ts +4 -0
  15. package/build/main/index.js +24 -0
  16. package/build/main/src/constants.d.ts +2 -0
  17. package/build/main/src/constants.js +5 -0
  18. package/build/main/src/create-client.d.ts +7 -0
  19. package/build/main/src/create-client.js +109 -0
  20. package/build/main/src/gqty/index.d.ts +1 -0
  21. package/build/main/src/gqty/index.js +17 -0
  22. package/build/main/src/gqty/schema.generated.d.ts +147429 -0
  23. package/build/main/src/gqty/schema.generated.js +47182 -0
  24. package/build/main/src/index.d.ts +14 -0
  25. package/build/main/src/index.js +93 -0
  26. package/build/main/src/index.spec.d.ts +1 -0
  27. package/build/main/src/index.spec.js +12 -0
  28. package/build/main/src/types.d.ts +16 -0
  29. package/build/main/src/types.js +2 -0
  30. package/build/main/tsconfig.main.tsbuildinfo +1 -0
  31. package/build/main/types.d.ts +18 -0
  32. package/build/main/types.js +2 -0
  33. package/build/main/wrap.d.ts +10 -0
  34. package/build/main/wrap.js +70 -0
  35. package/build/module/constants.d.ts +2 -0
  36. package/build/module/constants.js +2 -0
  37. package/build/module/create-client-v2.d.ts +11 -0
  38. package/build/module/create-client-v2.js +72 -0
  39. package/build/module/create-client.d.ts +11 -0
  40. package/build/module/create-client.js +116 -0
  41. package/build/module/dotenv.d.ts +1 -0
  42. package/build/module/dotenv.js +3 -0
  43. package/build/module/gqty/index.d.ts +1 -0
  44. package/build/module/gqty/index.js +1 -0
  45. package/build/module/gqty/schema.generated.d.ts +117383 -0
  46. package/build/module/gqty/schema.generated.js +47179 -0
  47. package/build/module/index.d.ts +4 -0
  48. package/build/module/index.js +4 -0
  49. package/build/module/src/constants.d.ts +2 -0
  50. package/build/module/src/constants.js +2 -0
  51. package/build/module/src/create-client.d.ts +7 -0
  52. package/build/module/src/create-client.js +103 -0
  53. package/build/module/src/gqty/index.d.ts +1 -0
  54. package/build/module/src/gqty/index.js +1 -0
  55. package/build/module/src/gqty/schema.generated.d.ts +147429 -0
  56. package/build/module/src/gqty/schema.generated.js +47179 -0
  57. package/build/module/src/index.d.ts +14 -0
  58. package/build/module/src/index.js +73 -0
  59. package/build/module/src/index.spec.d.ts +1 -0
  60. package/build/module/src/index.spec.js +10 -0
  61. package/build/module/src/types.d.ts +16 -0
  62. package/build/module/src/types.js +1 -0
  63. package/build/module/tsconfig.esm.tsbuildinfo +1 -0
  64. package/build/module/types.d.ts +18 -0
  65. package/build/module/types.js +1 -0
  66. package/build/module/wrap.d.ts +10 -0
  67. package/build/module/wrap.js +67 -0
  68. package/package.json +66 -0
  69. package/src/constants.ts +2 -0
  70. package/src/create-client.ts +121 -0
  71. package/src/gqty/index.ts +1 -0
  72. package/src/gqty/schema.generated.d.ts +117383 -0
  73. package/src/gqty/schema.generated.js +47255 -0
  74. package/src/index.ts +93 -0
  75. package/src/types.ts +18 -0
package/src/index.ts ADDED
@@ -0,0 +1,93 @@
1
+ import { useHasuraClientInner } from './create-client';
2
+
3
+ export { type HasuraClient, useHasuraClientInner } from './create-client';
4
+ export * from './gqty';
5
+ export { GQtyError } from 'gqty';
6
+
7
+ import type { LegacyResolveOptions } from 'gqty';
8
+ import type { Mutation, Query, Subscription } from './gqty';
9
+ import type { GqlAuthParam } from './types';
10
+
11
+ export type ResolveOptionsWithSession<T> = LegacyResolveOptions<T>;
12
+
13
+ export function useHasuraClient(args?: GqlAuthParam) {
14
+ const { client, subscriptionsClient } = useHasuraClientInner(args);
15
+ const retries = args.retries || 3;
16
+ return {
17
+ client,
18
+ subscriptionsClient,
19
+ async mutate<T = unknown>(
20
+ resolved: (sub: Mutation) => T,
21
+ options?: ResolveOptionsWithSession<T>
22
+ ) {
23
+ if (!options) options = {};
24
+ if (options.noCache === undefined) options.noCache = true;
25
+
26
+ let err: any;
27
+ for (let tries = 1; tries <= retries; tries++) {
28
+ try {
29
+ const result = await client.resolve(
30
+ ({ mutation }) => resolved(mutation),
31
+ options
32
+ );
33
+ return result;
34
+ } catch (error: any) {
35
+ err = error;
36
+ if (error.message !== 'database query error') break;
37
+ await new Promise((resolve) =>
38
+ setTimeout(resolve, 1_000 * tries + 1_000)
39
+ );
40
+ }
41
+ }
42
+ if (args.onError) throw args.onError(err) || err;
43
+ throw err;
44
+ },
45
+ async query<T = unknown>(
46
+ resolved: (sub: Query) => T,
47
+ options?: ResolveOptionsWithSession<T>
48
+ ) {
49
+ let err: any;
50
+ for (let tries = 1; tries <= retries; tries++) {
51
+ try {
52
+ const result = await client.resolve(
53
+ ({ query }) => resolved(query),
54
+ options
55
+ );
56
+ return result;
57
+ } catch (error: any) {
58
+ err = error;
59
+ if (error.message !== 'database query error') break;
60
+ await new Promise((resolve) =>
61
+ setTimeout(resolve, 1_000 * tries + 1_000)
62
+ );
63
+ }
64
+ }
65
+ if (args.onError) throw args.onError(err) || err;
66
+ throw err;
67
+ },
68
+ subscribe<T = unknown>(
69
+ resolved: (sub: Subscription) => T,
70
+ onData: (data: T, unsubscribeFn: () => Promise<void>) => void,
71
+ onError?: (err: Error, unsubscribeFn: () => Promise<void>) => void
72
+ ) {
73
+ if (!subscriptionsClient) throw new Error('Subscriptions not enabled');
74
+ let unsub: undefined | (() => Promise<void>);
75
+
76
+ const stop = async () => {
77
+ if (!unsub) return;
78
+ await unsub().catch(() => undefined);
79
+ };
80
+
81
+ client.resolved(() => resolved(client.subscription), {
82
+ onSubscription(event) {
83
+ if (event.unsubscribe) unsub = event.unsubscribe;
84
+
85
+ if (event.type === 'data') onData(event.data, stop);
86
+ else if (event.type === 'with-errors' && onError)
87
+ onError(event.error, stop);
88
+ },
89
+ });
90
+ return stop;
91
+ },
92
+ };
93
+ }
package/src/types.ts ADDED
@@ -0,0 +1,18 @@
1
+ export type Headers = { [s: string]: string };
2
+ export type GqlAuthParam = {
3
+ accessToken?: string;
4
+ secret?: string;
5
+ headers?:
6
+ | { [s: string]: string }
7
+ | (() => Headers)
8
+ | (() => Promise<Headers>);
9
+ fetch?: any;
10
+ // normalization?: boolean;
11
+ subscriptions?: boolean;
12
+ uri?: string;
13
+ // cache?: boolean;
14
+ onError?: (err: Error) => any;
15
+ /* Retry options, default is 3 times */
16
+ retries?: number;
17
+ auditUserId?: string;
18
+ };