Skip to content

Instantly share code, notes, and snippets.

View SamanShafigh's full-sized avatar

Saman Shafigh SamanShafigh

View GitHub Profile
import Container from './container';
export default class Kernel {
constructor(builder) {
this.container = new Container(builder);
}
/**
* Boot the kernel, load all services
*/
import {MongoClient} from 'mongodb';
import UserController from './controller/user-controller';
import UserService from './service/user-service'
import MongoDriver from './service/db-service';
import Config from './service/config-service';
export const config = {
constructor: () => new Config(process.env),
tags: ['boot']
}
export default class Container {
constructor(builder) {
this.services = new Map();
if (builder !== undefined) {
Object.keys(builder).forEach(name => this.register(name, builder[name]));
}
}
/**
* Register a service
import Kernel from './kernel';
import * as ServiceBuilder from './service';
(async () => {
const kernel = new Kernel(ServiceBuilder);
await kernel.boot();
await kernel.container.get('db').save('product', {}, {id: 1, name: 'ssssscar'});
})();
@SamanShafigh
SamanShafigh / App(React Component Dependency Injection).js
Last active October 4, 2022 14:08
React Component Dependency Injection (Dynamically loading components)
import React, { Component } from 'react';
import ComponentContainer from './ComponentContainer';
class App extends Component {
render() {
let components = ['D1', 'D2', 'D3'];
return (
<div>
<h2>Dynamic Components Loading</h2>