Skip to content

Releases

2.4.0

Choose a tag to compare

@jheagle jheagle released this 04 Nov 15:33
v2.4.0
6159ff9
  • 2.4.0 (#32) (6159ff9)
  • Publish to npm from GitHub Actions (trusted publishing) (#31) (dec1d9c)
  • Count only the TypeScript source in GitHub's language stats (#30) (2934b91)
  • Babel 8 (js-build-tools 8.0.0) (#29) (51fcf4a)
  • js-build-tools 7.0.0 (#28) (74b47ae)
  • js-build-tools 6.9.0 (#27) (d464f42)
  • Lockfile: npm audit fix (dev tooling only) (#26) (f011a71)
  • Stop tracking generated build output (dist/, browser/) in git (#25) (76c28d0)
  • Generate docs at release, not on every build; add .gitattributes (#24) (8f0124a)
  • Merge pull request #23 from jheagle/fix/typedoc-warnings (9488fd1)
  • Fix the two TypeDoc warnings in the doc comments (e9f0bdc)
  • Merge pull request #22 from jheagle/chore/npm12-and-lint (44d8216)
  • Adopt js-build-tools 6.4.1: npm 12 install-script choices and a lint script (dcf61cf)

2.3.0

Choose a tag to compare

@jheagle jheagle released this 20 Oct 15:39
v2.3.0
acccbeb
  • Merge pull request #20 from jheagle/feature/flat-browser-global (8a22767)
  • Merge branch 'main' into feature/flat-browser-global (f70bbdf)
  • Merge pull request #21 from jheagle/chore/bump-dependencies (5a6b943)
  • update core-js and js-build-tools (1c05926)
  • Browser global: everything once, no default (7bafe75)
  • Merge pull request #19 from jheagle/feature/copy-files-and-release-it (68757bd)
  • Add copyFiles, release-it; fix docs/copyFiles never being exported from gulpfile.mjs (28e8f09)
  • Merge pull request #18 from jheagle/chore/update-js-build-tools (ad8a941)

2.2.0

Choose a tag to compare

@jheagle jheagle released this 15 Oct 14:14
v2.2.0
9c21704

New ScopedCollection<Scope, Key, Value>: a keyed collection partitioned by an arbitrary scope object, backed by WeakMap<Scope, Map<Key, Value>> - a scope's own keys are freed once nothing else references that scope.

This is the first piece of a larger json-dom change (stable item ids, replacing position-based getItemPath/getItemByPath forwarding, which breaks whenever a client's tree differs in shape from the server's). json-dom depends on this published version to build a per-root id→item lookup index. The same WeakMap<Root, X> shape already existed independently twice in battleship's own code - a signal this belongs here as a general collection, not a one-off.

199 tests passing, typecheck and build both clean.

2.1.3

Choose a tag to compare

@jheagle jheagle released this 15 Oct 14:14
v2.1.3
e333535

JSDoc which TypeScript makes redundant (@memberOf, @typedef, the {Type} of @param/@returns) is stripped across 28 files, plus 9 stray leftover "@PARAM values]" bracket typos fixed - the types come from the signatures and this repo's own tsconfig now.

docs.enabled now publishes straight to the sibling website checkout, one module per top-level folder of src (collections, recipes, services). The old readme/jsdoc2md config and htmldocs script are gone; MAIN.md/README.md are hand-written and short, and their example is run against the real dist/ before being committed.

2.1.2

Choose a tag to compare

@jheagle jheagle released this 15 Oct 14:14
v2.1.2
c122e04

Updates js-build-tools and re-runs the build - no source changes.

2.2.1

Choose a tag to compare

@jheagle jheagle released this 15 Oct 14:14
v2.2.1
ca31e7f

Updates js-build-tools - no source changes.

2.1.1

Choose a tag to compare

@jheagle jheagle released this 22 Sep 00:40
f186b0f

Remove a redundant hand-written import 'core-js/stable' in main.ts, which pulled in the whole core-js polyfill set instead of letting the existing usage-based babel config inject only what is needed. browser/collect-your-stuff.min.js: 421 KB -> 64 KB. No source behaviour change.

2.1.0

Choose a tag to compare

@jheagle jheagle released this 21 Sep 20:11
de53786

Keep the tree consistent. Iterating a LinkedTreeList now visits the linkers of that list and everything below them and stays within the list (a list of children used to iterate the whole tree from the root; a top level list is unchanged); parseTreeNext / TreeLinkerIterator take an optional boundary parent. Linkers added to a list of children get the list's parent, a removed linker no longer has a parent, and an emptied list remembers its parent. setChildren throws for an item which is not one of the list's linkers and, with no children given, removes the item's children. childrenFromArray keeps existing linkers and plain values (0, '', false, null, strings) instead of copying them into plain objects.

2.0.0

Choose a tag to compare

@jheagle jheagle released this 21 Sep 19:54
f775c12

Breaking: Queue and Stack are now the standard collections. Queue: enqueue(item) (returns the queue), dequeue() / peek() return the front item (null when empty), fromArray puts the first value at the front. Stack: push(item), pop() / peek() / top() return the top item (null when empty), fromArray pushes in turn so the last value is on top (was the first). Both are iterable, store any value exactly as given (functions, objects with a data property, null, 0) and are constant time. Queue.remove() / Stack.remove() are gone (use dequeue() / pop()), and the constructor / fromArray take (list, listClass, linkerClass). The previous task-running behaviour (dequeue / pop RUN the queued task) is kept, unchanged, as TaskQueue (with Queueable) and TaskStack (with Stackable), so migrating is a rename. New IsQueue / IsStack types; a Queue can be passed to si-funciona's queueManager / queueTimeout.

1.4.0

Choose a tag to compare

@jheagle jheagle released this 21 Sep 17:25
b0032af

Constant-time ends and length for LinkedList, DoublyLinkedList and LinkedTreeList: the lists remember their tail and length (kept up to date by their own methods), so last, length, append, prepend and Queue / Stack size() no longer walk the whole list (8000 appends: LinkedList 218ms -> 1ms, DoublyLinkedList 760ms -> 1ms). first / last still find linkers linked on directly, but the cached length does not: call reset() (new on LinkedList, now also refreshes the tail and length on the doubly / tree lists) after changing linkers directly. Arrayable.append / prepend no longer search with indexOf. Minor bump because of the new reset() and the cached length.