samchon / nestia

NestJS Helper Libraries + TypeScript OpenAPI generator
https://nestia.io/
MIT License
1.79k stars 92 forks source link

Nestia fail to build sdk when each module(namespace) depend on each other. #472

Closed rojiwon123 closed 1 year ago

rojiwon123 commented 1 year ago

Bug Report

스크린샷 2023-07-20 오후 12 22 43

User.Service.getFalse function depend on BIZUser.Service.getTrue function. and BIZUser.Service.getFalse depend on User.Service.flip. In especially, BIZUser.Service.getFalse function is created by User.Service.flip. so User.Service.flip is called when BIZUser.Service.getFalse function is created.

In above situation, nestia fail to swagger/sdk build.

Analyzing reflections
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Error on "/Users/*/github/nestia-template/src/controllers/users.ts" file. Check your code.
TypeError: Cannot read properties of undefined (reading 'Service')
    at /Users/*/github/nestia-template/src/providers/user/biz_user/service.ts:5:34
    at Object.<anonymous> (/Users/*/github/nestia-template/src/providers/user/biz_user/service.ts:6:2)
    at Module._compile (node:internal/modules/cjs/loader:1254:14)
    at Module.m._compile (/Users/*/github/nestia-template/node_modules/ts-node/src/index.ts:1618:23)
    at Module._extensions..js (node:internal/modules/cjs/loader:1308:10)
    at Object.require.extensions.<computed> [as .ts] (/Users/*/github/nestia-template/node_modules/ts-node/src/index.ts:1621:12)
    at Module.load (node:internal/modules/cjs/loader:1117:32)
    at Function.Module._load (node:internal/modules/cjs/loader:958:12)
    at Module.require (node:internal/modules/cjs/loader:1141:19)
    at require (node:internal/modules/cjs/helpers:110:18)
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Summary

Code occuring the bug

git clone https://github.com/industriously/nestia-template.git
cd nestia-template
npm i && npm run nestia
rojiwon123 commented 1 year ago

test repo: https://github.com/industriously/nestia-template

관련 코드

rojiwon123 commented 1 year ago

js build가 정상적으로 되길래 nestia에서만 발생하는 문제라고 착각했습니다. 순환 참조(?)로 인해 런타임 환경에서 코드를 정상적으로 로딩하지 못하네요. 제가 완전히 잘못된 코드를 작성한 것 같습니다.