/dot

A lightweight inversion of control framework for JavaScript and TypeScript

Primary LanguageTypeScriptMozilla Public License 2.0MPL-2.0

DOT: The Depend-o-tron

npm

Source: https://github.com/mscharley/dot
Author: Matthew Scharley
Contributors: See contributors on GitHub
Bugs/Support: Github Issues
License: MIT license
Status: Active

Synopsis

A small, well-tested IOC framework for TypeScript and JavaScript with a focus on type safety and forward compatibility.

Support for TC39 standard decorators for use with both TypeScript and JavaScript as well as TypeScript's experimental decorators for projects who still use them.

Read more about our goals here.

Installation

npm i --save @mscharley/dot

This library should work out of the box with any TypeScript configuration if you are using TypeScript 5.0 or later. Read below for other versions.

TypeScript support

This library is designed to work with either setting of the experimentalDecorators option in TypeScript 5.x or later. In TypeScript 4.x and earlier, you will need to enable experimental decorators as that is the only option for decorator support. In either case, the emitDecoratorMetadata is not required, and is not used for any functionality if enabled.

JavaScript support

JavaScript should work out of the box with any JavaScript transpiler that supports TC39 decorators. For now you will need a transpiler until the standard gets implemented more widely.

Known implementations:

Usage

For usage examples, please see the documentation.

Inspiration

The API design of this project is heavily inspired by InversifyJS.