@soluzioni-futura/components-container
Version:
Easy and clean way to manage async and sync components in simple and complex projects.
32 lines (24 loc) • 939 B
JavaScript
const Container = require("..")
const debug = require("debug")("debug")
const container = new Container({
debugTag: "container", // override of the default debug tag; default "container"
noColors: false // enable the console colors of the debug logs; default true
})
container
.register(require("./components/mysql.js"), { host: "example.com" })
.register(require("./components/products.js"))
.init()
container.on("products.running", async () => {
const productsComponent = await container.get("products")
// logging the product retrieved with the products component
const product = productsComponent.getProduct()
debug(product)
})
container.on("products.stopped", async () => {
const productsComponent = await container.get("products")
// trying to get a product unsuccessfully because products component is stopped
productsComponent.getProduct()
})
container.checkStatus()
.then(debug)
.catch(debug)