Skip to content

Commit a67f555

Browse files
committed
feat: update exporting manner
BREAKING CHANGE: specific implementation is now provided in subdir
1 parent 0b78439 commit a67f555

12 files changed

+47
-27
lines changed

README.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,10 @@ Not to use:
8484
## Import specific implementation
8585

8686
```js
87-
import PriorityQueue, {
88-
BinaryHeap,
89-
PairingHeap,
90-
SkewHeap,
91-
} from "priorityqueue";
87+
import PriorityQueue from "priorityqueue";
88+
import BinaryHeap from "priorityqueue/BinaryHeap";
89+
import PairingHeap from "priorityqueue/PairingHeap";
90+
import SkewHeap from "priorityqueue/SkewHeap";
9291

9392
console.log(PriorityQueue === BinaryHeap); // => true
9493
```

package.json

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,27 @@
22
"name": "priorityqueue",
33
"version": "1.0.0",
44
"description": "An implementation of Priority Queue",
5-
"main": "lib/priorityqueue.js",
6-
"module": "lib/priorityqueue.mjs",
5+
"main": "lib/index.js",
6+
"module": "lib/index.mjs",
77
"types": "lib/index.d.ts",
8+
"exports": {
9+
".": {
10+
"import": "./lib/index.mjs",
11+
"require": "./lib/index.js"
12+
},
13+
"./BinaryHeap": {
14+
"import": "./lib/BinaryHeap.mjs",
15+
"require": "./lib/BinaryHeap.js"
16+
},
17+
"./PairingHeap": {
18+
"import": "./lib/PairingHeap.mjs",
19+
"require": "./lib/PairingHeap.js"
20+
},
21+
"./SkewHeap": {
22+
"import": "./lib/SkewHeap.mjs",
23+
"require": "./lib/SkewHeap.js"
24+
}
25+
},
826
"sideEffect": false,
927
"scripts": {
1028
"build:code": "vite build",

src/BinaryHeap.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sharedTest from "./testing";
2-
import { BinaryHeap } from "./BinaryHeap";
2+
import BinaryHeap from "./BinaryHeap";
33

44
sharedTest({
55
PriorityQueueCtor: BinaryHeap,

src/BinaryHeap.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ function heapifyAll<T>(instance: BinaryHeap<T>): void {
5656
/**
5757
* An implementation of Binary Heap.
5858
*/
59-
export class BinaryHeap<T>
59+
export default class BinaryHeap<T>
6060
extends BasePriorityQueue
6161
implements PriorityQueueInstance<T>
6262
{

src/PairingHeap.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sharedTest from "./testing";
2-
import { PairingHeap } from "./PairingHeap";
2+
import PairingHeap from "./PairingHeap";
33

44
sharedTest({
55
PriorityQueueCtor: PairingHeap,

src/PairingHeap.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ function mergeChildren<T>(
9090
return cursor;
9191
}
9292

93-
export class PairingHeap<T>
93+
export default class PairingHeap<T>
9494
extends BasePriorityQueue
9595
implements PriorityQueueInstance<T>
9696
{

src/SkewHeap.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import sharedTest from "./testing";
2-
import { SkewHeap } from "./SkewHeap";
2+
import SkewHeap from "./SkewHeap";
33

44
sharedTest({
55
PriorityQueueCtor: SkewHeap,

src/SkewHeap.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ function merge<T>(
4545
/**
4646
* An implementation of Skew Heap.
4747
*/
48-
export class SkewHeap<T>
48+
export default class SkewHeap<T>
4949
extends BasePriorityQueue
5050
implements PriorityQueueInstance<T>
5151
{

src/__tests__/pairwise.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { describe, it, expect } from "vitest";
22
import { numericGreaterFirst, dictOrderGreaterFirst } from "../comparator";
3-
import { BinaryHeap } from "../BinaryHeap";
4-
import { PairingHeap } from "../PairingHeap";
5-
import { SkewHeap } from "../SkewHeap";
3+
import BinaryHeap from "../BinaryHeap";
4+
import PairingHeap from "../PairingHeap";
5+
import SkewHeap from "../SkewHeap";
66

77
const Ctors = [BinaryHeap, PairingHeap, SkewHeap];
88

src/index.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
import { BinaryHeap as _BinaryHeap } from "./BinaryHeap";
2-
3-
export { PairingHeap } from "./PairingHeap";
4-
export { SkewHeap } from "./SkewHeap";
5-
export const BinaryHeap = _BinaryHeap;
6-
export default BinaryHeap;
1+
export { default } from "./BinaryHeap";
2+
export type {
3+
PriorityQueueInstance,
4+
PriorityQueueStatic,
5+
} from "./PriorityQueue";

src/performance/index.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ import pkgDir from "pkg-dir";
44
import { sync as mkdirpSync } from "mkdirp";
55
import builder from "yargs";
66
import * as statistics from "simple-statistics";
7-
import { BinaryHeap, PairingHeap, SkewHeap } from "..";
7+
import BinaryHeap from "../BinaryHeap";
8+
import SkewHeap from "../SkewHeap";
9+
import PairingHeap from "../PairingHeap";
810
import operations from "./operations";
911

1012
const { testCase, algorithm } = builder

vite.config.js

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ export default defineConfig({
77
outDir: "lib",
88
lib: {
99
// Could also be a dictionary or array of multiple entry points
10-
entry: resolve(__dirname, "src/index.ts"),
11-
name: "PriorityQueue",
12-
// the proper extensions will be added
13-
fileName: "priorityqueue",
10+
entry: [
11+
"src/index.ts",
12+
"src/BinaryHeap.ts",
13+
"src/PairingHeap.ts",
14+
"src/SkewHeap.ts",
15+
].map((filepath) => resolve(__dirname, filepath)),
1416
formats: ["es", "cjs"],
1517
},
1618
sourcemap: true,

0 commit comments

Comments
 (0)