class Container {↵
constructor() {↵
this.services = new Map();↵
}↵
register(name, factory) {↵
this.services.set(name, { factory, instance: null });↵
}↵
get(name) {↵
const service = this.services.get(name);↵
if (!service) throw new Error(`Service ${name} not found`);↵
if (!service.instance) {↵
service.instance = service.factory(this);↵
}↵
return service.instance;↵
}↵
}↵
↵
const container = new Container();↵
container.register("config", () => ({ env: "prod" }));↵
container.register("logger", (c) => ({ log: (msg) => console.log(`[${c.get("config").env}] ${msg}`) }));↵
↵
container.get("logger").log("Hello");