rn-iconify 2.1.1 → 2.2.1
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/lib/commonjs/IconRenderer.js +54 -12
- package/lib/commonjs/IconRenderer.js.map +1 -1
- package/lib/commonjs/babel/cache-writer.js +102 -26
- package/lib/commonjs/babel/cache-writer.js.map +1 -1
- package/lib/commonjs/babel/index.js +6 -0
- package/lib/commonjs/babel/index.js.map +1 -1
- package/lib/commonjs/babel/plugin.js +194 -57
- package/lib/commonjs/babel/plugin.js.map +1 -1
- package/lib/commonjs/babel/scanner.js +222 -0
- package/lib/commonjs/babel/scanner.js.map +1 -0
- package/lib/commonjs/babel/types.js +19 -0
- package/lib/commonjs/babel/types.js.map +1 -1
- package/lib/commonjs/cache/CacheManager.js +70 -1
- package/lib/commonjs/cache/CacheManager.js.map +1 -1
- package/lib/commonjs/config/ConfigManager.js +8 -1
- package/lib/commonjs/config/ConfigManager.js.map +1 -1
- package/lib/commonjs/config/index.js.map +1 -1
- package/lib/commonjs/config/types.js +9 -0
- package/lib/commonjs/config/types.js.map +1 -1
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/metro/devServerMiddleware.js +150 -0
- package/lib/commonjs/metro/devServerMiddleware.js.map +1 -0
- package/lib/commonjs/metro/index.js +20 -0
- package/lib/commonjs/metro/index.js.map +1 -0
- package/lib/commonjs/metro/types.js +6 -0
- package/lib/commonjs/metro/types.js.map +1 -0
- package/lib/commonjs/metro/withRnIconify.js +53 -0
- package/lib/commonjs/metro/withRnIconify.js.map +1 -0
- package/lib/module/IconRenderer.js +54 -12
- package/lib/module/IconRenderer.js.map +1 -1
- package/lib/module/babel/cache-writer.js +99 -26
- package/lib/module/babel/cache-writer.js.map +1 -1
- package/lib/module/babel/index.js +1 -1
- package/lib/module/babel/index.js.map +1 -1
- package/lib/module/babel/plugin.js +193 -60
- package/lib/module/babel/plugin.js.map +1 -1
- package/lib/module/babel/scanner.js +216 -0
- package/lib/module/babel/scanner.js.map +1 -0
- package/lib/module/babel/types.js +18 -0
- package/lib/module/babel/types.js.map +1 -1
- package/lib/module/cache/CacheManager.js +70 -1
- package/lib/module/cache/CacheManager.js.map +1 -1
- package/lib/module/config/ConfigManager.js +8 -1
- package/lib/module/config/ConfigManager.js.map +1 -1
- package/lib/module/config/index.js.map +1 -1
- package/lib/module/config/types.js +9 -0
- package/lib/module/config/types.js.map +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/metro/devServerMiddleware.js +143 -0
- package/lib/module/metro/devServerMiddleware.js.map +1 -0
- package/lib/module/metro/index.js +19 -0
- package/lib/module/metro/index.js.map +1 -0
- package/lib/module/metro/types.js +2 -0
- package/lib/module/metro/types.js.map +1 -0
- package/lib/module/metro/withRnIconify.js +48 -0
- package/lib/module/metro/withRnIconify.js.map +1 -0
- package/lib/typescript/IconRenderer.d.ts.map +1 -1
- package/lib/typescript/babel/cache-writer.d.ts +16 -2
- package/lib/typescript/babel/cache-writer.d.ts.map +1 -1
- package/lib/typescript/babel/index.d.ts +1 -1
- package/lib/typescript/babel/index.d.ts.map +1 -1
- package/lib/typescript/babel/plugin.d.ts +19 -0
- package/lib/typescript/babel/plugin.d.ts.map +1 -1
- package/lib/typescript/babel/scanner.d.ts +31 -0
- package/lib/typescript/babel/scanner.d.ts.map +1 -0
- package/lib/typescript/babel/types.d.ts +13 -1
- package/lib/typescript/babel/types.d.ts.map +1 -1
- package/lib/typescript/cache/CacheManager.d.ts +16 -0
- package/lib/typescript/cache/CacheManager.d.ts.map +1 -1
- package/lib/typescript/config/ConfigManager.d.ts +5 -1
- package/lib/typescript/config/ConfigManager.d.ts.map +1 -1
- package/lib/typescript/config/index.d.ts +1 -1
- package/lib/typescript/config/index.d.ts.map +1 -1
- package/lib/typescript/config/types.d.ts +26 -0
- package/lib/typescript/config/types.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/metro/devServerMiddleware.d.ts +11 -0
- package/lib/typescript/metro/devServerMiddleware.d.ts.map +1 -0
- package/lib/typescript/metro/index.d.ts +19 -0
- package/lib/typescript/metro/index.d.ts.map +1 -0
- package/lib/typescript/metro/types.d.ts +46 -0
- package/lib/typescript/metro/types.d.ts.map +1 -0
- package/lib/typescript/metro/withRnIconify.d.ts +20 -0
- package/lib/typescript/metro/withRnIconify.d.ts.map +1 -0
- package/metro.js +12 -0
- package/package.json +8 -4
- package/src/IconRenderer.tsx +59 -12
- package/src/babel/cache-writer.ts +105 -31
- package/src/babel/index.ts +1 -0
- package/src/babel/plugin.ts +219 -47
- package/src/babel/scanner.ts +277 -0
- package/src/babel/types.ts +35 -1
- package/src/cache/CacheManager.ts +70 -1
- package/src/config/ConfigManager.ts +9 -0
- package/src/config/index.ts +1 -0
- package/src/config/types.ts +35 -0
- package/src/index.ts +1 -0
- package/src/metro/devServerMiddleware.ts +137 -0
- package/src/metro/index.ts +19 -0
- package/src/metro/types.ts +52 -0
- package/src/metro/withRnIconify.ts +52 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metro configuration types
|
|
3
|
+
* Minimal type definitions for Metro config integration
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
import type { IncomingMessage, ServerResponse } from 'http';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Metro middleware function
|
|
10
|
+
*/
|
|
11
|
+
export type MetroMiddleware = (req: IncomingMessage, res: ServerResponse, next: () => void) => void;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Metro server configuration
|
|
15
|
+
*/
|
|
16
|
+
export interface MetroServerConfig {
|
|
17
|
+
enhanceMiddleware?: (middleware: MetroMiddleware, server: unknown) => MetroMiddleware;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Metro configuration object (partial, only what we need)
|
|
22
|
+
*/
|
|
23
|
+
export interface MetroConfig {
|
|
24
|
+
server?: MetroServerConfig;
|
|
25
|
+
[key: string]: unknown;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* rn-iconify Metro plugin options
|
|
30
|
+
*/
|
|
31
|
+
export interface RnIconifyMetroOptions {
|
|
32
|
+
/**
|
|
33
|
+
* Directory to store usage data
|
|
34
|
+
* @default '.rn-iconify'
|
|
35
|
+
*/
|
|
36
|
+
outputDir?: string;
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Enable verbose logging
|
|
40
|
+
* @default false
|
|
41
|
+
*/
|
|
42
|
+
verbose?: boolean;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Usage file structure
|
|
47
|
+
*/
|
|
48
|
+
export interface UsageFile {
|
|
49
|
+
version: string;
|
|
50
|
+
icons: string[];
|
|
51
|
+
updatedAt: string;
|
|
52
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metro Config Wrapper
|
|
3
|
+
* Adds rn-iconify middleware to the Metro dev server
|
|
4
|
+
*
|
|
5
|
+
* @example
|
|
6
|
+
* ```js
|
|
7
|
+
* // metro.config.js
|
|
8
|
+
* const { withRnIconify } = require('rn-iconify/metro');
|
|
9
|
+
*
|
|
10
|
+
* const config = getDefaultConfig(__dirname);
|
|
11
|
+
* module.exports = withRnIconify(config);
|
|
12
|
+
* ```
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import type { MetroConfig, MetroMiddleware, RnIconifyMetroOptions } from './types';
|
|
16
|
+
import { createDevServerMiddleware } from './devServerMiddleware';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Wrap a Metro config to add rn-iconify dev server middleware
|
|
20
|
+
* This enables runtime icon usage learning during development
|
|
21
|
+
*/
|
|
22
|
+
export function withRnIconify(config: MetroConfig, options?: RnIconifyMetroOptions): MetroConfig {
|
|
23
|
+
const middleware = createDevServerMiddleware(options);
|
|
24
|
+
|
|
25
|
+
const existingEnhance = config.server?.enhanceMiddleware;
|
|
26
|
+
|
|
27
|
+
return {
|
|
28
|
+
...config,
|
|
29
|
+
server: {
|
|
30
|
+
...config.server,
|
|
31
|
+
enhanceMiddleware: (metroMiddleware: MetroMiddleware, server: unknown): MetroMiddleware => {
|
|
32
|
+
// Apply existing enhanceMiddleware if present
|
|
33
|
+
const enhanced = existingEnhance
|
|
34
|
+
? existingEnhance(metroMiddleware, server)
|
|
35
|
+
: metroMiddleware;
|
|
36
|
+
|
|
37
|
+
// Wrap with our middleware
|
|
38
|
+
return (req, res, next) => {
|
|
39
|
+
// Check if this is our endpoint
|
|
40
|
+
const url = req.url;
|
|
41
|
+
if (url === '/__rn_iconify_log' || url === '/__rn_iconify_status') {
|
|
42
|
+
middleware(req, res, next);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Otherwise pass through
|
|
47
|
+
enhanced(req, res, next);
|
|
48
|
+
};
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
};
|
|
52
|
+
}
|