encoding-checker
Version:
🔨 Tool to investigate files with different encoding than passed
48 lines (38 loc) • 1.05 kB
JavaScript
const jschardet = require('jschardet');
const fs = require('fs');
function fetchCharset(file) {
return new Promise((resolve) => {
fs.readFile(file, (error, data) => {
if (error) {
return resolve({
error: error
});
}
const result = jschardet.detect(data);
const encoding = result.encoding
? result.encoding.toLowerCase()
: 'unknown'.red;
resolve({
file: file,
encoding: encoding
});
});
});
}
function isFile(path) {
return fs.lstatSync(path).isFile();
}
async function verifyCharsetFileList(ignoreEncoding, matches) {
const files = matches.filter(isFile);
const charset = await Promise.all(
files.map(fetchCharset)
);
return charset
.filter(({ encoding }) => {
return (encoding !== ignoreEncoding);
});
}
module.exports = {
verify: verifyCharsetFileList
};
;