@svadmin/medusa 0.10.7 → 0.11.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 +3 -3
- package/src/data-provider.ts +21 -4
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@svadmin/medusa",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.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.
|
|
23
|
+
"@svadmin/core": "^0.55.0",
|
|
24
24
|
"@refinedev/medusa": "^5.0.0"
|
|
25
25
|
},
|
|
26
26
|
"license": "MIT",
|
|
@@ -38,6 +38,6 @@
|
|
|
38
38
|
}
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
|
-
"@svadmin/refine-adapter": "^0.11.
|
|
41
|
+
"@svadmin/refine-adapter": "^0.11.9"
|
|
42
42
|
}
|
|
43
43
|
}
|
package/src/data-provider.ts
CHANGED
|
@@ -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:
|
|
14
|
-
const
|
|
15
|
-
|
|
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
|
}
|