@svadmin/graphql 0.10.8 → 0.12.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@svadmin/graphql",
3
- "version": "0.10.8",
3
+ "version": "0.12.0",
4
4
  "description": "GraphQL DataProvider for svadmin",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -19,13 +19,22 @@
19
19
  "default": "./src/index.ts"
20
20
  }
21
21
  },
22
+ "svadmin": {
23
+ "capabilities": [
24
+ "data",
25
+ "graphql"
26
+ ],
27
+ "core": "^0.55.0",
28
+ "stability": "stable",
29
+ "migration": null
30
+ },
22
31
  "peerDependencies": {
23
- "@svadmin/core": "^0.54.0",
32
+ "@svadmin/core": "^0.56.0",
24
33
  "@refinedev/graphql": "^8.0.1"
25
34
  },
26
35
  "dependencies": {
27
36
  "graphql-request": "^7.4.0",
28
- "@svadmin/refine-adapter": "^0.11.8"
37
+ "@svadmin/refine-adapter": "^0.12.0"
29
38
  },
30
39
  "license": "MIT",
31
40
  "repository": {
@@ -1,7 +1,21 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import type { DataProvider } from '@svadmin/core';
3
2
  import { createRefineAdapter } from '@svadmin/refine-adapter';
4
3
 
4
+ type ProviderInitializer = (...args: unknown[]) => unknown;
5
+ type ProviderModule = {
6
+ default?: ProviderInitializer;
7
+ dataProvider?: ProviderInitializer;
8
+ DataProvider?: ProviderInitializer;
9
+ };
10
+
11
+ function isProviderModule(value: unknown): value is ProviderModule {
12
+ if (typeof value !== 'object' || value === null) return false;
13
+ const module = value as Record<string, unknown>;
14
+ return ['default', 'dataProvider', 'DataProvider'].some((key) => {
15
+ const candidate = module[key];
16
+ return candidate === undefined || typeof candidate === 'function';
17
+ });
18
+ }
5
19
 
6
20
  /**
7
21
  * Creates a graphql data provider using the official @refinedev/graphql package.
@@ -10,11 +24,14 @@ import { createRefineAdapter } from '@svadmin/refine-adapter';
10
24
  * @param args Arguments required by @refinedev/graphql
11
25
  * @returns A fully compatible svadmin DataProvider
12
26
  */
13
- export async function createGraphQLDataProvider(...args: any[]): Promise<DataProvider> {
14
- const pkg = await import('@refinedev/graphql');
15
- const init = (pkg as any).default || (pkg as any).dataProvider || (pkg as any).DataProvider;
27
+ export async function createGraphQLDataProvider(...args: unknown[]): Promise<DataProvider> {
28
+ const loaded: unknown = await import('@refinedev/graphql');
29
+ if (!isProviderModule(loaded)) throw new TypeError('Invalid GraphQL data provider module');
30
+ const pkg = loaded;
31
+ const init = pkg.default ?? pkg.dataProvider ?? pkg.DataProvider;
32
+ if (!init) throw new Error('No GraphQL data provider initializer was found');
16
33
  const refineProvider = init(...args);
17
34
  return createRefineAdapter(refineProvider);
18
35
  }
19
36
 
20
- export type GraphQLDataProviderOptions = any;
37
+ export type GraphQLDataProviderOptions = unknown;