deepkit / deepkit-framework

A new full-featured and high-performance TypeScript framework
https://deepkit.io/
MIT License
3.18k stars 122 forks source link

[BUG]There is a problem with the Config read section. #224

Closed Lydanne closed 1 year ago

Lydanne commented 2 years ago

Code

#!/usr/bin/env ts-node-script
import { App } from '@deepkit/app';
import { FrameworkModule } from '@deepkit/framework';
import { t } from '@deepkit/type';
import { inject } from '@deepkit/injector';
import { http } from '@deepkit/http';

class Config {
    pageTitle: string = 'Cool site';
    domain: string = 'example.com';
    debug: boolean = false;
}

class MyWebsite {
    constructor(
        private debug: Config["debug"] // There is an error in this piece
    ) {
    }

}

new App({
    config: Config,
    controllers: [MyWebsite],
    imports: [new FrameworkModule]
}).run();

Error

DependenciesUnmetError: Undefined dependency "debug: never" of MyWebsite(?). Type has no provider in scope http.
    at Injector.createFactoryProperty (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/injector.ts:625:19)
    at Injector.createFactory (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/injector.ts:476:32)
    at Injector.buildProvider (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/injector.ts:363:28)
    at Injector.build (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/injector.ts:291:37)
    at new Injector (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/injector.ts:201:14)
    at WorkflowModule.getOrCreateInjector (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/module.ts:356:25)
    at RootAppModule.getOrCreateInjector (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/module.ts:357:49)
    at InjectorContext.getInjector (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/injector.ts:858:23)
    at InjectorContext.getRootInjector (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+injector@1.0.1-alpha.71_f45d4662aa19e6a8d273585c15f59e6f/node_modules/@deepkit/injector/src/injector.ts:862:21)
    at ServiceContainer.process (/Users/wmc/workspace/deepkit-template/node_modules/.pnpm/@deepkit+app@1.0.1-alpha.71_f97bda166899d869fc30762b3d222518/node_modules/@deepkit/app/src/service-container.ts:95:30)
 ELIFECYCLE  Command failed with exit code 12.
marcj commented 2 years ago

The code works for me, we have also tests for that. Maybe reflection wasn't correctly configured?