d3ro-voice/apps/desktop/check_all_imports.cjs
Yun Chan 708e20f747
Some checks failed
CI Pipeline / Code Quality & Typecheck (push) Waiting to run
CI Pipeline / Test Suite (macos-latest) (push) Blocked by required conditions
CI Pipeline / Test Suite (ubuntu-latest) (push) Blocked by required conditions
CI Pipeline / Test Suite (windows-latest) (push) Blocked by required conditions
CI Pipeline / Build Validation (admin) (push) Blocked by required conditions
CI Pipeline / Build Validation (desktop) (push) Blocked by required conditions
Deploy Landing Page / deploy (push) Blocked by required conditions
Deploy Landing Page / build (push) Waiting to run
Release & Packaging Pipeline / Build & Publish Admin Docker Image (push) Failing after 8s
Release & Code Signing CA Pipeline / build-and-sign-windows (push) Failing after 1m51s
Build macOS / Build & Package (macOS) (push) Failing after 4s
Build macOS / Build & Package (macOS)-1 (push) Failing after 5s
Release & Code Signing CA Pipeline / build-and-sign-macos (push) Failing after 3s
Release & Packaging Pipeline / Package macOS Desktop App (push) Failing after 4s
Release & Packaging Pipeline / Package Windows Desktop App (push) Failing after 2m28s
Release & Packaging Pipeline / Publish Official GitHub Release (push) Has been skipped
feat: complete release preparation, 10+ ad mediation, CI/CD, and docker deployment
2026-08-20 11:12:05 +09:00

36 lines
1.3 KiB
JavaScript

const fs = require('fs');
const path = require('path');
function walk(dir) {
let results = [];
const list = fs.readdirSync(dir);
list.forEach(function(file) {
file = path.join(dir, file);
const stat = fs.statSync(file);
if (stat && stat.isDirectory()) {
results = results.concat(walk(file));
} else {
if (file.endsWith('.tsx') || file.endsWith('.ts')) {
results.push(file);
}
}
});
return results;
}
const files = walk(path.join(__dirname, 'src/renderer'));
const d3roGlobals = ['d3roPalette', 'd3roTypo', 'd3roRadius', 'd3roShadow', 'd3roFontSans', 'd3roFontMono'];
files.forEach(file => {
const content = fs.readFileSync(file, 'utf8');
d3roGlobals.forEach(token => {
if (content.includes(token)) {
const isImported = content.includes(token + ' ') || content.includes(token + ',') || content.includes(token + '}') || content.includes(token + '\n');
const hasImportLine = /import\s+\{[^}]*\}\s+from\s+['"]@d3ro\/ui\/theme['"]/.test(content);
if (!hasImportLine || !content.match(new RegExp(`import\\s+\\{[^}]*\\b${token}\\b[^}]*\\}\\s+from\\s+['"]@d3ro\\/ui\\/theme['"]`))) {
console.log(`WARNING: ${path.relative(__dirname, file)} uses ${token} but might be missing import!`);
}
}
});
});
console.log('Finished import check.');