Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ts-node is registered if generator is imported in a .js file #1030

Closed
bakasmarius opened this issue Aug 21, 2023 · 7 comments · Fixed by #1165
Closed

ts-node is registered if generator is imported in a .js file #1030

bakasmarius opened this issue Aug 21, 2023 · 7 comments · Fixed by #1165
Labels
bug Something isn't working stale

Comments

@bakasmarius
Copy link
Contributor

Describe the bug

ts-node is registered if @asyncapi/generator is simply imported in a file, even though the constructor or any other of generator's methods is not called at all.
This means that after building a TypeScript project, when it is transpiled to JavaScript, ts-node is still registered, even though TypeScript is not needed anymore.
This also means that ts-node is registered in a JavaScript project that does not use TypeScript at all.
We noticed it because after adding nestjs-asyncapi (which uses @asyncapi/generator) to one of our bigger projects, the startup time of npm start increased by ~30 seconds.

How to Reproduce

Create a new file test.js which only imports @asyncapi/generator and does nothing else with it:

const { REGISTER_INSTANCE } = require('ts-node');
console.log(process[REGISTER_INSTANCE] == null); // prints "true"
const generator = require('@asyncapi/generator');
console.log(process[REGISTER_INSTANCE] == null); // prints "false"

run node test.js and look at the output

Expected behavior

ts-node is registered only when it's actually needed.

@bakasmarius bakasmarius added the bug Something isn't working label Aug 21, 2023
@github-actions
Copy link
Contributor

Welcome to AsyncAPI. Thanks a lot for reporting your first issue. Please check out our contributors guide and the instructions about a basic recommended setup useful for opening a pull request.
Keep in mind there are also other channels you can use to interact with AsyncAPI community. For more details check out this issue.

@derberg
Copy link
Member

derberg commented Sep 4, 2023

This is the reason -> https://github.com/asyncapi/generator/blob/master/lib/generator.js#L59 -> https://github.com/asyncapi/generator/blob/master/lib/utils.js#L163

This is why it was added: #519

Any suggestions?

Looks like it would be enough to call this register function only if there are .ts files in:

🤔

@derberg
Copy link
Member

derberg commented Oct 25, 2023

@magicmatatjahu wdyt?

Copy link
Contributor

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

@github-actions github-actions bot added the stale label Feb 23, 2024
@AnimeshKumar923
Copy link
Contributor

still valid? @derberg

@github-actions github-actions bot removed the stale label Feb 25, 2024
@derberg
Copy link
Member

derberg commented Mar 11, 2024

@AnimeshKumar923 yes, go ahead with PR if you want 🙏🏼

Copy link
Contributor

This issue has been automatically marked as stale because it has not had recent activity 😴

It will be closed in 120 days if no further activity occurs. To unstale this issue, add a comment with a detailed explanation.

There can be many reasons why some specific issue has no activity. The most probable cause is lack of time, not lack of interest. AsyncAPI Initiative is a Linux Foundation project not owned by a single for-profit company. It is a community-driven initiative ruled under open governance model.

Let us figure out together how to push this issue forward. Connect with us through one of many communication channels we established here.

Thank you for your patience ❤️

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working stale
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants