New:Introducing Socket Scanning for VS Code Marketplace Extensions.Learn more →
Get Started

lilconfig

Package Overview
Dependencies
Maintainers
1
Versions
18
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

lilconfig

A zero-dependency alternative to cosmiconfig

latest
Source
npmnpm
Version
3.1.4
Version published
Weekly downloads
0
Maintainers
1
Weekly downloads
 
Created
Source

Lilconfig ⚙️

npm version install size Coverage Status

A zero-dependency alternative to cosmiconfig with the same API.

Installation

npm install lilconfig

Usage

import {lilconfig, lilconfigSync} from 'lilconfig';

// all keys are optional
const options = {
    stopDir: '/Users/you/some/dir',
    searchPlaces: ['package.json', 'myapp.conf.js'],
    ignoreEmptySearchPlaces: false
}

lilconfig(
    'myapp',
    options // optional
).search() // Promise<LilconfigResult>

lilconfigSync(
    'myapp',
    options // optional
).load(pathToConfig) // LilconfigResult

/**
 * LilconfigResult
 * {
 *   config: any; // your config
 *   filepath: string;
 * }
 */

ESM

ESM configs can be loaded with async API only. Specifically js files in projects with "type": "module" in package.json or mjs files.

Difference to cosmiconfig

Lilconfig does not intend to be 100% compatible with cosmiconfig but tries to mimic it where possible. The key difference is no support for YAML files out of the box(lilconfig attempts to parse files with no extension as JSON instead of YAML). You can still add the support for YAML files by providing a loader, see an example below.

Option difference between the two.

cosmiconfig optionlilconfig
cache✅
loaders✅
ignoreEmptySearchPlaces✅
packageProp✅
searchPlaces✅
stopDir✅
transform✅

Loaders examples

Yaml loader

If you need the YAML support, you can provide your own loader

import {lilconfig} from 'lilconfig';
import yaml from 'yaml';

function loadYaml(filepath, content) {
    return yaml.parse(content);
}

const options = {
    loaders: {
        '.yaml': loadYaml,
        '.yml': loadYaml,
        // loader for files with no extension
        noExt: loadYaml
    }
};

lilconfig('myapp', options)
    .search()
    .then(result => {
        result // {config, filepath}
    });

Version correlation

  • lilconfig v1 → cosmiconfig v6
  • lilconfig v2 → cosmiconfig v7
  • lilconfig v3 → cosmiconfig v8

Keywords

cosmiconfig

FAQs

Package last updated on 16 Oct 2026

Related posts