diff --git a/build.config.js b/build.config.js index 6ad5e9d..210e364 100644 --- a/build.config.js +++ b/build.config.js @@ -1,6 +1,7 @@ export default { - entries: ["./index.js"], - rollup: { - emitCJS: true, - }, -}; \ No newline at end of file + entries: ['./index.js'], + rollup: { + emitCJS: true, + }, + failOnWarn: false, +}; diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..890c396 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,56 @@ +/// + +/** + * These definitions were written by BendingBender (https://github.com/BendingBender) + */ + +export = crc32; + +/** + * crc32 that works with binary data and fancy character sets. + * + * @example + * import crc32 = require('buffer-crc32'); + * + * // works with buffers + * const buf = Buffer.from([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]); + * crc32(buf); // -> + * + * // will cast to buffer if given a string, so you can + * // directly use foreign characters safely + * crc32('自動販売機'); // -> + * + * // and works in append mode too + * let partialCrc = crc32('hey'); + * partialCrc = crc32(' ', partialCrc); + * partialCrc = crc32('sup', partialCrc); + * partialCrc = crc32(' ', partialCrc); + * const finalCrc = crc32('bros', partialCrc); // -> + */ +declare function crc32(input: string | Buffer, partialCrc?: Buffer | number): Buffer; + +declare namespace crc32 { + /** + * Convenience method that returns a signed int instead of a `Buffer`. + * + * @example + * import crc32 = require('buffer-crc32'); + * + * // works with buffers + * const buf = Buffer.from([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]); + * crc32.signed(buf); // -> -1805997238 + */ + function signed(buffer: string | Buffer, partialCrc?: Buffer | number): number; + + /** + * Convenience method that returns an unsigned int instead of a `Buffer`. + * + * @example + * import crc32 = require('buffer-crc32'); + * + * // works with buffers + * const buf = Buffer.from([0x00, 0x73, 0x75, 0x70, 0x20, 0x62, 0x72, 0x6f, 0x00]); + * crc32.unsigned(buf); // -> 2488970058 + */ + function unsigned(buffer: string | Buffer, partialCrc?: Buffer | number): number; +} diff --git a/package.json b/package.json index 5023474..4ee918e 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "author": "Brian J. Brennan ", "name": "buffer-crc32", "description": "A pure javascript CRC32 algorithm that plays nice with binary data", - "version": "0.2.13", + "version": "1.0.0-RC9", "licenses": [ { "type": "MIT", @@ -22,7 +22,7 @@ }, "scripts": { "test": "tap tests/*.test.js --reporter classic", - "build": "npx unbuild@2.0.0", + "build": "npx unbuild@2.0.0 && npx cpy-cli index.d.ts dist --rename=index.d.cts && npx cpy-cli index.d.ts dist --rename=index.d.mts", "prepublishOnly": "npm run build", "format": "prettier --write --log-level warn \"**/*.{json,md,js}\"" }, @@ -36,6 +36,7 @@ "node": ">=8.0.0" }, "license": "MIT", + "type": "commonjs", "exports": { ".": { "import": "./dist/index.mjs", @@ -43,7 +44,11 @@ } }, "main": "./dist/index.cjs", + "types": "./index.d.ts", "files": [ - "dist" + "dist", + "index.d.ts", + "LICENSE", + "README.md" ] }