diff --git a/build.config.js b/build.config.js new file mode 100644 index 0000000..210e364 --- /dev/null +++ b/build.config.js @@ -0,0 +1,7 @@ +export default { + entries: ['./index.js'], + rollup: { + emitCJS: true, + }, + failOnWarn: false, +}; diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..ac8fb58 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,35 @@ +/// + +/** + * These definitions were written by BendingBender (https://github.com/BendingBender) + */ + +export = crc32; + +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 e9f5189..dc29702 100644 --- a/package.json +++ b/package.json @@ -20,12 +20,12 @@ "type": "git", "url": "git://github.com/brianloveswords/buffer-crc32.git" }, - "main": "index.js", "scripts": { "test": "tap tests/*.test.js --reporter classic", + "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}\"" }, - "type": "commonjs", "dependencies": {}, "devDependencies": { "prettier": "^3.2.4", @@ -36,7 +36,19 @@ "node": ">=8.0.0" }, "license": "MIT", + "type": "commonjs", + "exports": { + ".": { + "import": "./dist/index.mjs", + "require": "./dist/index.cjs" + } + }, + "main": "./dist/index.cjs", + "types": "./index.d.ts", "files": [ - "index.js" + "dist", + "index.d.ts", + "LICENSE", + "README.md" ] }