Skip to content

A lightweight Dependency Injection (DI) container library for TypeScript with flexible storage mechanisms.

License

Notifications You must be signed in to change notification settings

rogervila/container-di

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Container DI

A lightweight Dependency Injection (DI) container library for TypeScript with flexible storage mechanisms.

Features

  • 🚀 Multiple Storage Containers:

    • In-memory storage
    • Browser session storage
    • Browser local storage
  • 💡 Key Capabilities:

    • Store and retrieve values by identifiers
    • Support for primitives, objects, and functions
    • Typed exception handling
    • Proxy-based dynamic access

Quick Start

import { InMemoryContainer } from 'container-di';

const container = InMemoryContainer.make();

// Store values
container.set('user', { name: 'John Doe' });

// Retrieve values
const user = container.get('user');
console.log(user.name); // 'John Doe'

// Store functions
container['sum'] = (a: number, b: number) => a + b;

// Retrieve functions
const sum = container['sum'];
sum(1, 2); // 3

Container Types

InMemoryContainer

Runtime storage for temporary dependencies.

SessionStorageContainer

Persistent storage within a browser session.

LocalStorageContainer

Long-term storage across browser sessions.

Error Handling

  • NotFoundException: Item not found
  • ContainerException: General container errors

License

MIT License

Author

Roger Vilà © 2025

About

A lightweight Dependency Injection (DI) container library for TypeScript with flexible storage mechanisms.

Resources

License

Stars

Watchers

Forks

Packages

No packages published