Skip to content

Singlie: v3.0.0 Release

Published: at 06:36 PM

A complete TypeScript rewrite.

Introduction

The new v3.0.0 Singlie release provides a fully typed TypeScript implementation of singly circular and linear linked list data structures, accompanied by extensive parameterized and property-based test suites, comprehensive CI/CD automation on GitHub Actions, and formal DOI registration via Zenodo.

Major Changes: TypeScript Rewrite

The new version introduces a complete rewrite from JavaScript to TypeScript, bringing fundamental improvements:

Full Type Safety

All data structures now support generics, enabling compile-time validation of type correctness. Users can now catch type errors during development rather than discovering them at runtime:

const list = new Linear<string>();
list.append('hello', 'world');

// TypeScript catches type errors at compile time
// list.append(42); // Type error

Modern Testing Infrastructure

Jest testing with property-based testing via fast-check provides comprehensive coverage:

Enhanced Developer Experience

IDE autocompletion, inline documentation, and type inference make working with the library now significantly more intuitive and error-resistant than the previous JavaScript version.

Automated CI/CD Pipeline

GitHub Actions now validates every commit across multiple Node.js versions and automatically publishes to the NPM registry when version tags are created via the trusted publisher framework.

Digital Object Identifier Attribution

Singlie has been assigned a Digital Object Identifier - DOI via Zenodo, 10.5281/zenodo.17563627, enabling proper citation in academic work and research publications:

@software{Sinani_Singlie_Singly_circular_2025,
author = {Sinani, Klaudio and Sinani, Mario A.},
doi = {10.5281/zenodo.17563627},
license = {MIT},
month = nov,
title = {{Singlie: Singly circular and linear linked lists}},
url = {https://github.com/klaudiosinani/singlie},
version = {3.0.0},
year = {2025}
}

More information regarding the citation can be found in the CITATION.cff file.

Breaking Changes

Two methods have been removed in favor of TypeScript’s type system:

Migration:

// Before (v2.1.0 JavaScript)
const list = new Circular();
if (list.isCircular()) { /* ... */ }

// After (v3.0.0 TypeScript)
const list = new Circular<T>();
// TypeScript knows the type; use instanceof only if needed
if (list instanceof Circular) { /* ... */ }

API Reference

Singlie exposes a fluent API with 25 methods organized across capability interfaces:

Properties

Core Operations

Iteration & Transformation

Search Operations

Serialization

Conversion

Type Aliases

The library uses standardized function type aliases for a better developer experience:

Installation

To install the new version, run the command below:

npm install singlie@v3.0.0

Resources