![Page 1: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/1.jpg)
KAMMYSLIWIEC
DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST
![Page 2: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/2.jpg)
KAMMYSLIWIEC
KAMIL MYSLIWIEC CREATOR OF NESTJS | CO-FOUNDER OF TRILON.IO
GOOGLE DEVELOPER EXPERT @KAMMYSLIWIEC
![Page 4: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/4.jpg)
KAMMYSLIWIEC
Adonis Express Koa Nest Fastify
![Page 5: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/5.jpg)
NESTJS WWW.NESTJS.COM
@NESTFRAMEWORK
KAMMYSLIWIEC
![Page 6: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/6.jpg)
DEPENDENCY INJECTION
![Page 7: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/7.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
private httpService = new HttpService();
private logger = new Logger();
}
![Page 8: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/8.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
private httpService = new HttpService();
private logger = new Logger();
}
![Page 9: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/9.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 10: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/10.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 11: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/11.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 12: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/12.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
private httpService = new HttpService();
private logger = new Logger();
}
![Page 13: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/13.jpg)
KAMMYSLIWIEC
const Injectable: ClassDecorator = (target: Object) => {};
![Page 14: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/14.jpg)
KAMMYSLIWIEC
COMPILER METADATA
![Page 15: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/15.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 16: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/16.jpg)
KAMMYSLIWIEC
CatsService = __decorate(
[__metadata('design:paramtypes', [HttpService, Logger])],
CatsService,
);
![Page 17: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/17.jpg)
KAMMYSLIWIEC
CatsService = __decorate(
[__metadata('design:paramtypes', [HttpService, Logger])],
CatsService,
);
![Page 18: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/18.jpg)
KAMMYSLIWIEC
CatsService = __decorate(
[__metadata('design:paramtypes', [HttpService, Logger])],
CatsService,
);
![Page 19: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/19.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 20: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/20.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 21: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/21.jpg)
REFLECTION API
![Page 22: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/22.jpg)
KAMMYSLIWIEC
Reflect.getMetadata('design:paramtypes', CatsService);
![Page 23: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/23.jpg)
KAMMYSLIWIEC
Reflect.getMetadata('design:paramtypes', CatsService);
![Page 24: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/24.jpg)
KAMMYSLIWIEC
Reflect.getMetadata('design:paramtypes', CatsService);
![Page 25: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/25.jpg)
KAMMYSLIWIEC
const metadata = Reflect.getMetadata(
‘design:paramtypes',
CatsService,
);
// metadata = [HttpService, Logger]
![Page 26: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/26.jpg)
KAMMYSLIWIEC
ENQUIRER INJECTOR
CONTAINERKEY
VALUE
![Page 27: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/27.jpg)
KAMMYSLIWIEC
BEHIND FRAMEWORKS
![Page 28: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/28.jpg)
KAMMYSLIWIEC
CatsService = __decorate(
[__metadata('design:paramtypes', [HttpService, Logger])],
CatsService,
);
![Page 29: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/29.jpg)
KAMMYSLIWIEC
CatsService = tslib_1.__decorate(
[tslib_1.__metadata(
'design:paramtypes',
[HttpService, Logger],
)],
CatsService,
);
![Page 30: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/30.jpg)
KAMMYSLIWIEC
i1.ɵdid(
1,
4308992,
null,
0,
i13.HomepageComponent,
[i1.ChangeDetectorRef, i7.Router],
null,
null,
);
![Page 31: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/31.jpg)
KAMMYSLIWIEC
i1.ɵdid(
1,
4308992,
null,
0,
i13.HomepageComponent,
[i1.ChangeDetectorRef, i7.Router],
null,
null,
);
![Page 32: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/32.jpg)
KAMMYSLIWIEC
factory: function AppComponent_Factory(t) {
return new (t || AppComponent)(
ɵɵdirectiveInject(ChangeDetectorRef),
ɵɵdirectiveInject(Router),
);
}
![Page 33: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/33.jpg)
KAMMYSLIWIEC
factory: function AppComponent_Factory(t) {
return new (t || AppComponent)(
ɵɵdirectiveInject(ChangeDetectorRef),
ɵɵdirectiveInject(Router),
);
}
![Page 34: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/34.jpg)
KAMMYSLIWIEC
REFLECTION API CHALLENGES
![Page 35: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/35.jpg)
KAMMYSLIWIEC
INTERFACES
![Page 36: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/36.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 37: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/37.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: IHttpService,
private logger: Logger,
) {}
}
![Page 38: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/38.jpg)
KAMMYSLIWIEC
const metadata = Reflect.getMetadata(
‘design:paramtypes',
CatsService,
);
// metadata = [Object, Logger]
// IHttpService === Object
![Page 39: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/39.jpg)
KAMMYSLIWIEC
POTENTIAL SOLUTION
![Page 40: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/40.jpg)
KAMMYSLIWIEC
GENERICS
![Page 41: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/41.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 42: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/42.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private httpService: HttpService,
private catsRepository: Repository<Cat>,
) {}
}
![Page 43: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/43.jpg)
KAMMYSLIWIEC
const metadata = Reflect.getMetadata(
‘design:paramtypes',
CatsService,
);
// metadata = [HttpService, Repository]
// what about Cat class?
![Page 44: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/44.jpg)
KAMMYSLIWIEC
POTENTIAL SOLUTION
![Page 45: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/45.jpg)
KAMMYSLIWIEC
CIRCULARDEPENDENCIES
![Page 46: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/46.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
private dogsService: DogsService,
) {}
}
![Page 47: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/47.jpg)
KAMMYSLIWIEC
@Injectable()
class DogsService {
constructor(
private catsService: CatsService,
) {}
}
![Page 48: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/48.jpg)
KAMMYSLIWIEC
const metadata = Reflect.getMetadata(
‘design:paramtypes',
CatsService,
);
// metadata = [undefined]
// DogsService === undefined
![Page 49: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/49.jpg)
KAMMYSLIWIEC
POTENTIAL SOLUTION
![Page 50: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/50.jpg)
KAMMYSLIWIEC
@Injectable()
class CatsService {
constructor(
@Inject(forwardRef(() => DogsService))
private dogsService: DogsService,
) {}
}
![Page 51: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/51.jpg)
KAMMYSLIWIEC
function forwardRef(forwardRefFn: ForwardRefFn): Type<any> {
(<any>forwardRefFn).__forward_ref__ = forwardRef;
...
}
![Page 52: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/52.jpg)
KAMMYSLIWIEC
function forwardRef(forwardRefFn: ForwardRefFn): Type<any> {
(<any>forwardRefFn).__forward_ref__ = forwardRef;
...
}
![Page 53: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/53.jpg)
KAMMYSLIWIEC
INJECTOR TREES
![Page 54: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/54.jpg)
KAMMYSLIWIEC
ROOTA B C
COMPONENT A
COMPONENT B
COMPONENT C
@Component({})
export class CmpC {
constructor(private c: C) {}
}
![Page 55: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/55.jpg)
KAMMYSLIWIEC
ROOTA B C
COMPONENT A
COMPONENT B
COMPONENT C
@Component({})
export class CmpC {
constructor(private c: C) {}
}
![Page 56: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/56.jpg)
KAMMYSLIWIEC
ROOTA B C
COMPONENT A
COMPONENT B
COMPONENT C
@Component({})
export class CmpC {
constructor(private c: C) {}
}
![Page 57: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/57.jpg)
KAMMYSLIWIEC
ROOTA B C
COMPONENT A
COMPONENT B
COMPONENT C
@Component({})
export class CmpC {
constructor(private c: C) {}
}
![Page 58: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/58.jpg)
INJECTORSIN NEST
![Page 59: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/59.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 60: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/60.jpg)
KAMMYSLIWIEC
![Page 61: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/61.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 62: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/62.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 63: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/63.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 64: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/64.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 65: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/65.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 66: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/66.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 67: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/67.jpg)
KAMMYSLIWIEC
GLOBALSCOPE
![Page 68: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/68.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 69: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/69.jpg)
KAMMYSLIWIEC
CORE
USERS
SHARED
APPLICATION
AUTH BLOG
![Page 70: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/70.jpg)
WHAT’S NEW
![Page 71: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/71.jpg)
KAMMYSLIWIEC
SCOPES
![Page 72: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/72.jpg)
KAMMYSLIWIEC
REQUEST
PROVIDER
REQUEST REQUEST
![Page 73: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/73.jpg)
KAMMYSLIWIEC
REQUEST
PROVIDER
REQUEST REQUEST
PROVIDER PROVIDER
![Page 74: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/74.jpg)
KAMMYSLIWIEC
@Injectable({ scope: Scope.REQUEST })
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 75: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/75.jpg)
KAMMYSLIWIEC
@Injectable({ scope: Scope.REQUEST })
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 76: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/76.jpg)
KAMMYSLIWIEC
PROVIDER C
PROVIDER A
PROVIDER B PROVIDER D
PROVIDER A PROVIDER A
![Page 77: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/77.jpg)
KAMMYSLIWIEC
@Injectable({ scope: Scope.TRANSIENT })
class CatsService {
constructor(
private httpService: HttpService,
private logger: Logger,
) {}
}
![Page 78: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/78.jpg)
KAMMYSLIWIEC
OPEN SOURCE
![Page 79: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/79.jpg)
KAMMYSLIWIEC
![Page 80: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/80.jpg)
KAMMYSLIWIECKAMMYSLIWIEC
WWW.TRILON.IO
![Page 81: DEMYSTIFYING DEPENDENCY INJECTION: ANGULAR VS NEST · injection: angular vs nest. kammysliwiec kamil mysliwiec creator of nestjs | co-founder of trilon.io ... . kammysliwiec thank](https://reader030.vdocuments.net/reader030/viewer/2022040821/5e6ae2148b7c956c2e64e70c/html5/thumbnails/81.jpg)
KAMMYSLIWIECKAMMYSLIWIEC
THANKYOU
@KAMMYSLIWIEC