ts-md5
Version:
TypeScript MD5 implementation
85 lines (52 loc) • 2.14 kB
Markdown
# Introduction
A MD5 implementation for TypeScript
* Can handle Unicode strings
* Supports incremental hashing
* Works with Files and Blobs
Based on work by
* Joseph Myers: http://www.myersdaily.org/joseph/javascript/md5-text.html
* André Cruz: https://github.com/satazor/SparkMD5
* Raymond Hill: https://github.com/gorhill/yamd5.js
## Usage
1. Import the class
* `import {Md5} from 'ts-md5/dist/md5';`
2. Hash some things
* `Md5.hashStr('blah blah blah')` => hex:string
* `Md5.hashStr('blah blah blah', true)` => raw:Int32Array(4)
* `Md5.hashAsciiStr('blah blah blah')` => hex:string
* `Md5.hashAsciiStr('blah blah blah', true)` => raw:Int32Array(4)
For more complex uses:
```typescript
md5 = new Md5();
// Append incrementally your file or other input
// Methods are chainable
md5.appendStr('somestring')
.appendAsciiStr('a different string')
.appendByteArray(blob);
// Generate the MD5 hex string
md5.end();
```
## Building from src
The project is written in typescript and transpiled into ES5.
1. Install TypeScript: `npm install -g typescript` (if you haven't already)
2. Configure compile options in `tsconfig.json`
3. Perform build using: `tsc`
You can find more information here: https://github.com/Microsoft/TypeScript/wiki/tsconfig.json
## Type Definitions
These allow projects like jasmine to work with .ts files. This is here as a guide more than anything else.
See: https://github.com/typings/typings
1. Install typings: `npm install typings --global` (if you haven't already)
2. Download definitions: `typings install jasmine --ambient --save`
* Note: ambient means we are searching in https://github.com/DefinitelyTyped/DefinitelyTyped
3. Reference the typings using `/// <reference path="../typings/main.d.ts" />` from tests
To update typings:
* From command line run: `typings install`
## Scripts
1. Build Script: `npm run build`
2. Test Script: `npm run test`
## Publishing
1. Sign up to https://www.npmjs.com/
2. Configure `package.json` https://docs.npmjs.com/files/package.json
3. run `npm publish` https://docs.npmjs.com/cli/publish
# License
MIT