dynim-react 1.0.27 → 1.0.28

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.
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Vite integration for dynim-react
3
+ */
4
+ export { dynimPackages, type DynimPackagesOptions } from './plugin.js';
5
+ export { dynimPackages as default } from './plugin.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vite/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAE,KAAK,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACtE,OAAO,EAAE,aAAa,IAAI,OAAO,EAAE,MAAM,aAAa,CAAA"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Vite integration for dynim-react
3
+ */
4
+ export { dynimPackages } from './plugin.js';
5
+ export { dynimPackages as default } from './plugin.js';
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Vite plugin for dynim-react
3
+ *
4
+ * Generates a virtual module that exports all specified packages,
5
+ * so you don't have to manually import and map each one.
6
+ *
7
+ * Usage:
8
+ * ```ts
9
+ * // vite.config.ts
10
+ * import { dynimPackages } from 'dynim-react/vite'
11
+ *
12
+ * export default {
13
+ * plugins: [
14
+ * dynimPackages([
15
+ * 'react-router-dom',
16
+ * '@tanstack/react-query',
17
+ * 'axios',
18
+ * ])
19
+ * ]
20
+ * }
21
+ * ```
22
+ *
23
+ * Then in your app:
24
+ * ```ts
25
+ * import packages from 'virtual:dynim-packages'
26
+ *
27
+ * <BuilderProvider config={{ packages }}>
28
+ * ```
29
+ */
30
+ import type { Plugin } from 'vite';
31
+ export interface DynimPackagesOptions {
32
+ /**
33
+ * List of package names to expose to dynim bundles.
34
+ * These must be installed in your project's node_modules.
35
+ */
36
+ packages: string[];
37
+ }
38
+ /**
39
+ * Vite plugin that generates a virtual module exporting all specified packages.
40
+ *
41
+ * @param packages - Array of package names, or options object
42
+ * @returns Vite plugin
43
+ *
44
+ * @example
45
+ * // Simple usage - array of package names
46
+ * dynimPackages(['react-router-dom', 'axios'])
47
+ *
48
+ * @example
49
+ * // Options object
50
+ * dynimPackages({ packages: ['react-router-dom', 'axios'] })
51
+ */
52
+ export declare function dynimPackages(packagesOrOptions: string[] | DynimPackagesOptions): Plugin;
53
+ export default dynimPackages;
54
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/vite/plugin.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAA;AAKlC,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,QAAQ,EAAE,MAAM,EAAE,CAAA;CACnB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAC3B,iBAAiB,EAAE,MAAM,EAAE,GAAG,oBAAoB,GACjD,MAAM,CAuCR;AAED,eAAe,aAAa,CAAA"}
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Vite plugin for dynim-react
3
+ *
4
+ * Generates a virtual module that exports all specified packages,
5
+ * so you don't have to manually import and map each one.
6
+ *
7
+ * Usage:
8
+ * ```ts
9
+ * // vite.config.ts
10
+ * import { dynimPackages } from 'dynim-react/vite'
11
+ *
12
+ * export default {
13
+ * plugins: [
14
+ * dynimPackages([
15
+ * 'react-router-dom',
16
+ * '@tanstack/react-query',
17
+ * 'axios',
18
+ * ])
19
+ * ]
20
+ * }
21
+ * ```
22
+ *
23
+ * Then in your app:
24
+ * ```ts
25
+ * import packages from 'virtual:dynim-packages'
26
+ *
27
+ * <BuilderProvider config={{ packages }}>
28
+ * ```
29
+ */
30
+ const VIRTUAL_MODULE_ID = 'virtual:dynim-packages';
31
+ const RESOLVED_VIRTUAL_MODULE_ID = '\0' + VIRTUAL_MODULE_ID;
32
+ /**
33
+ * Vite plugin that generates a virtual module exporting all specified packages.
34
+ *
35
+ * @param packages - Array of package names, or options object
36
+ * @returns Vite plugin
37
+ *
38
+ * @example
39
+ * // Simple usage - array of package names
40
+ * dynimPackages(['react-router-dom', 'axios'])
41
+ *
42
+ * @example
43
+ * // Options object
44
+ * dynimPackages({ packages: ['react-router-dom', 'axios'] })
45
+ */
46
+ export function dynimPackages(packagesOrOptions) {
47
+ const packageNames = Array.isArray(packagesOrOptions)
48
+ ? packagesOrOptions
49
+ : packagesOrOptions.packages;
50
+ return {
51
+ name: 'dynim-packages',
52
+ resolveId(id) {
53
+ if (id === VIRTUAL_MODULE_ID) {
54
+ return RESOLVED_VIRTUAL_MODULE_ID;
55
+ }
56
+ },
57
+ load(id) {
58
+ if (id === RESOLVED_VIRTUAL_MODULE_ID) {
59
+ // Generate import statements for each package
60
+ const imports = packageNames
61
+ .map((name, i) => `import * as _pkg${i} from '${name}'`)
62
+ .join('\n');
63
+ // Generate the packages object entries
64
+ const entries = packageNames
65
+ .map((name, i) => ` '${name}': _pkg${i}`)
66
+ .join(',\n');
67
+ // Return the generated module code
68
+ return `${imports}
69
+
70
+ const packages = {
71
+ ${entries}
72
+ }
73
+
74
+ export default packages
75
+ export { packages }
76
+ `;
77
+ }
78
+ },
79
+ };
80
+ }
81
+ export default dynimPackages;
package/package.json CHANGED
@@ -1,9 +1,22 @@
1
1
  {
2
2
  "name": "dynim-react",
3
- "version": "1.0.27",
3
+ "version": "1.0.28",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "import": "./dist/index.js"
11
+ },
12
+ "./vite": {
13
+ "types": "./dist/vite/index.d.ts",
14
+ "import": "./dist/vite/index.js"
15
+ },
16
+ "./vite/virtual-module": {
17
+ "types": "./dist/vite/virtual-module.d.ts"
18
+ }
19
+ },
7
20
  "files": [
8
21
  "dist",
9
22
  "README.md"
@@ -17,14 +30,21 @@
17
30
  },
18
31
  "peerDependencies": {
19
32
  "react": ">=17.0.0",
20
- "react-dom": ">=17.0.0"
33
+ "react-dom": ">=17.0.0",
34
+ "vite": ">=4.0.0"
35
+ },
36
+ "peerDependenciesMeta": {
37
+ "vite": {
38
+ "optional": true
39
+ }
21
40
  },
22
41
  "devDependencies": {
23
42
  "@types/react": "^18.3.27",
24
43
  "@types/react-dom": "^18.3.7",
25
44
  "react": "^19.2.3",
26
45
  "react-dom": "^19.2.3",
27
- "typescript": "^5.9.3"
46
+ "typescript": "^5.9.3",
47
+ "vite": "^5.0.0"
28
48
  },
29
49
  "license": "MIT"
30
50
  }