It's a relatively simple NodeJS program that allows you to get the base64 encoded SHA-256 hash for a JS file or the code itself that you could later on use as the integrity of a script that you would integrate to a page so it won't be flagged by CSP or else.
To install it you need to execute the following:
npm i hashmyjs
Note: Don't forget to use
--save-dev if appropriate.
const hmj = ;//Hashing from the STDIN (followed by a new line: `\$`, `\EOF`) or from file passed as argumentshmj;//Or if you want to hash code that is already present in your script:let code = `...`;let digest = hmjhashcode;
In the CLI
hashmyjs -- [options] [files] #If used via an npm script
Usage: hashmyjs [options] [files...]A simple NodeJS JS file/code hasher.Options:-V, --version output the version number-f, --format [format] Specify the format of the output (text (default), json, csv) (default: text)-o, --output [path] Output to a file instead of in the STDOUT (default: stdout)-i, --interactive Forces to read the input from the STDIN-p, --prettify Prettify the output-h, --help output usage information
If you use wildcard
* in the CLI to get files, NodeJS will have a hard time getting the file from the right URL so it will lead in errors.
See this for more information.
If you discover bugs, errors or/and have suggestions/feedback please create an issue or/and submit a PR.
If you want to contribute, make sure you stick with the coding style that ESLint is enforcing (cf. configuration file). To check if a file stick to the standards:
eslint -c ./config/.eslintrc.js yourFile.js#Or `npm lint` if appropriate
To fix formatting errors and such, run:
./fixjs.sh [your js files seperated by spaces]
🐛 💻 📖 🤔 💬 👀 🛡️ ⚠️
Semantic Release Bot