Back to Explore

antonk52/lilconfig

GitHub
1 updates · last 90 daysOpen source

Last release:

Lilconfig is a zero-dependency Node.js configuration search tool for finding and loading configuration files for a given app name. It provides both async and sync APIs, with customizable search options, and it supports custom loaders (for example, YAML) when you need formats beyond its default behavior.

Project status

  • Actively maintained, most recently updated on 2026-10-16 (v3.1.4), with an upstream push at essentially the same time, indicating current responsiveness.
  • Apparent update cadence is intermittent: the previous noted update was v3.1.3 on 2024-12-03, then v3.1.4 in 2026-10, so roughly a 1.8-year gap before the latest updates rather than a steady monthly/quarterly rhythm.

AI summary generated

AI-generated from public sources. May be inaccurate. Report

Recent updates

  • v3.1.4

    v3.1.4 fixes loading of JSON configuration files that include a UTF-8 BOM by stripping a leading BOM before parsing. It also updates development dependencies and corrects documentation typos, with corresponding test coverage added for BOM handling.

  • v3.1.3

    v3.1.3 updates the JavaScript loading logic to better handle Windows paths. Specifically, dynamic imports now convert the provided specifier to a file URL before calling `import()`, enabling default JS loading from absolute filesystem paths on Windows.

    Features
  • v3.1.2

    v3.1.2 is described as making lilconfig work as expected when a Node.js app is bundled with webpack. The code changes in this release specifically adjust how lilconfig performs dynamic loading under webpack, plus a tooling-only shift to Biome for linting/formatting in the repo.

  • v3.1.1

    v3.1.1 is a security-focused release that removes the need for an eval-based dynamic import implementation by migrating the runtime source from TypeScript to plain JavaScript, while still shipping TypeScript types via index.d.ts. The release notes also mention a formatting change (tabs instead of spaces).

    Security
  • v3.1.0

    v3.1.0 adds built-in support for loading ESM configuration files, but only through the async API. It changes how config modules are discovered and loaded, adding dynamic import-based loaders for async mode and restricting default ESM search behavior for sync mode.

    BreakingFeatures
  • v3.0.0

    v3.0.0 introduces built-in caching to lilconfig, intended to speed up configuration lookups by reusing results within the same Node.js process. The release also drops support for older Node versions (v10, v12) and updates the package engines accordingly.

    BreakingFeatures
  • v2.1.0

    v2.1.0 extends lilconfig default configuration discovery to also look for `.config/<name>rc` files (and common JS/JSON variants). The intent is to better match cosmiconfig v7.1.0 search behavior.

    Features
  • v2.0.6

    Release v2.0.6 primarily adds a missing LICENSE file. The accompanying diff also updates package version metadata and changes a dev dependency version in the lockfile, but there are no runtime code changes shown.

    Features
  • v2.0.5

    v2.0.5 updates lilconfig to properly handle async user-provided loaders, enabling ESM-friendly configuration loading via custom loader functions (for example, using dynamic import). The main code change is that loader results are now awaited in the async `lilconfig` flow for both normal config files and the `package.json` path.

    Features
  • v2.0.4

    v2.0.4 fixes how `lilconfig` and `lilconfigSync` handle relative paths passed to their `load` methods. The implementation now resolves the provided `filepath` against `process.cwd()` before parsing, reading, and delegating to loaders. Release notes also mention dev dependency updates and CI coverage for Node 14 and 16.

  • v2.0.3

    v2.0.3 is a targeted patch that fixes how the library computes search paths when traversing toward the Unix root directory. The change ensures the last generated path is '/' instead of an empty string, so configuration file lookups at the root behave correctly.