rn-iconify 2.1.0 → 2.2.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/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/plugin.js +129 -44
- package/lib/commonjs/babel/plugin.js.map +1 -1
- package/lib/commonjs/babel/scanner.js +219 -0
- package/lib/commonjs/babel/scanner.js.map +1 -0
- package/lib/commonjs/babel/types.js.map +1 -1
- package/lib/commonjs/cache/CacheManager.js +82 -1
- package/lib/commonjs/cache/CacheManager.js.map +1 -1
- package/lib/commonjs/cache/DiskCache.js +33 -4
- package/lib/commonjs/cache/DiskCache.js.map +1 -1
- package/lib/commonjs/cli/CLAUDE.md +7 -0
- package/lib/commonjs/cli/commands/bundle.js +37 -6
- package/lib/commonjs/cli/commands/bundle.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/commonjs/network/IconifyAPI.js +30 -2
- package/lib/commonjs/network/IconifyAPI.js.map +1 -1
- 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/plugin.js +129 -46
- package/lib/module/babel/plugin.js.map +1 -1
- package/lib/module/babel/scanner.js +213 -0
- package/lib/module/babel/scanner.js.map +1 -0
- package/lib/module/babel/types.js.map +1 -1
- package/lib/module/cache/CacheManager.js +82 -1
- package/lib/module/cache/CacheManager.js.map +1 -1
- package/lib/module/cache/DiskCache.js +32 -4
- package/lib/module/cache/DiskCache.js.map +1 -1
- package/lib/module/cli/CLAUDE.md +7 -0
- package/lib/module/cli/commands/bundle.js +37 -6
- package/lib/module/cli/commands/bundle.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/module/network/IconifyAPI.js +30 -2
- package/lib/module/network/IconifyAPI.js.map +1 -1
- 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/plugin.d.ts +5 -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 +8 -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/cache/DiskCache.d.ts +2 -0
- package/lib/typescript/cache/DiskCache.d.ts.map +1 -1
- package/lib/typescript/cli/commands/bundle.d.ts.map +1 -1
- package/lib/typescript/components/Charm.d.ts +1 -1
- package/lib/typescript/components/Dashicons.d.ts +1 -1
- package/lib/typescript/components/Hugeicons.d.ts +1 -1
- package/lib/typescript/components/Ix.d.ts +1 -1
- package/lib/typescript/components/Tabler.d.ts +1 -1
- package/lib/typescript/components/Token.d.ts +1 -1
- package/lib/typescript/components/TokenBranded.d.ts +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/lib/typescript/network/IconifyAPI.d.ts.map +1 -1
- package/metro.js +12 -0
- package/package.json +13 -6
- package/src/IconRenderer.tsx +59 -12
- package/src/babel/cache-writer.ts +105 -31
- package/src/babel/plugin.ts +157 -34
- package/src/babel/scanner.ts +274 -0
- package/src/babel/types.ts +9 -1
- package/src/cache/CacheManager.ts +83 -1
- package/src/cache/DiskCache.ts +43 -4
- package/src/cli/CLAUDE.md +7 -0
- package/src/cli/commands/bundle.ts +52 -6
- 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
- package/src/network/IconifyAPI.ts +23 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["fs","path","ICONIFY_API_BASE","DEFAULT_TIMEOUT_MS","MAX_RETRIES","RETRY_DELAY_MS","BATCH_SIZE","fetchWithTimeout","url","timeoutMs","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","signal","clearTimeout","buildSvg","data","defaultWidth","defaultHeight","width","height","left","top","viewBox","transform","transforms","rotate","rotation","push","hFlip","vFlip","scaleX","scaleY","translateX","translateY","length","join","body","svg","fetchIconBatch","prefix","iconNames","verbose","results","Map","sortedNames","sort","namesString","lastError","attempt","console","log","ok","Error","status","json","icons","name","iconData","set","warn","error","String","Promise","resolve","message","groupIconsByPrefix","grouped","iconName","split","has","get","fetchAndCreateBundle","options","startTime","Date","now","allIcons","fetchedCount","names","i","batch","slice","bundle","version","generatedAt","toISOString","count","elapsed","writeBundleToFile","outputPath","dir","dirname","existsSync","mkdirSync","recursive","content","JSON","stringify","writeFileSync","sizeKB","toFixed","generateBundle","projectRoot","bundleFile","isAbsolute","jsContent","jsFile","replace","isBundleValid","readFileSync","parse"],"sourceRoot":"../../../src","sources":["babel/cache-writer.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["fs","path","ICONIFY_API_BASE","DEFAULT_TIMEOUT_MS","MAX_RETRIES","RETRY_DELAY_MS","BATCH_SIZE","fetchWithTimeout","url","timeoutMs","controller","AbortController","timeoutId","setTimeout","abort","response","fetch","signal","clearTimeout","buildSvg","data","defaultWidth","defaultHeight","width","height","left","top","viewBox","transform","transforms","rotate","rotation","push","hFlip","vFlip","scaleX","scaleY","translateX","translateY","length","join","body","svg","fetchIconBatch","prefix","iconNames","verbose","results","Map","sortedNames","sort","namesString","lastError","attempt","console","log","ok","Error","status","json","icons","name","iconData","set","warn","error","String","Promise","resolve","message","groupIconsByPrefix","grouped","iconName","split","has","get","fetchAndCreateBundle","options","startTime","Date","now","allIcons","fetchedCount","names","i","batch","slice","bundle","version","generatedAt","toISOString","count","elapsed","readExistingBundle","bundlePath","existsSync","content","readFileSync","JSON","parse","getNewIconNames","existingBundle","filter","writeBundleToFile","outputPath","dir","dirname","mkdirSync","recursive","stringify","existing","existingKeys","Object","keys","newKeys","writeFileSync","sizeKB","toFixed","resolveBundleDir","projectRoot","isAbsolute","generateBundle","bundleDir","bundleFile","undefined","newIconNames","newBundle","mergedIcons","jsContent","jsFile","newCount","existingCount","isBundleValid"],"sourceRoot":"../../../src","sources":["babel/cache-writer.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,19 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Babel Plugin Visitor
|
|
3
3
|
* Main visitor logic for the rn-iconify Babel plugin
|
|
4
|
+
*
|
|
5
|
+
* Auto-inject flow:
|
|
6
|
+
* 1. pre hook: scan project → detect icons → check if bundle exists
|
|
7
|
+
* 2. ImportDeclaration visitor: inject loadOfflineBundle + bundle import when bundle exists
|
|
8
|
+
* 3. post hook: generate/update bundle incrementally
|
|
4
9
|
*/
|
|
5
10
|
|
|
11
|
+
import * as nodePath from 'path';
|
|
6
12
|
import { COMPONENT_PREFIX_MAP, VALID_COMPONENTS, getFilenameFromState, getFilenameFromFile } from './types';
|
|
7
13
|
import { getComponentName, getNameAttribute, isCallTo, extractArrayStrings, getNodeLocation } from './ast-utils';
|
|
8
14
|
import { collector } from './collector';
|
|
9
|
-
import { generateBundle } from './cache-writer';
|
|
10
|
-
|
|
15
|
+
import { generateBundle, readExistingBundle, resolveBundleDir } from './cache-writer';
|
|
16
|
+
import { scanProjectForIcons } from './scanner';
|
|
11
17
|
/**
|
|
12
18
|
* Type guard to safely extract plugin options from 'this' context
|
|
13
19
|
*/
|
|
@@ -45,6 +51,31 @@ let bundleTimer = null;
|
|
|
45
51
|
*/
|
|
46
52
|
let projectRoot = '';
|
|
47
53
|
|
|
54
|
+
/**
|
|
55
|
+
* Whether bundle exists at build start (set in pre hook)
|
|
56
|
+
*/
|
|
57
|
+
let bundleExists = false;
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* Path to the existing bundle directory
|
|
61
|
+
*/
|
|
62
|
+
let bundleDirPath = '';
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Whether auto-inject has already been done for this build
|
|
66
|
+
*/
|
|
67
|
+
let hasInjected = false;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Scanned icon names from the pre hook
|
|
71
|
+
*/
|
|
72
|
+
let scannedIcons = [];
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Existing bundle loaded during pre hook
|
|
76
|
+
*/
|
|
77
|
+
let existingBundle = null;
|
|
78
|
+
|
|
48
79
|
/**
|
|
49
80
|
* Create the rn-iconify Babel plugin
|
|
50
81
|
*/
|
|
@@ -53,10 +84,7 @@ export function createRnIconifyPlugin(babel) {
|
|
|
53
84
|
return {
|
|
54
85
|
name: 'rn-iconify',
|
|
55
86
|
pre(file) {
|
|
56
|
-
// Access plugin options through 'this' using type guard approach
|
|
57
87
|
const opts = getPluginOptions(this);
|
|
58
|
-
|
|
59
|
-
// Skip if disabled
|
|
60
88
|
if (opts.disabled) {
|
|
61
89
|
return;
|
|
62
90
|
}
|
|
@@ -64,12 +92,12 @@ export function createRnIconifyPlugin(babel) {
|
|
|
64
92
|
// Initialize collector on first file
|
|
65
93
|
if (!buildInProgress) {
|
|
66
94
|
buildInProgress = true;
|
|
95
|
+
hasInjected = false;
|
|
67
96
|
collector.initialize(opts);
|
|
68
97
|
|
|
69
|
-
// Detect project root from file
|
|
98
|
+
// Detect project root from file
|
|
70
99
|
const filename = getFilenameFromFile(file);
|
|
71
100
|
if (filename) {
|
|
72
|
-
// Try to find project root by looking for package.json
|
|
73
101
|
let dir = filename;
|
|
74
102
|
while (dir !== '/') {
|
|
75
103
|
dir = dir.substring(0, dir.lastIndexOf('/'));
|
|
@@ -85,15 +113,37 @@ export function createRnIconifyPlugin(babel) {
|
|
|
85
113
|
projectRoot = process.cwd();
|
|
86
114
|
}
|
|
87
115
|
}
|
|
116
|
+
const outputPath = opts.outputPath || '.rn-iconify';
|
|
117
|
+
bundleDirPath = resolveBundleDir(outputPath, projectRoot);
|
|
118
|
+
const bundleJsonPath = nodePath.join(bundleDirPath, 'icons.json');
|
|
119
|
+
|
|
120
|
+
// Check if bundle exists
|
|
121
|
+
existingBundle = readExistingBundle(bundleJsonPath);
|
|
122
|
+
bundleExists = existingBundle !== null;
|
|
123
|
+
|
|
124
|
+
// Run sync scanner to discover all icons in the project
|
|
125
|
+
try {
|
|
126
|
+
scannedIcons = scanProjectForIcons(projectRoot, {
|
|
127
|
+
verbose: opts.verbose
|
|
128
|
+
});
|
|
129
|
+
} catch (error) {
|
|
130
|
+
if (opts.verbose) {
|
|
131
|
+
console.warn('[rn-iconify] Scanner failed:', error);
|
|
132
|
+
}
|
|
133
|
+
scannedIcons = [];
|
|
134
|
+
}
|
|
88
135
|
if (opts.verbose) {
|
|
89
136
|
console.log(`[rn-iconify] Build started. Project root: ${projectRoot}`);
|
|
137
|
+
console.log(`[rn-iconify] Bundle exists: ${bundleExists}`);
|
|
138
|
+
console.log(`[rn-iconify] Scanner found ${scannedIcons.length} icons`);
|
|
90
139
|
}
|
|
91
140
|
}
|
|
92
141
|
},
|
|
93
142
|
visitor: {
|
|
94
143
|
/**
|
|
95
|
-
* Visit import declarations to
|
|
96
|
-
*
|
|
144
|
+
* Visit import declarations to:
|
|
145
|
+
* 1. Track which icon components are imported
|
|
146
|
+
* 2. Auto-inject loadOfflineBundle when bundle exists
|
|
97
147
|
*/
|
|
98
148
|
ImportDeclaration(path, state) {
|
|
99
149
|
const opts = state.opts || {};
|
|
@@ -105,29 +155,70 @@ export function createRnIconifyPlugin(babel) {
|
|
|
105
155
|
return;
|
|
106
156
|
}
|
|
107
157
|
|
|
108
|
-
//
|
|
109
|
-
|
|
158
|
+
// Auto-inject: when bundle exists and we haven't injected yet
|
|
159
|
+
const autoInject = opts.autoInject !== false;
|
|
160
|
+
if (autoInject && bundleExists && !hasInjected && source === 'rn-iconify') {
|
|
161
|
+
// Check if this file already has a manual loadOfflineBundle import
|
|
162
|
+
const program = path.findParent(p => p.isProgram());
|
|
163
|
+
if (program && program.isProgram()) {
|
|
164
|
+
let hasManualLoad = false;
|
|
165
|
+
for (const stmt of program.node.body) {
|
|
166
|
+
if (t.isImportDeclaration(stmt)) {
|
|
167
|
+
for (const spec of stmt.specifiers) {
|
|
168
|
+
if (t.isImportSpecifier(spec) && t.isIdentifier(spec.imported) && spec.imported.name === 'loadOfflineBundle') {
|
|
169
|
+
hasManualLoad = true;
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
if (hasManualLoad) break;
|
|
175
|
+
}
|
|
176
|
+
if (!hasManualLoad) {
|
|
177
|
+
hasInjected = true;
|
|
178
|
+
|
|
179
|
+
// Compute relative path from this file to the bundle
|
|
180
|
+
const filename = getFilenameFromState(state) || '';
|
|
181
|
+
const bundleJsPath = nodePath.join(bundleDirPath, 'icons.js');
|
|
182
|
+
let relativeBundlePath;
|
|
183
|
+
if (filename) {
|
|
184
|
+
const fileDir = nodePath.dirname(filename);
|
|
185
|
+
relativeBundlePath = nodePath.relative(fileDir, bundleJsPath);
|
|
186
|
+
if (!relativeBundlePath.startsWith('.')) {
|
|
187
|
+
relativeBundlePath = './' + relativeBundlePath;
|
|
188
|
+
}
|
|
189
|
+
} else {
|
|
190
|
+
relativeBundlePath = bundleJsPath;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
// Import loadOfflineBundle from 'rn-iconify'
|
|
194
|
+
const loadBundleImport = t.importDeclaration([t.importSpecifier(t.identifier('_rnIconifyLoadBundle'), t.identifier('loadOfflineBundle'))], t.stringLiteral('rn-iconify'));
|
|
195
|
+
|
|
196
|
+
// Import bundle data
|
|
197
|
+
const bundleDataImport = t.importDeclaration([t.importDefaultSpecifier(t.identifier('_rnIconifyBundle'))], t.stringLiteral(relativeBundlePath));
|
|
198
|
+
|
|
199
|
+
// Call: _rnIconifyLoadBundle(_rnIconifyBundle)
|
|
200
|
+
const loadCall = t.expressionStatement(t.callExpression(t.identifier('_rnIconifyLoadBundle'), [t.identifier('_rnIconifyBundle')]));
|
|
201
|
+
|
|
202
|
+
// Insert after the current import
|
|
203
|
+
path.insertAfter([loadBundleImport, bundleDataImport, loadCall]);
|
|
204
|
+
if (opts.verbose) {
|
|
205
|
+
console.log(`[rn-iconify] Auto-injected bundle loading in ${filename}`);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
}
|
|
110
210
|
},
|
|
111
211
|
/**
|
|
112
212
|
* Visit JSX opening elements to find icon usage
|
|
113
|
-
* Handles: <Mdi name="home" />, <Heroicons name="user" />, etc.
|
|
114
213
|
*/
|
|
115
214
|
JSXOpeningElement(path, state) {
|
|
116
215
|
const opts = state.opts || {};
|
|
117
216
|
if (opts.disabled) return;
|
|
118
217
|
const filename = getFilenameFromState(state) || 'unknown';
|
|
119
|
-
|
|
120
|
-
// Get component name
|
|
121
218
|
const componentName = getComponentName(path.node, t);
|
|
122
219
|
if (!componentName) return;
|
|
123
|
-
|
|
124
|
-
// Check if it's a valid icon component
|
|
125
220
|
if (!VALID_COMPONENTS.has(componentName)) return;
|
|
126
|
-
|
|
127
|
-
// Get the icon name from the 'name' attribute
|
|
128
221
|
const iconName = getNameAttribute(path.node, t);
|
|
129
|
-
|
|
130
|
-
// Skip dynamic names
|
|
131
222
|
if (!iconName) {
|
|
132
223
|
if (opts.verbose) {
|
|
133
224
|
const loc = getNodeLocation(path.node);
|
|
@@ -135,35 +226,22 @@ export function createRnIconifyPlugin(babel) {
|
|
|
135
226
|
}
|
|
136
227
|
return;
|
|
137
228
|
}
|
|
138
|
-
|
|
139
|
-
// Get prefix from component name
|
|
140
229
|
const prefix = COMPONENT_PREFIX_MAP[componentName];
|
|
141
230
|
if (!prefix) return;
|
|
142
|
-
|
|
143
|
-
// Build full icon name
|
|
144
231
|
const fullIconName = `${prefix}:${iconName}`;
|
|
145
|
-
|
|
146
|
-
// Add to collector
|
|
147
232
|
const loc = getNodeLocation(path.node);
|
|
148
233
|
collector.add(fullIconName, filename, loc.line, loc.column);
|
|
149
234
|
},
|
|
150
235
|
/**
|
|
151
236
|
* Visit call expressions to find prefetchIcons usage
|
|
152
|
-
* Handles: prefetchIcons(['mdi:home', 'mdi:settings'])
|
|
153
237
|
*/
|
|
154
238
|
CallExpression(path, state) {
|
|
155
239
|
const opts = state.opts || {};
|
|
156
240
|
if (opts.disabled) return;
|
|
157
241
|
const filename = getFilenameFromState(state) || 'unknown';
|
|
158
|
-
|
|
159
|
-
// Check if this is a call to prefetchIcons
|
|
160
242
|
if (!isCallTo(path, 'prefetchIcons', t)) return;
|
|
161
|
-
|
|
162
|
-
// Get the first argument (should be an array of icon names)
|
|
163
243
|
const firstArg = path.node.arguments[0];
|
|
164
244
|
const iconNames = extractArrayStrings(firstArg, t);
|
|
165
|
-
|
|
166
|
-
// Add each icon to collector
|
|
167
245
|
const loc = getNodeLocation(path.node);
|
|
168
246
|
for (const iconName of iconNames) {
|
|
169
247
|
collector.add(iconName, filename, loc.line, loc.column);
|
|
@@ -174,33 +252,33 @@ export function createRnIconifyPlugin(babel) {
|
|
|
174
252
|
const opts = getPluginOptions(this);
|
|
175
253
|
if (opts.disabled) return;
|
|
176
254
|
const filename = getFilenameFromFile(file);
|
|
177
|
-
|
|
178
|
-
// Mark file as processed
|
|
179
255
|
if (filename) {
|
|
180
256
|
processedFiles.add(filename);
|
|
181
257
|
collector.markFileProcessed(filename);
|
|
182
258
|
}
|
|
183
259
|
|
|
184
260
|
// Debounce bundle generation
|
|
185
|
-
// Metro processes files in parallel, so we wait for a quiet period
|
|
186
261
|
if (bundleTimer) {
|
|
187
262
|
clearTimeout(bundleTimer);
|
|
188
263
|
}
|
|
189
264
|
bundleTimer = setTimeout(async () => {
|
|
190
|
-
|
|
191
|
-
if (collector.hasIcons() && !collector.isBundleGenerated()) {
|
|
265
|
+
if (!collector.isBundleGenerated()) {
|
|
192
266
|
collector.markBundleGenerated();
|
|
193
|
-
collector.printSummary();
|
|
194
|
-
try {
|
|
195
|
-
await generateBundle(collector.getIconNames(), opts, projectRoot);
|
|
196
|
-
} catch (error) {
|
|
197
|
-
console.error('[rn-iconify] Bundle generation error:', error);
|
|
198
|
-
}
|
|
199
267
|
|
|
200
|
-
//
|
|
268
|
+
// Merge AST-collected icons with scanner-collected icons
|
|
269
|
+
const astIcons = collector.getIconNames();
|
|
270
|
+
const allIcons = Array.from(new Set([...astIcons, ...scannedIcons]));
|
|
271
|
+
if (allIcons.length > 0) {
|
|
272
|
+
collector.printSummary();
|
|
273
|
+
try {
|
|
274
|
+
await generateBundle(allIcons, opts, projectRoot, existingBundle);
|
|
275
|
+
} catch (error) {
|
|
276
|
+
console.error('[rn-iconify] Bundle generation error:', error);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
201
279
|
buildInProgress = false;
|
|
202
280
|
}
|
|
203
|
-
}, 500);
|
|
281
|
+
}, 500);
|
|
204
282
|
}
|
|
205
283
|
};
|
|
206
284
|
}
|
|
@@ -211,6 +289,11 @@ export function createRnIconifyPlugin(babel) {
|
|
|
211
289
|
export function resetPluginState() {
|
|
212
290
|
processedFiles.clear();
|
|
213
291
|
buildInProgress = false;
|
|
292
|
+
hasInjected = false;
|
|
293
|
+
bundleExists = false;
|
|
294
|
+
bundleDirPath = '';
|
|
295
|
+
scannedIcons = [];
|
|
296
|
+
existingBundle = null;
|
|
214
297
|
if (bundleTimer) {
|
|
215
298
|
clearTimeout(bundleTimer);
|
|
216
299
|
bundleTimer = null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["COMPONENT_PREFIX_MAP","VALID_COMPONENTS","getFilenameFromState","getFilenameFromFile","getComponentName","getNameAttribute","isCallTo","extractArrayStrings","getNodeLocation","collector","generateBundle","hasPluginOpts","obj","opts","getPluginOptions","context","processedFiles","Set","buildInProgress","bundleTimer","projectRoot","createRnIconifyPlugin","babel","t","types","name","pre","file","disabled","initialize","filename","dir","substring","lastIndexOf","require","resolve","process","cwd","verbose","console","log","visitor","ImportDeclaration","path","state","source","node","value","startsWith","JSXOpeningElement","componentName","has","iconName","loc","line","prefix","fullIconName","add","column","CallExpression","firstArg","arguments","iconNames","post","markFileProcessed","clearTimeout","setTimeout","
|
|
1
|
+
{"version":3,"names":["nodePath","COMPONENT_PREFIX_MAP","VALID_COMPONENTS","getFilenameFromState","getFilenameFromFile","getComponentName","getNameAttribute","isCallTo","extractArrayStrings","getNodeLocation","collector","generateBundle","readExistingBundle","resolveBundleDir","scanProjectForIcons","hasPluginOpts","obj","opts","getPluginOptions","context","processedFiles","Set","buildInProgress","bundleTimer","projectRoot","bundleExists","bundleDirPath","hasInjected","scannedIcons","existingBundle","createRnIconifyPlugin","babel","t","types","name","pre","file","disabled","initialize","filename","dir","substring","lastIndexOf","require","resolve","process","cwd","outputPath","bundleJsonPath","join","verbose","error","console","warn","log","length","visitor","ImportDeclaration","path","state","source","node","value","startsWith","autoInject","program","findParent","p","isProgram","hasManualLoad","stmt","body","isImportDeclaration","spec","specifiers","isImportSpecifier","isIdentifier","imported","bundleJsPath","relativeBundlePath","fileDir","dirname","relative","loadBundleImport","importDeclaration","importSpecifier","identifier","stringLiteral","bundleDataImport","importDefaultSpecifier","loadCall","expressionStatement","callExpression","insertAfter","JSXOpeningElement","componentName","has","iconName","loc","line","prefix","fullIconName","add","column","CallExpression","firstArg","arguments","iconNames","post","markFileProcessed","clearTimeout","setTimeout","isBundleGenerated","markBundleGenerated","astIcons","getIconNames","allIcons","Array","from","printSummary","resetPluginState","clear","reset"],"sourceRoot":"../../../src","sources":["babel/plugin.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Project File Scanner
|
|
3
|
+
* Synchronously scans project source files for icon usage using regex
|
|
4
|
+
* Used by the Babel plugin to discover all icons before the build
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import { COMPONENT_PREFIX_MAP } from './types';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Scanner options
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
const DEFAULT_EXTENSIONS = ['.tsx', '.jsx', '.ts', '.js'];
|
|
16
|
+
const DEFAULT_EXCLUDE_DIRS = new Set(['node_modules', 'lib', '.rn-iconify', '__tests__', '__mocks__', 'dist', '.expo', '.git', 'android', 'ios', 'coverage']);
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Usage.json file structure (from Metro dev server learning)
|
|
20
|
+
*/
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Build regex patterns for icon component detection
|
|
24
|
+
* Matches: <Ion name="home" /> or <Ion name={'home'} /> or <Ion name={`home`} />
|
|
25
|
+
*/
|
|
26
|
+
function buildComponentRegex() {
|
|
27
|
+
const componentNames = Object.keys(COMPONENT_PREFIX_MAP).join('|');
|
|
28
|
+
return new RegExp(`<(?:${componentNames})\\s[^>]*?name=(?:"([^"]+)"|\\{'([^']+)'\\}|\\{"([^"]+)"\\}|\\\`([^\`]+)\\\`)`, 'g');
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Build regex to extract component name from JSX
|
|
33
|
+
*/
|
|
34
|
+
function buildComponentNameRegex() {
|
|
35
|
+
const componentNames = Object.keys(COMPONENT_PREFIX_MAP).join('|');
|
|
36
|
+
return new RegExp(`<(${componentNames})\\s`, 'g');
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Regex to match prefetchIcons calls
|
|
41
|
+
* Matches: prefetchIcons(['ion:home', 'mdi:settings'])
|
|
42
|
+
*/
|
|
43
|
+
const PREFETCH_REGEX = /prefetchIcons\(\s*\[([^\]]*)\]/g;
|
|
44
|
+
|
|
45
|
+
/**
|
|
46
|
+
* Regex to extract string items from array
|
|
47
|
+
*/
|
|
48
|
+
const STRING_ITEM_REGEX = /['"]([^'"]+)['"]/g;
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* Scan a single file for icon usage
|
|
52
|
+
*/
|
|
53
|
+
function scanFile(filePath, componentRegex, componentNameRegex, verbose) {
|
|
54
|
+
const icons = [];
|
|
55
|
+
let content;
|
|
56
|
+
try {
|
|
57
|
+
content = fs.readFileSync(filePath, 'utf-8');
|
|
58
|
+
} catch {
|
|
59
|
+
return icons;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
// Skip files that don't import from rn-iconify
|
|
63
|
+
if (!content.includes('rn-iconify') && !content.includes('prefetchIcons')) {
|
|
64
|
+
return icons;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Scan for JSX component usage: <Ion name="home" />
|
|
68
|
+
componentRegex.lastIndex = 0;
|
|
69
|
+
componentNameRegex.lastIndex = 0;
|
|
70
|
+
|
|
71
|
+
// Find all component usages with name attribute
|
|
72
|
+
const fullPattern = new RegExp(componentRegex.source, 'g');
|
|
73
|
+
let match;
|
|
74
|
+
while ((match = fullPattern.exec(content)) !== null) {
|
|
75
|
+
const iconName = match[1] || match[2] || match[3] || match[4];
|
|
76
|
+
if (!iconName) continue;
|
|
77
|
+
|
|
78
|
+
// Find the component name for this match by searching backwards
|
|
79
|
+
const beforeMatch = content.substring(0, match.index + 20);
|
|
80
|
+
const namePattern = new RegExp(componentNameRegex.source, 'g');
|
|
81
|
+
let nameMatch;
|
|
82
|
+
let lastNameMatch = null;
|
|
83
|
+
while ((nameMatch = namePattern.exec(beforeMatch)) !== null) {
|
|
84
|
+
if (nameMatch.index <= match.index) {
|
|
85
|
+
lastNameMatch = nameMatch;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
if (lastNameMatch) {
|
|
89
|
+
const componentName = lastNameMatch[1];
|
|
90
|
+
const prefix = COMPONENT_PREFIX_MAP[componentName];
|
|
91
|
+
if (prefix) {
|
|
92
|
+
icons.push(`${prefix}:${iconName}`);
|
|
93
|
+
if (verbose) {
|
|
94
|
+
console.log(`[rn-iconify:scanner] Found ${prefix}:${iconName} in ${filePath}`);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Scan for prefetchIcons calls
|
|
101
|
+
PREFETCH_REGEX.lastIndex = 0;
|
|
102
|
+
while ((match = PREFETCH_REGEX.exec(content)) !== null) {
|
|
103
|
+
const arrayContent = match[1];
|
|
104
|
+
if (!arrayContent) continue;
|
|
105
|
+
STRING_ITEM_REGEX.lastIndex = 0;
|
|
106
|
+
let itemMatch;
|
|
107
|
+
while ((itemMatch = STRING_ITEM_REGEX.exec(arrayContent)) !== null) {
|
|
108
|
+
const iconName = itemMatch[1];
|
|
109
|
+
if (iconName && iconName.includes(':')) {
|
|
110
|
+
icons.push(iconName);
|
|
111
|
+
if (verbose) {
|
|
112
|
+
console.log(`[rn-iconify:scanner] Found prefetch ${iconName} in ${filePath}`);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return icons;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Recursively walk a directory synchronously
|
|
122
|
+
*/
|
|
123
|
+
function walkDirSync(dir, extensions, excludeDirs, files) {
|
|
124
|
+
let entries;
|
|
125
|
+
try {
|
|
126
|
+
entries = fs.readdirSync(dir, {
|
|
127
|
+
withFileTypes: true
|
|
128
|
+
});
|
|
129
|
+
} catch {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
for (const entry of entries) {
|
|
133
|
+
if (entry.isDirectory()) {
|
|
134
|
+
if (excludeDirs.has(entry.name)) continue;
|
|
135
|
+
walkDirSync(path.join(dir, entry.name), extensions, excludeDirs, files);
|
|
136
|
+
} else if (entry.isFile()) {
|
|
137
|
+
const ext = path.extname(entry.name);
|
|
138
|
+
if (extensions.includes(ext)) {
|
|
139
|
+
files.push(path.join(dir, entry.name));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Read usage.json from the .rn-iconify directory
|
|
147
|
+
*/
|
|
148
|
+
function readUsageFile(projectRoot, verbose) {
|
|
149
|
+
const usagePath = path.join(projectRoot, '.rn-iconify', 'usage.json');
|
|
150
|
+
try {
|
|
151
|
+
if (!fs.existsSync(usagePath)) return [];
|
|
152
|
+
const content = fs.readFileSync(usagePath, 'utf-8');
|
|
153
|
+
const usage = JSON.parse(content);
|
|
154
|
+
if (usage.version === '1.0.0' && Array.isArray(usage.icons)) {
|
|
155
|
+
if (verbose) {
|
|
156
|
+
console.log(`[rn-iconify:scanner] Read ${usage.icons.length} icons from usage.json`);
|
|
157
|
+
}
|
|
158
|
+
return usage.icons;
|
|
159
|
+
}
|
|
160
|
+
} catch {
|
|
161
|
+
if (verbose) {
|
|
162
|
+
console.log('[rn-iconify:scanner] Could not read usage.json');
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
return [];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* Scan the entire project for icon usage
|
|
170
|
+
* Returns a deduplicated array of full icon names (e.g., ['ion:home', 'mdi:settings'])
|
|
171
|
+
*/
|
|
172
|
+
export function scanProjectForIcons(projectRoot, options = {}) {
|
|
173
|
+
const {
|
|
174
|
+
extensions = DEFAULT_EXTENSIONS,
|
|
175
|
+
excludeDirs,
|
|
176
|
+
verbose = false
|
|
177
|
+
} = options;
|
|
178
|
+
const excludeSet = excludeDirs ? new Set(excludeDirs) : DEFAULT_EXCLUDE_DIRS;
|
|
179
|
+
const startTime = Date.now();
|
|
180
|
+
|
|
181
|
+
// 1. Walk the project directory
|
|
182
|
+
const files = [];
|
|
183
|
+
walkDirSync(projectRoot, extensions, excludeSet, files);
|
|
184
|
+
if (verbose) {
|
|
185
|
+
console.log(`[rn-iconify:scanner] Found ${files.length} source files to scan`);
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
// 2. Build regex patterns once
|
|
189
|
+
const componentRegex = buildComponentRegex();
|
|
190
|
+
const componentNameRegex = buildComponentNameRegex();
|
|
191
|
+
|
|
192
|
+
// 3. Scan each file
|
|
193
|
+
const allIcons = new Set();
|
|
194
|
+
for (const file of files) {
|
|
195
|
+
const icons = scanFile(file, componentRegex, componentNameRegex, verbose);
|
|
196
|
+
for (const icon of icons) {
|
|
197
|
+
allIcons.add(icon);
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
// 4. Merge with usage.json (dev-learned icons)
|
|
202
|
+
const usageIcons = readUsageFile(projectRoot, verbose);
|
|
203
|
+
for (const icon of usageIcons) {
|
|
204
|
+
allIcons.add(icon);
|
|
205
|
+
}
|
|
206
|
+
const result = Array.from(allIcons);
|
|
207
|
+
const elapsed = Date.now() - startTime;
|
|
208
|
+
if (verbose) {
|
|
209
|
+
console.log(`[rn-iconify:scanner] Scan complete: ${result.length} unique icons from ${files.length} files in ${elapsed}ms`);
|
|
210
|
+
}
|
|
211
|
+
return result;
|
|
212
|
+
}
|
|
213
|
+
//# sourceMappingURL=scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["fs","path","COMPONENT_PREFIX_MAP","DEFAULT_EXTENSIONS","DEFAULT_EXCLUDE_DIRS","Set","buildComponentRegex","componentNames","Object","keys","join","RegExp","buildComponentNameRegex","PREFETCH_REGEX","STRING_ITEM_REGEX","scanFile","filePath","componentRegex","componentNameRegex","verbose","icons","content","readFileSync","includes","lastIndex","fullPattern","source","match","exec","iconName","beforeMatch","substring","index","namePattern","nameMatch","lastNameMatch","componentName","prefix","push","console","log","arrayContent","itemMatch","walkDirSync","dir","extensions","excludeDirs","files","entries","readdirSync","withFileTypes","entry","isDirectory","has","name","isFile","ext","extname","readUsageFile","projectRoot","usagePath","existsSync","usage","JSON","parse","version","Array","isArray","length","scanProjectForIcons","options","excludeSet","startTime","Date","now","allIcons","file","icon","add","usageIcons","result","from","elapsed"],"sourceRoot":"../../../src","sources":["babel/scanner.ts"],"mappings":"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","ignoreList":[]}
|