🚀 Big News:Socket Has Acquired Secure Annex.Learn More
Socket
Book a DemoSign in
Socket

typescript-lru-cache

Package Overview
Dependencies
Maintainers
1
Versions
10
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

typescript-lru-cache - npm Package Compare versions

Comparing version
1.2.3
to
2.0.0
+5
-1
dist/index.js
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {

@@ -6,0 +10,0 @@ if (k2 === undefined) k2 = k;

+1
-1

@@ -1,1 +0,1 @@

{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAA2B"}
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}

@@ -132,2 +132,3 @@ export interface LRUCacheOptions<TKey, TValue> {

* Returns the number of entries in the LRUCache object.
* If the cache has entryExpirationTimeInMS set, expired entries will be removed before the size is returned.
*

@@ -170,2 +171,3 @@ * @returns The number of entries in the cache.

* This will not mark the entry as recently used.
* If the newest node is expired, it will be removed.
*

@@ -193,2 +195,3 @@ * @returns The most recently used (newest) entry in the cache.

* This will not mark the entry as recently used.
* If the oldest node is expired, it will be removed.
*

@@ -331,2 +334,3 @@ * @returns The least recently used (oldest) entry in the cache.

* This does not mark the entry as recently used.
* If the cache has a key but the entry is expired, it will be removed and false will be returned.
*

@@ -512,3 +516,4 @@ * @param key The key of the entry to check if exists

private removeNodeFromListAndLookupTable;
private cleanCache;
}
//# sourceMappingURL=LRUCache.d.ts.map

@@ -1,1 +0,1 @@

{"version":3,"file":"LRUCache.d.ts","sourceRoot":"","sources":["../src/LRUCache.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"LRUCache.d.ts","sourceRoot":"","sources":["../src/LRUCache.ts"],"names":[],"mappings":"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"}

@@ -51,2 +51,3 @@ "use strict";

* Returns the number of entries in the LRUCache object.
* If the cache has entryExpirationTimeInMS set, expired entries will be removed before the size is returned.
*

@@ -68,2 +69,3 @@ * @returns The number of entries in the cache.

get size() {
this.cleanCache();
return this.lookupTable.size;

@@ -94,2 +96,3 @@ }

* This will not mark the entry as recently used.
* If the newest node is expired, it will be removed.
*

@@ -117,2 +120,6 @@ * @returns The most recently used (newest) entry in the cache.

}
if (this.head.isExpired) {
this.removeNodeFromListAndLookupTable(this.head);
return this.newest;
}
return this.mapNodeToEntry(this.head);

@@ -123,2 +130,3 @@ }

* This will not mark the entry as recently used.
* If the oldest node is expired, it will be removed.
*

@@ -146,2 +154,6 @@ * @returns The least recently used (oldest) entry in the cache.

}
if (this.tail.isExpired) {
this.removeNodeFromListAndLookupTable(this.tail);
return this.oldest;
}
return this.mapNodeToEntry(this.tail);

@@ -319,2 +331,3 @@ }

* This does not mark the entry as recently used.
* If the cache has a key but the entry is expired, it will be removed and false will be returned.
*

@@ -340,3 +353,11 @@ * @param key The key of the entry to check if exists

has(key) {
return this.lookupTable.has(key);
const node = this.lookupTable.get(key);
if (!node) {
return false;
}
if (node.isExpired) {
this.removeNodeFromListAndLookupTable(node);
return false;
}
return true;
}

@@ -629,4 +650,17 @@ /**

}
cleanCache() {
// Don't spend time cleaning if entries don't expire.
if (!this.entryExpirationTimeInMS) {
return;
}
const expiredNodes = [];
for (const node of this.lookupTable.values()) {
if (node.isExpired) {
expiredNodes.push(node);
}
}
expiredNodes.forEach(node => this.removeNodeFromListAndLookupTable(node));
}
}
exports.LRUCache = LRUCache;
//# sourceMappingURL=LRUCache.js.map

@@ -1,1 +0,1 @@

{"version":3,"file":"LRUCache.js","sourceRoot":"","sources":["../src/LRUCache.ts"],"names":[],"mappings":"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"}
{"version":3,"file":"LRUCache.js","sourceRoot":"","sources":["../src/LRUCache.ts"],"names":[],"mappings":"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"}
{
"name": "typescript-lru-cache",
"version": "1.2.3",
"version": "2.0.0",
"description": "LRU Cache",

@@ -26,7 +26,7 @@ "author": "Robert Herber",

"scripts": {
"benchmark": "ts-node ./src/benchmark/index.ts",
"benchmark": "ts-node ./src/__benchmarks__/index.ts",
"build": "rm -rf ./dist && tsc",
"lint": "eslint .",
"lint-fix": "eslint . --fix",
"prettier": "prettier --write **/*.{ts,js,css,html,json} !**/node_modules/** !**/dist/** !**/coverage/** !**/compiled/**",
"prettier": "prettier --write **/*.{ts,js,css,html,json} !**/node_modules/** !**/dist/** !**/coverage/** !**/compiled/** !**/docs/** !**/reports/**",
"release": "np --no-cleanup --no-2fa",

@@ -44,26 +44,26 @@ "build-circular-dependency-check": "madge --circular ./dist",

"devDependencies": {
"@commitlint/cli": "^15.0.0",
"@commitlint/config-conventional": "^15.0.0",
"@stryker-mutator/core": "^5.5.1",
"@stryker-mutator/jest-runner": "^5.5.1",
"@stryker-mutator/typescript-checker": "^5.5.1",
"@commitlint/cli": "^17.0.3",
"@commitlint/config-conventional": "^17.0.3",
"@stryker-mutator/core": "^6.1.2",
"@stryker-mutator/jest-runner": "^6.1.2",
"@stryker-mutator/typescript-checker": "^6.1.2",
"@types/benchmark": "^2.1.1",
"@types/jest": "^27.0.3",
"@typescript-eslint/eslint-plugin": "^5.5.0",
"@typescript-eslint/parser": "^5.5.0",
"@types/jest": "^28.1.4",
"@typescript-eslint/eslint-plugin": "^5.30.4",
"@typescript-eslint/parser": "^5.30.4",
"benchmark": "^2.1.4",
"eslint": "^8.4.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-jest": "^25.3.0",
"eslint-plugin-prettier": "^4.0.0",
"husky": "^7.0.4",
"jest": "^27.4.3",
"eslint": "^8.19.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-jest": "^26.5.3",
"eslint-plugin-prettier": "^4.2.1",
"husky": "^8.0.1",
"jest": "^28.1.2",
"madge": "^5.0.1",
"np": "^7.6.0",
"prettier": "^2.5.0",
"ts-jest": "^27.0.7",
"ts-node": "^10.4.0",
"typedoc": "^0.22.10",
"typescript": "^4.5.2"
"np": "^7.6.2",
"prettier": "^2.7.1",
"ts-jest": "^28.0.5",
"ts-node": "^10.8.2",
"typedoc": "^0.23.5",
"typescript": "^4.7.4"
}
}

@@ -169,2 +169,3 @@ import { LRUCacheNode } from './LRUCacheNode';

* Returns the number of entries in the LRUCache object.
* If the cache has entryExpirationTimeInMS set, expired entries will be removed before the size is returned.
*

@@ -186,2 +187,3 @@ * @returns The number of entries in the cache.

public get size(): number {
this.cleanCache();
return this.lookupTable.size;

@@ -214,2 +216,3 @@ }

* This will not mark the entry as recently used.
* If the newest node is expired, it will be removed.
*

@@ -238,2 +241,7 @@ * @returns The most recently used (newest) entry in the cache.

if (this.head.isExpired) {
this.removeNodeFromListAndLookupTable(this.head);
return this.newest;
}
return this.mapNodeToEntry(this.head);

@@ -245,2 +253,3 @@ }

* This will not mark the entry as recently used.
* If the oldest node is expired, it will be removed.
*

@@ -269,2 +278,7 @@ * @returns The least recently used (oldest) entry in the cache.

if (this.tail.isExpired) {
this.removeNodeFromListAndLookupTable(this.tail);
return this.oldest;
}
return this.mapNodeToEntry(this.tail);

@@ -464,2 +478,3 @@ }

* This does not mark the entry as recently used.
* If the cache has a key but the entry is expired, it will be removed and false will be returned.
*

@@ -485,3 +500,14 @@ * @param key The key of the entry to check if exists

public has(key: TKey): boolean {
return this.lookupTable.has(key);
const node = this.lookupTable.get(key);
if (!node) {
return false;
}
if (node.isExpired) {
this.removeNodeFromListAndLookupTable(node);
return false;
}
return true;
}

@@ -809,2 +835,19 @@

}
private cleanCache(): void {
// Don't spend time cleaning if entries don't expire.
if (!this.entryExpirationTimeInMS) {
return;
}
const expiredNodes: LRUCacheNode<TKey, TValue>[] = [];
for (const node of this.lookupTable.values()) {
if (node.isExpired) {
expiredNodes.push(node);
}
}
expiredNodes.forEach(node => this.removeNodeFromListAndLookupTable(node));
}
}