From 0e7f182353cc090768e44cfe8e5ac1483d2183fb Mon Sep 17 00:00:00 2001 From: shlroland <shlroland1995@gmail.com> Date: Tue, 17 Dec 2024 20:53:13 +0800 Subject: [PATCH] add esm exports --- package.json | 15 +++++++++++++-- test/bit-set-test.js | 2 +- test/bloom-filter-test.js | 2 +- test/bucket-test.js | 2 +- test/compatibility-test.js | 2 +- test/count-min-sketch-test.js | 2 +- test/counting-bloom-filter-test.js | 2 +- test/cuckoo-filter-test.js | 2 +- test/hyperloglog-test.js | 2 +- test/iblt-test.js | 2 +- test/min-hash-test.js | 2 +- test/partitioned-bloom-filter-test.js | 2 +- test/scalable-bloom-filter-test.js | 2 +- test/topk-test.js | 2 +- test/utils-test.js | 6 +++--- test/xor-filter-test.js | 2 +- tsconfig.esm.json | 12 ++++++++++++ tsconfig.json | 10 ++++++---- 18 files changed, 48 insertions(+), 23 deletions(-) create mode 100644 tsconfig.esm.json diff --git a/package.json b/package.json index 70be52bb..7709f71a 100644 --- a/package.json +++ b/package.json @@ -2,10 +2,21 @@ "name": "bloom-filters", "version": "3.0.4", "description": "JS implementation of probabilistic data structures: Bloom Filter (and its derived), HyperLogLog, Count-Min Sketch, Top-K and MinHash", - "main": "dist/api.js", + "main": "dist/cjs/api.js", + "module": "dist/esm/api.js", + "types": "dist/esm/api.d.ts", + "exports": { + ".": { + "require": "./dist/cjs/api.js", + "import": "./dist/esm/api.js", + "types": "./dist/esm/api.d.ts" + } + }, "type": "commonjs", "scripts": { - "build": "tsc", + "build": "yarn build:cjs && yarn build:esm", + "build:cjs": "tsc -p tsconfig.json", + "build:esm": "tsc -p tsconfig.esm.json", "pretest": "yarn lint && yarn build", "test": "mocha test/**/*-test.js --trace-deprecation --timeout=60000", "doc": "typedoc --sort alphabetical --out docs/ --emit both --includeVersion src/api.ts", diff --git a/test/bit-set-test.js b/test/bit-set-test.js index 959dff32..d7cef112 100644 --- a/test/bit-set-test.js +++ b/test/bit-set-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {BitSet} = require('../dist/api') +const {BitSet} = require('../dist/cjs/api.js') describe('BitSet', () => { it('is initially clear', () => { diff --git a/test/bloom-filter-test.js b/test/bloom-filter-test.js index b7c77b6f..458e960f 100644 --- a/test/bloom-filter-test.js +++ b/test/bloom-filter-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {BloomFilter} = require('../dist/api.js') +const {BloomFilter} = require('../dist/cjs/api.js') describe('BloomFilter', () => { const targetRate = 0.1 diff --git a/test/bucket-test.js b/test/bucket-test.js index 8e53cd5e..ca595d82 100644 --- a/test/bucket-test.js +++ b/test/bucket-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const Bucket = require('../dist/cuckoo/bucket.js').default +const Bucket = require('../dist/cjs/cuckoo/bucket.js').default describe('Bucket', () => { describe('#isFree', () => { diff --git a/test/compatibility-test.js b/test/compatibility-test.js index 661b356c..0cb0d4ca 100644 --- a/test/compatibility-test.js +++ b/test/compatibility-test.js @@ -24,7 +24,7 @@ SOFTWARE. require('chai').should() const {expect} = require('chai') -const {BloomFilter, DeprecatedHashing} = require('../dist/api.js') +const {BloomFilter, DeprecatedHashing} = require('../dist/cjs/api.js') describe('BloomFilter Compatibility (only) between versions', () => { it('1.3.4 compatibility (issue #49)', () => { diff --git a/test/count-min-sketch-test.js b/test/count-min-sketch-test.js index f9e4b63e..630b5ee0 100644 --- a/test/count-min-sketch-test.js +++ b/test/count-min-sketch-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {CountMinSketch} = require('../dist/api.js') +const {CountMinSketch} = require('../dist/cjs/api.js') describe('CountMinSketch', () => { const delta = 0.999 diff --git a/test/counting-bloom-filter-test.js b/test/counting-bloom-filter-test.js index 262de9cd..2ba7c9d8 100644 --- a/test/counting-bloom-filter-test.js +++ b/test/counting-bloom-filter-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {CountingBloomFilter} = require('../dist/api.js') +const {CountingBloomFilter} = require('../dist/cjs/api.js') describe('CountingBloomFilter', () => { const targetRate = 0.1 diff --git a/test/cuckoo-filter-test.js b/test/cuckoo-filter-test.js index 908868f9..60e26b4d 100644 --- a/test/cuckoo-filter-test.js +++ b/test/cuckoo-filter-test.js @@ -25,7 +25,7 @@ SOFTWARE. const chai = require('chai') chai.should() chai.expect() -const {CuckooFilter} = require('../dist/api.js') +const {CuckooFilter} = require('../dist/cjs/api.js') describe('CuckooFilter', () => { describe('#_locations', () => { diff --git a/test/hyperloglog-test.js b/test/hyperloglog-test.js index fbeedfa0..077bf238 100644 --- a/test/hyperloglog-test.js +++ b/test/hyperloglog-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {HyperLogLog} = require('../dist/api.js') +const {HyperLogLog} = require('../dist/cjs/api.js') describe('HyperLogLog', () => { describe('#update', () => { diff --git a/test/iblt-test.js b/test/iblt-test.js index b91925aa..0210865a 100644 --- a/test/iblt-test.js +++ b/test/iblt-test.js @@ -24,7 +24,7 @@ SOFTWARE. require('chai').should() require('chai').expect() -const {InvertibleBloomFilter} = require('../dist/api.js') +const {InvertibleBloomFilter} = require('../dist/cjs/api.js') const random = require('random') const seedrandom = require('seedrandom') diff --git a/test/min-hash-test.js b/test/min-hash-test.js index 4bc9802c..1a633ef8 100644 --- a/test/min-hash-test.js +++ b/test/min-hash-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {MinHashFactory, MinHash} = require('../dist/api.js') +const {MinHashFactory, MinHash} = require('../dist/cjs/api.js') const range = require('lodash/range') const intersection = require('lodash/intersection') const union = require('lodash/union') diff --git a/test/partitioned-bloom-filter-test.js b/test/partitioned-bloom-filter-test.js index d5f4173f..6c4a3273 100644 --- a/test/partitioned-bloom-filter-test.js +++ b/test/partitioned-bloom-filter-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {PartitionedBloomFilter} = require('../dist/api.js') +const {PartitionedBloomFilter} = require('../dist/cjs/api.js') describe('PartitionedBloomFilter', () => { const targetRate = 0.001 diff --git a/test/scalable-bloom-filter-test.js b/test/scalable-bloom-filter-test.js index 53d96cb7..956df7b9 100644 --- a/test/scalable-bloom-filter-test.js +++ b/test/scalable-bloom-filter-test.js @@ -24,7 +24,7 @@ SOFTWARE. require('chai').should() const {expect} = require('chai') -const {ScalableBloomFilter} = require('../dist/api.js') +const {ScalableBloomFilter} = require('../dist/cjs/api.js') describe('ScalableBloomFilter', () => { const targetRate = 0.1 diff --git a/test/topk-test.js b/test/topk-test.js index 2aaa8e03..e64d0dff 100644 --- a/test/topk-test.js +++ b/test/topk-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {TopK} = require('../dist/api.js') +const {TopK} = require('../dist/cjs/api.js') describe('TopK', () => { const lessThanOrEqualTestCaseItems = [ diff --git a/test/utils-test.js b/test/utils-test.js index ce0c1b66..c04d05b5 100644 --- a/test/utils-test.js +++ b/test/utils-test.js @@ -29,12 +29,12 @@ const { xorBuffer, getDefaultSeed, isEmptyBuffer, -} = require('../dist/utils') -const {BloomFilter, BaseFilter} = require('../dist/api.js') +} = require('../dist/cjs/utils.js') +const {BloomFilter, BaseFilter} = require('../dist/cjs/api.js') const XXH = require('xxhashjs') const range = require('lodash/range') const seed = getDefaultSeed() -const {Hashing} = require('../dist/api') +const {Hashing} = require('../dist/cjs/api.js') describe('Utils', () => { describe('#allocateArray', () => { diff --git a/test/xor-filter-test.js b/test/xor-filter-test.js index 42989153..3bbb8c38 100644 --- a/test/xor-filter-test.js +++ b/test/xor-filter-test.js @@ -23,7 +23,7 @@ SOFTWARE. */ require('chai').should() -const {XorFilter} = require('../dist/api.js') +const {XorFilter} = require('../dist/cjs/api.js') describe('XorFilter', () => { const elements = ['1'] diff --git a/tsconfig.esm.json b/tsconfig.esm.json new file mode 100644 index 00000000..4eabd2df --- /dev/null +++ b/tsconfig.esm.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "esnext", + "moduleResolution": "node", + "outDir": "./dist/esm", + "target": "es2015", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "declaration": true + } +} diff --git a/tsconfig.json b/tsconfig.json index 647abdad..acf0a246 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -2,10 +2,12 @@ "compilerOptions": { "rootDir": "./src", "target": "es5", - "outDir": "./dist", + "outDir": "./dist/cjs", "module": "commonjs", - "lib": [ "ES2015" ], - "declaration": true, + "lib": [ + "ES2015" + ], + "declaration": false, "strict": true, "allowJs": true, "esModuleInterop": true, @@ -14,7 +16,7 @@ "downlevelIteration": true }, "include": [ - "./src/**/*" + "./src/**/*" ], "exclude": [ "node_modules/",