src/scanners/binary.js (31 lines of code) (raw):

import BaseScanner from 'scanners/base'; import * as messages from 'messages'; import * as constants from 'const'; export default class BinaryScanner extends BaseScanner { static get fileResultType() { return 'chunk'; } static get scannerName() { return 'binary'; } check(buffer, values) { if (Object.keys(values).some((v) => values[v] !== buffer[v])) { return; } this.linterMessages.push({ ...messages.FLAGGED_FILE_TYPE, type: constants.VALIDATION_NOTICE, file: this.filename, }); } async scan() { const buffer = this.contents; constants.FLAGGED_FILE_MAGIC_NUMBERS.forEach((entry) => { this.check(buffer, entry); }); return { linterMessages: this.linterMessages, scannedFiles: this.scannedFiles, }; } }