i18ntk
Version:
🚀 The fastest i18n toolkit with 97% performance boost! Zero-dependency, enterprise-grade internationalization for React, Vue, Angular, Python, Java, PHP & more. Features PIN protection, auto framework detection, 7+ UI languages, and comprehensive transla
21 lines (20 loc) • 667 B
JavaScript
function extract(content, patterns = []) {
const keys = new Set();
if (!Array.isArray(patterns)) return [];
if (content === null || content === undefined) return [];
const contentStr = String(content);
for (const pattern of patterns) {
try {
let regex = pattern instanceof RegExp ? new RegExp(pattern.source, 'g') : new RegExp(pattern, 'g');
let match;
while ((match = regex.exec(contentStr)) !== null) {
if (match[1]) keys.add(match[1]);
if (regex.lastIndex === 0) break;
}
} catch (e) {
// skip invalid patterns
}
}
return Array.from(keys);
}
module.exports = { extract };