feat: 初始化画个标仓库 - AI驱动设计系统(BYOK模式) - 224源/371504图标+25海报源+130技能
This commit is contained in:
+38
@@ -0,0 +1,38 @@
|
||||
/* 用 jsDelivr API 找 24 坐标系图标库的 sprite 文件 */
|
||||
const https = require('https');
|
||||
function fetch(url) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const req = https.get(url, { timeout: 15000 }, (res) => {
|
||||
if (res.statusCode !== 200) { res.resume(); return reject(new Error(res.statusCode + ' ' + url)); }
|
||||
const chunks = [];
|
||||
res.on('data', c => chunks.push(c));
|
||||
res.on('end', () => resolve(Buffer.concat(chunks).toString('utf8')));
|
||||
});
|
||||
req.on('error', reject);
|
||||
req.on('timeout', () => req.destroy(new Error('timeout')));
|
||||
});
|
||||
}
|
||||
async function tree(pkg) {
|
||||
try {
|
||||
const j = JSON.parse(await fetch(`https://data.jsdelivr.com/v1/packages/npm/${pkg}`));
|
||||
const files = j.files || [];
|
||||
const svgs = [];
|
||||
(function walk(list, prefix) {
|
||||
for (const f of list) {
|
||||
if (f.type === 'directory') walk(f.files || [], prefix + f.name + '/');
|
||||
else if (/\.svg$/.test(f.name)) svgs.push(prefix + f.name);
|
||||
}
|
||||
})(files, '');
|
||||
const sprite = svgs.filter(s => /sprite|symbols/i.test(s));
|
||||
console.log(`\n[${pkg}] 总svg文件 ${svgs.length} 个; sprite/symbols 候选:`);
|
||||
console.log(' ', sprite.slice(0, 8).join('\n ') || '(无)');
|
||||
console.log(' 路径示例:', svgs.slice(0, 3).join(', '));
|
||||
} catch (e) {
|
||||
console.log(`[${pkg}] FAIL ${e.message}`);
|
||||
}
|
||||
}
|
||||
(async () => {
|
||||
await tree('remixicon@4.5.0');
|
||||
await tree('@phosphor-icons/core@2.1.7');
|
||||
await tree('@material-design-icons/svg@0.14.13');
|
||||
})();
|
||||
Reference in New Issue
Block a user