@svadmin/medusa 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/medusa",
3
- "version": "0.10.8",
3
+ "version": "0.12.0",
4
4
  "description": "Medusa DataProvider for svadmin",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -20,7 +20,7 @@
20
20
  }
21
21
  },
22
22
  "peerDependencies": {
23
- "@svadmin/core": "^0.54.0",
23
+ "@svadmin/core": "^0.56.0",
24
24
  "@refinedev/medusa": "^5.0.0"
25
25
  },
26
26
  "license": "MIT",
@@ -38,6 +38,15 @@
38
38
  }
39
39
  },
40
40
  "dependencies": {
41
- "@svadmin/refine-adapter": "^0.11.8"
41
+ "@svadmin/refine-adapter": "^0.12.0"
42
+ },
43
+ "svadmin": {
44
+ "capabilities": [
45
+ "data",
46
+ "auth"
47
+ ],
48
+ "core": "^0.55.0",
49
+ "stability": "stable",
50
+ "migration": null
42
51
  }
43
52
  }
@@ -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 medusa data provider using the official @refinedev/medusa package.
@@ -10,9 +24,12 @@ import { createRefineAdapter } from '@svadmin/refine-adapter';
10
24
  * @param args Arguments required by @refinedev/medusa
11
25
  * @returns A fully compatible svadmin DataProvider
12
26
  */
13
- export async function createMedusaDataProvider(...args: any[]): Promise<DataProvider> {
14
- const pkg = await import('@refinedev/medusa');
15
- const init = (pkg as any).default || (pkg as any).dataProvider || (pkg as any).DataProvider;
27
+ export async function createMedusaDataProvider(...args: unknown[]): Promise<DataProvider> {
28
+ const loaded: unknown = await import('@refinedev/medusa');
29
+ if (!isProviderModule(loaded)) throw new TypeError('Invalid Medusa data provider module');
30
+ const pkg = loaded;
31
+ const init = pkg.default ?? pkg.dataProvider ?? pkg.DataProvider;
32
+ if (!init) throw new Error('No Medusa data provider initializer was found');
16
33
  const refineProvider = init(...args);
17
34
  return createRefineAdapter(refineProvider);
18
35
  }