npm

w3i
TypeScript icon, indicating that this package has built-in type declarations

0.3.2 • Public • Published

w3i

A typescript library for handling configuration for modules imported by other modules.

This package offers opinionated methods implemented in packages that have configurations.

With this module other packages can easily expose a .set method for setting their parameters.

Implementation

A common implementation is the following:

  • Import and instanciate the Weights class:
// src/config/index.ts
import {Weights, DeepPartial} from 'w3i';

type Config = {
  debug: boolean
}

export const weights = new Weights<Config>({
  debug: false,
});

export const set = (params: DeepPartial<Config>) => {
  weights.set(params);
};
  • Export a set method in order to set the configuration:
// src/main.ts
import {set} from './config/index.js';
export const config = {set};
  • Use the configuration inside the package:
// src/business.ts
import {weights} from './config/index.js';

function main(){
  if(weights.params.debug === true){
    console.log('Debugging...');
  }
}

Unix philosophy

This repo try to follow the Unix philosophy.

Name

w3i stands for weight, like in Atomic weight.

Other related repositories

3xp A typescript library for validating objects.

i0n A typescript library for console logging.

r4y A typescript library for managing child processes.

Readme

Keywords

none

Package Sidebar

Install

npm i w3i

Weekly Downloads

3

Version

0.3.2

License

UNLICENSED

Unpacked Size

17.5 kB

Total Files

40

Last publish

Collaborators

  • x71c9