bard-legends-framework 0.7.42 → 0.7.43
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/utilities/libraries/data-structures/queue/queue.d.ts +5 -0
- package/dist/utilities/libraries/data-structures/queue/queue.js +14 -0
- package/dist/utilities/libraries/data-structures/queue/queue.js.map +1 -1
- package/dist/utilities/libraries/data-structures/queue/queue.test.d.ts +1 -0
- package/dist/utilities/libraries/data-structures/queue/queue.test.js +58 -0
- package/dist/utilities/libraries/data-structures/queue/queue.test.js.map +1 -0
- package/package.json +1 -1
- package/package.json.bak +1 -1
|
@@ -15,4 +15,9 @@ export declare class Queue<T> {
|
|
|
15
15
|
* @returns The value of the first element in the queue without removing it
|
|
16
16
|
*/
|
|
17
17
|
peek(): T | undefined;
|
|
18
|
+
/**
|
|
19
|
+
* @param deepCopyItem An optional function that takes an item and returns a deep copy of it
|
|
20
|
+
* @returns The duplicated queue
|
|
21
|
+
*/
|
|
22
|
+
duplicate(deepCopyItem?: (item: T) => T): Queue<T>;
|
|
18
23
|
}
|
|
@@ -56,6 +56,20 @@ class Queue {
|
|
|
56
56
|
peek() {
|
|
57
57
|
return this.start?.value;
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* @param deepCopyItem An optional function that takes an item and returns a deep copy of it
|
|
61
|
+
* @returns The duplicated queue
|
|
62
|
+
*/
|
|
63
|
+
duplicate(deepCopyItem) {
|
|
64
|
+
let newQueue = new Queue();
|
|
65
|
+
let current = this.start;
|
|
66
|
+
while (current) {
|
|
67
|
+
let value = deepCopyItem ? deepCopyItem(current.value) : current.value;
|
|
68
|
+
newQueue.add(value);
|
|
69
|
+
current = current.next;
|
|
70
|
+
}
|
|
71
|
+
return newQueue;
|
|
72
|
+
}
|
|
59
73
|
}
|
|
60
74
|
exports.Queue = Queue;
|
|
61
75
|
//# sourceMappingURL=queue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/data-structures/queue/queue.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB;IAKxB,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAa,KAAK;IAIhB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAClC,CAAC;IAED,YAAY,SAAyB;QACnC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,iBAAiB,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;YAC/B,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,IAAS;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,OAAO,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,GAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACzB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;gBACrB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,GAAG;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;YACvB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;IAC3B,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"queue.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/data-structures/queue/queue.ts"],"names":[],"mappings":";;;AAAA,MAAM,oBAAoB;IAKxB,YAAY,KAAQ;QAClB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAED,MAAa,KAAK;IAIhB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;IAClC,CAAC;IAED,YAAY,SAAyB;QACnC,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,iBAAiB,GAAG,IAAI,oBAAoB,CAAC,SAAS,CAAC,CAAC;YAC5D,IAAI,CAAC,KAAK,GAAG,iBAAiB,CAAC;YAC/B,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC;QAC/B,CAAC;IACH,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,GAAG,IAAS;QACd,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;YACnB,IAAI,OAAO,GAAG,IAAI,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;gBAC5B,IAAI,CAAC,GAAI,CAAC,IAAI,GAAG,OAAO,CAAC;gBACzB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;YACrB,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC;gBACrB,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC;YACrB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,GAAG;QACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;YAC7B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAC7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;YAClC,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC;YACvB,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,SAAS,CAAC,YAA6B;QACrC,IAAI,QAAQ,GAAG,IAAI,KAAK,EAAK,CAAC;QAC9B,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,OAAO,OAAO,EAAE,CAAC;YACf,IAAI,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;YACvE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAtED,sBAsEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const vitest_1 = require("vitest");
|
|
4
|
+
const queue_1 = require("./queue");
|
|
5
|
+
(0, vitest_1.describe)('Queue', () => {
|
|
6
|
+
(0, vitest_1.describe)('Basic', () => {
|
|
7
|
+
(0, vitest_1.test)('should return undefined when queue is empty', () => {
|
|
8
|
+
let queue = new queue_1.Queue();
|
|
9
|
+
(0, vitest_1.expect)(queue.pop()).toBe(undefined);
|
|
10
|
+
});
|
|
11
|
+
(0, vitest_1.test)('should return false when queue is not empty', () => {
|
|
12
|
+
let queue = new queue_1.Queue(1);
|
|
13
|
+
(0, vitest_1.expect)(queue.isEmpty).toBe(false);
|
|
14
|
+
});
|
|
15
|
+
(0, vitest_1.test)('should add elements to the queue', () => {
|
|
16
|
+
let queue = new queue_1.Queue();
|
|
17
|
+
queue.add(1, 2, 3);
|
|
18
|
+
(0, vitest_1.expect)(queue.pop()).toBe(1);
|
|
19
|
+
(0, vitest_1.expect)(queue.pop()).toBe(2);
|
|
20
|
+
(0, vitest_1.expect)(queue.pop()).toBe(3);
|
|
21
|
+
});
|
|
22
|
+
(0, vitest_1.test)('should add elements to the queue with first element', () => {
|
|
23
|
+
let queue = new queue_1.Queue(1);
|
|
24
|
+
queue.add(2, 3);
|
|
25
|
+
(0, vitest_1.expect)(queue.pop()).toBe(1);
|
|
26
|
+
(0, vitest_1.expect)(queue.pop()).toBe(2);
|
|
27
|
+
(0, vitest_1.expect)(queue.pop()).toBe(3);
|
|
28
|
+
});
|
|
29
|
+
(0, vitest_1.test)('peek should return the first element in the queue without removing it', () => {
|
|
30
|
+
let queue = new queue_1.Queue(1);
|
|
31
|
+
(0, vitest_1.expect)(queue.peek()).toBe(1);
|
|
32
|
+
(0, vitest_1.expect)(queue.pop()).toBe(1);
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
(0, vitest_1.describe)('Duplicate', () => {
|
|
36
|
+
(0, vitest_1.test)('empty queue', () => {
|
|
37
|
+
let queue = new queue_1.Queue();
|
|
38
|
+
let duplicate = queue.duplicate();
|
|
39
|
+
(0, vitest_1.expect)(duplicate.pop()).toBe(undefined);
|
|
40
|
+
});
|
|
41
|
+
(0, vitest_1.test)('queue with elements', () => {
|
|
42
|
+
let queue = new queue_1.Queue(1);
|
|
43
|
+
queue.add(2, 3);
|
|
44
|
+
let duplicate = queue.duplicate();
|
|
45
|
+
(0, vitest_1.expect)(duplicate.pop()).toBe(1);
|
|
46
|
+
(0, vitest_1.expect)(duplicate.pop()).toBe(2);
|
|
47
|
+
(0, vitest_1.expect)(duplicate.pop()).toBe(3);
|
|
48
|
+
});
|
|
49
|
+
(0, vitest_1.test)('duplicate with deep copy', () => {
|
|
50
|
+
let queue = new queue_1.Queue({ value: 1 });
|
|
51
|
+
let duplicate = queue.duplicate(item => ({ value: item.value }));
|
|
52
|
+
(0, vitest_1.expect)(duplicate.peek()).toStrictEqual({ value: 1 });
|
|
53
|
+
(0, vitest_1.expect)(queue.peek()).toStrictEqual({ value: 1 });
|
|
54
|
+
(0, vitest_1.expect)(duplicate.peek() !== queue.peek()).toBeTruthy();
|
|
55
|
+
});
|
|
56
|
+
});
|
|
57
|
+
});
|
|
58
|
+
//# sourceMappingURL=queue.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queue.test.js","sourceRoot":"","sources":["../../../../../src/utilities/libraries/data-structures/queue/queue.test.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED