avancement planning
This commit is contained in:
+25
-4
@@ -5,11 +5,32 @@ All notable changes to this project will be documented in this file.
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
## [v1.0.1](https://github.com/ljharb/side-channel-list.git
|
||||
/compare/v1.0.0...v1.0.1) - 2026-04-08
|
||||
|
||||
### Fixed
|
||||
|
||||
- [Fix] `delete`: do not reset the list when deleting the head node of a multi-node list [`#3`](https://github.com/ljharb/side-channel-list.git
|
||||
/issues/3)
|
||||
|
||||
### Commits
|
||||
|
||||
- [actions] update workflows [`9e79e6b`](https://github.com/ljharb/side-channel-list.git
|
||||
/commit/9e79e6bf845532fafbf03b547429fe4f737214a3)
|
||||
- [Deps] update `@arethetypeswrong/cli`, `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/tape`, `eslint`, `npmignore` [`babf3ca`](https://github.com/ljharb/side-channel-list.git
|
||||
/commit/babf3ca4849d2fd893a470a6b82c62a80ccc9307)
|
||||
- [Deps] update `object-inspect` [`9f0f4b8`](https://github.com/ljharb/side-channel-list.git
|
||||
/commit/9f0f4b88ff2aa8b7b7c9e589ac1513f133d64b9f)
|
||||
|
||||
## v1.0.0 - 2024-12-10
|
||||
|
||||
### Commits
|
||||
|
||||
- Initial implementation, tests, readme, types [`5d6baee`](https://github.com/ljharb/side-channel-list/commit/5d6baee5c9054a1238007f5a1dfc109a7a816251)
|
||||
- Initial commit [`3ae784c`](https://github.com/ljharb/side-channel-list/commit/3ae784c63a47895fbaeed2a91ab54a8029a7a100)
|
||||
- npm init [`07055a4`](https://github.com/ljharb/side-channel-list/commit/07055a4d139895565b199dba5fe2479c1a1b9e28)
|
||||
- Only apps should have lockfiles [`9573058`](https://github.com/ljharb/side-channel-list/commit/9573058a47494e2d68f8c6c77b5d7fbe441949c1)
|
||||
- Initial implementation, tests, readme, types [`5d6baee`](https://github.com/ljharb/side-channel-list.git
|
||||
/commit/5d6baee5c9054a1238007f5a1dfc109a7a816251)
|
||||
- Initial commit [`3ae784c`](https://github.com/ljharb/side-channel-list.git
|
||||
/commit/3ae784c63a47895fbaeed2a91ab54a8029a7a100)
|
||||
- npm init [`07055a4`](https://github.com/ljharb/side-channel-list.git
|
||||
/commit/07055a4d139895565b199dba5fe2479c1a1b9e28)
|
||||
- Only apps should have lockfiles [`9573058`](https://github.com/ljharb/side-channel-list.git
|
||||
/commit/9573058a47494e2d68f8c6c77b5d7fbe441949c1)
|
||||
|
||||
+1
-3
@@ -84,9 +84,8 @@ module.exports = function getSideChannelList() {
|
||||
}
|
||||
},
|
||||
'delete': function (key) {
|
||||
var root = $o && $o.next;
|
||||
var deletedNode = listDelete($o, key);
|
||||
if (deletedNode && root && root === deletedNode) {
|
||||
if (deletedNode && $o && !$o.next) {
|
||||
$o = void undefined;
|
||||
}
|
||||
return !!deletedNode;
|
||||
@@ -108,6 +107,5 @@ module.exports = function getSideChannelList() {
|
||||
listSet(/** @type {NonNullable<typeof $o>} */ ($o), key, value);
|
||||
}
|
||||
};
|
||||
// @ts-expect-error TODO: figure out why this is erroring
|
||||
return channel;
|
||||
};
|
||||
|
||||
+8
-8
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "side-channel-list",
|
||||
"version": "1.0.0",
|
||||
"version": "1.0.1",
|
||||
"description": "Store information about any JS value in a side channel, using a linked list",
|
||||
"main": "index.js",
|
||||
"exports": {
|
||||
@@ -38,21 +38,21 @@
|
||||
"homepage": "https://github.com/ljharb/side-channel-list#readme",
|
||||
"dependencies": {
|
||||
"es-errors": "^1.3.0",
|
||||
"object-inspect": "^1.13.3"
|
||||
"object-inspect": "^1.13.4"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@arethetypeswrong/cli": "^0.17.1",
|
||||
"@ljharb/eslint-config": "^21.1.1",
|
||||
"@ljharb/tsconfig": "^0.2.2",
|
||||
"@arethetypeswrong/cli": "^0.18.2",
|
||||
"@ljharb/eslint-config": "^22.2.2",
|
||||
"@ljharb/tsconfig": "^0.3.2",
|
||||
"@types/object-inspect": "^1.13.0",
|
||||
"@types/tape": "^5.6.5",
|
||||
"@types/tape": "^5.8.1",
|
||||
"auto-changelog": "^2.5.0",
|
||||
"eclint": "^2.8.1",
|
||||
"encoding": "^0.1.13",
|
||||
"eslint": "=8.8.0",
|
||||
"eslint": "^8.57.1",
|
||||
"evalmd": "^0.0.19",
|
||||
"in-publish": "^2.0.1",
|
||||
"npmignore": "^0.3.1",
|
||||
"npmignore": "^0.3.5",
|
||||
"nyc": "^10.3.2",
|
||||
"safe-publish-latest": "^2.0.0",
|
||||
"tape": "^5.9.0",
|
||||
|
||||
+50
@@ -100,5 +100,55 @@ test('getSideChannelList', function (t) {
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('delete: first node in a multi-node list', function (st) {
|
||||
var channel = getSideChannelList();
|
||||
|
||||
channel.set('a', 1);
|
||||
channel.set('b', 2);
|
||||
|
||||
st.equal(channel['delete']('b'), true, 'deleting first data node yields true');
|
||||
|
||||
st.equal(channel.has('a'), true, 'second node is still present after deleting first');
|
||||
st.equal(channel.get('a'), 1, 'second node value is intact after deleting first');
|
||||
st.equal(channel.has('b'), false, 'deleted node is gone');
|
||||
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('delete: last remaining node empties the list', function (st) {
|
||||
var channel = getSideChannelList();
|
||||
|
||||
channel.set('a', 1);
|
||||
channel.set('b', 2);
|
||||
|
||||
st.equal(channel['delete']('b'), true, 'delete first node');
|
||||
st.equal(channel['delete']('a'), true, 'delete second (last) node');
|
||||
|
||||
st.equal(channel.has('a'), false, 'a is gone');
|
||||
st.equal(channel.has('b'), false, 'b is gone');
|
||||
st.equal(channel.get('a'), undefined, 'get a yields undefined');
|
||||
|
||||
channel.set('c', 3);
|
||||
st.equal(channel.get('c'), 3, 'can set new values after emptying');
|
||||
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.test('delete: middle node in a multi-node list', function (st) {
|
||||
var channel = getSideChannelList();
|
||||
|
||||
channel.set('a', 1);
|
||||
channel.set('b', 2);
|
||||
channel.set('c', 3);
|
||||
|
||||
st.equal(channel['delete']('b'), true, 'deleting middle node yields true');
|
||||
|
||||
st.equal(channel.get('a'), 1, 'first node still intact');
|
||||
st.equal(channel.has('b'), false, 'middle node is gone');
|
||||
st.equal(channel.get('c'), 3, 'last node still intact');
|
||||
|
||||
st.end();
|
||||
});
|
||||
|
||||
t.end();
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user