Refactor Dependency Injection classes to use named imports for Type and interfaces. Change export statements from default to named exports for DependencyManager, DependencyProvider, IDependencyManager, IDependencyProvider, and NamedType classes.
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
import type IDependencyProvider from './IDependencyProvider';
|
||||
import type {IDependencyProvider} from './IDependencyProvider';
|
||||
import type IDisposable from '../lang/IDisposable';
|
||||
import Disposable from '../lang/Disposable';
|
||||
import Type from './Type';
|
||||
import type IDependencyManager from './IDependencyManager';
|
||||
import {Type} from './Type';
|
||||
import type {IDependencyManager} from './IDependencyManager';
|
||||
|
||||
type Constructor<T = unknown> = new (...args: unknown[]) => T;
|
||||
type ModuleLoader = (modulePath: string) => Promise<Constructor | {default: Constructor}>;
|
||||
|
||||
export default class DependencyManager implements IDependencyManager {
|
||||
export class DependencyManager implements IDependencyManager {
|
||||
private readonly _moduleLoader: ModuleLoader;
|
||||
private readonly _types: Type[];
|
||||
private readonly _eagerTypes: Type[];
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type IDependencyProvider from './IDependencyProvider';
|
||||
import type {IDependencyProvider} from './IDependencyProvider';
|
||||
import type {Milliseconds} from '../types/Units';
|
||||
import type IDependencyManager from './IDependencyManager';
|
||||
import type {IDependencyManager} from './IDependencyManager';
|
||||
import {Lifecycle} from './Lifecycle';
|
||||
import Type from './Type';
|
||||
import {Type} from './Type';
|
||||
|
||||
interface IStartable {
|
||||
start(): Promise<void> | void;
|
||||
@@ -14,7 +14,7 @@ function isStartable(obj: unknown): obj is IStartable {
|
||||
return obj !== null && typeof obj === 'object' && 'start' in obj && typeof (obj as IStartable).start === 'function';
|
||||
}
|
||||
|
||||
export default class DependencyProvider implements IDependencyProvider {
|
||||
export class DependencyProvider implements IDependencyProvider {
|
||||
private readonly _dependencyManager: IDependencyManager;
|
||||
private readonly _type: Type;
|
||||
private readonly _instanceType: Type;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import type Type from './Type';
|
||||
import type {Type} from './Type';
|
||||
import type IDisposable from '../lang/IDisposable';
|
||||
import type IDependencyProvider from './IDependencyProvider';
|
||||
import type {IDependencyProvider} from './IDependencyProvider';
|
||||
|
||||
export default interface IDependencyManager {
|
||||
export interface IDependencyManager {
|
||||
defineDependencies(type: Type, dependencies: Type[]): IDisposable;
|
||||
getDependencies(type: Type): Type[] | undefined;
|
||||
addProvider(provider: IDependencyProvider): IDisposable;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Type from './Type';
|
||||
import {Type} from './Type';
|
||||
|
||||
export default interface IDependencyProvider {
|
||||
export interface IDependencyProvider {
|
||||
canProvide(type: Type): boolean;
|
||||
provide(type: Type): Promise<unknown>;
|
||||
toString(): string;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import Type from './Type';
|
||||
import {Type} from './Type';
|
||||
|
||||
export default class NamedType extends Type {
|
||||
export class NamedType extends Type {
|
||||
private readonly _name: string;
|
||||
|
||||
constructor(name: string, type: string) {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
export default class Type {
|
||||
export class Type {
|
||||
private _type: string;
|
||||
|
||||
constructor(type: string) {
|
||||
|
||||
8
src/index.ts
Normal file
8
src/index.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
export type {IDependencyProvider} from './di/IDependencyProvider';
|
||||
export type {IDependencyManager} from './di/IDependencyManager';
|
||||
export type {default as IDisposable} from './lang/IDisposable';
|
||||
export type {LifecycleType} from './di/Lifecycle';
|
||||
export {Type} from './di/Type';
|
||||
export {NamedType} from './di/NamedType';
|
||||
export {DependencyManager} from './di/DependencyManager';
|
||||
export {DependencyProvider} from './di/DependencyProvider';
|
||||
Reference in New Issue
Block a user