dynim-plugin-vite 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.
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5 -0
- package/dist/plugin.d.ts +54 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +82 -0
- package/package.json +34 -0
- package/src/virtual-module.d.ts +24 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/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"}
|
package/dist/index.js
ADDED
package/dist/plugin.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite plugin for Dynim package exposure
|
|
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-plugin-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
|
+
* <DynimProvider 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/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,CAwCR;AAED,eAAe,aAAa,CAAA"}
|
package/dist/plugin.js
ADDED
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vite plugin for Dynim package exposure
|
|
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-plugin-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
|
+
* <DynimProvider 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
|
+
// Spread namespace objects into plain objects so exports are enumerable
|
|
65
|
+
const entries = packageNames
|
|
66
|
+
.map((name, i) => ` '${name}': { ..._pkg${i} }`)
|
|
67
|
+
.join(',\n');
|
|
68
|
+
// Return the generated module code
|
|
69
|
+
return `${imports}
|
|
70
|
+
|
|
71
|
+
const packages = {
|
|
72
|
+
${entries}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export default packages
|
|
76
|
+
export { packages }
|
|
77
|
+
`;
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
export default dynimPackages;
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "dynim-plugin-vite",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Vite plugin for exposing packages to Dynim bundles",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.js",
|
|
7
|
+
"types": "./dist/index.d.ts",
|
|
8
|
+
"exports": {
|
|
9
|
+
".": {
|
|
10
|
+
"types": "./dist/index.d.ts",
|
|
11
|
+
"import": "./dist/index.js"
|
|
12
|
+
},
|
|
13
|
+
"./virtual-module": {
|
|
14
|
+
"types": "./src/virtual-module.d.ts"
|
|
15
|
+
}
|
|
16
|
+
},
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"src/virtual-module.d.ts",
|
|
20
|
+
"README.md"
|
|
21
|
+
],
|
|
22
|
+
"scripts": {
|
|
23
|
+
"build": "tsc",
|
|
24
|
+
"dev": "tsc --watch"
|
|
25
|
+
},
|
|
26
|
+
"peerDependencies": {
|
|
27
|
+
"vite": ">=4.0.0"
|
|
28
|
+
},
|
|
29
|
+
"devDependencies": {
|
|
30
|
+
"typescript": "^5.9.3",
|
|
31
|
+
"vite": "^5.0.11"
|
|
32
|
+
},
|
|
33
|
+
"license": "MIT"
|
|
34
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type declarations for the virtual:dynim-packages module.
|
|
3
|
+
*
|
|
4
|
+
* To use these types, add to your tsconfig.json:
|
|
5
|
+
* {
|
|
6
|
+
* "compilerOptions": {
|
|
7
|
+
* "types": ["dynim-plugin-vite/virtual-module"]
|
|
8
|
+
* }
|
|
9
|
+
* }
|
|
10
|
+
*
|
|
11
|
+
* Or add a reference in a .d.ts file:
|
|
12
|
+
* /// <reference types="dynim-plugin-vite/virtual-module" />
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
declare module 'virtual:dynim-packages' {
|
|
16
|
+
/**
|
|
17
|
+
* Object mapping package names to their exports.
|
|
18
|
+
* The actual shape depends on which packages you configured
|
|
19
|
+
* in the dynimPackages() plugin.
|
|
20
|
+
*/
|
|
21
|
+
const packages: Record<string, unknown>
|
|
22
|
+
export default packages
|
|
23
|
+
export { packages }
|
|
24
|
+
}
|