{"id":23146560,"url":"https://github.com/k-foss/ts-esnode","last_synced_at":"2025-08-17T16:33:49.381Z","repository":{"id":37794721,"uuid":"234809503","full_name":"K-FOSS/TS-ESNode","owner":"K-FOSS","description":"Node.JS Loader hook to transform typescript source and files as node loads them TS-ESNode. TS-Node for ESNext \u0026 ESModule Node.JS. ","archived":false,"fork":false,"pushed_at":"2023-12-07T18:50:35.000Z","size":1456,"stargazers_count":38,"open_issues_count":32,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-12-02T04:29:51.541Z","etag":null,"topics":["esmodule-node","esnext","esnode","node-loader-hook","nodejs-hook","ts-node","typescript","typescript-source"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/K-FOSS.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-01-18T23:01:25.000Z","updated_at":"2024-06-04T07:26:24.000Z","dependencies_parsed_at":"2024-06-18T17:13:51.499Z","dependency_job_id":"441b5e95-f678-456c-ab87-01a6a98dd7f1","html_url":"https://github.com/K-FOSS/TS-ESNode","commit_stats":{"total_commits":194,"total_committers":12,"mean_commits":"16.166666666666668","dds":0.5618556701030928,"last_synced_commit":"389281fece5312ec1bc6faa2991f004270952c4a"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K-FOSS%2FTS-ESNode","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K-FOSS%2FTS-ESNode/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K-FOSS%2FTS-ESNode/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/K-FOSS%2FTS-ESNode/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/K-FOSS","download_url":"https://codeload.github.com/K-FOSS/TS-ESNode/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230146282,"owners_count":18180485,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["esmodule-node","esnext","esnode","node-loader-hook","nodejs-hook","ts-node","typescript","typescript-source"],"created_at":"2024-12-17T16:30:14.418Z","updated_at":"2024-12-17T16:30:38.342Z","avatar_url":"https://github.com/K-FOSS.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TS-ESNode\n\n[![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release)\n[![Code Quality](https://img.shields.io/github/workflow/status/K-FOSS/TS-ESNode/Push%20Workflow/main?style=flat-square)\n[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)\n![Libraries.io dependency status for latest release, scoped npm package](https://img.shields.io/librariesio/release/npm/@k-foss/ts-esnode)\n[![Conventional Commits](https://img.shields.io/badge/Conventional%20Commits-1.0.0-yellow.svg)](https://conventionalcommits.org)\n[![Dependabot](https://badgen.net/badge/Dependabot/enabled/green?icon=dependabot)](https://dependabot.com/)\n\nThis is a Node.JS Loader hook for Node.JS 13.9 or newer that transpiles TypeScript files into JavaScript using the `getFormat`, `resolve`, and `transformSource` hooks.\n\nFor Node.JS use `npm install @k-foss/ts-esnode@latest`\n\n## Usage\n\nYou should already have `\"type\": \"module\"` in your `package.json`\n\nInstall `@k-foss/ts-esnode`\n\nCreate a `dev` script in `package.json`\n\n```\n{\n  \"scripts\": {\n    \"dev\": \"node --loader @k-foss/ts-esnode --loader extensionless ./src/index.ts\",\n  }\n}\n```\n\nNow when you run `npm run dev` then you should be running your TypeScript source without having to transpile it while still retaining Node.JS ESModule \u0026 ESNext module mode.\n\n## Development\n\n### Setting up the development container\n\nFollow these steps to open this project in a container:\n\n1. If this is your first time using a development container, please follow the [getting started steps](https://aka.ms/vscode-remote/containers/getting-started).\n\n2. To use this repository, you can either open the repository in an isolated Docker volume:\n\n   - Press \u003ckbd\u003eF1\u003c/kbd\u003e and select the **Remote-Containers: Open Repository in Container...** command.\n   - Enter `K-FOSS/TS-ESNode`\n   - The VS Code window (instance) will reload, clone the source code, and start building the dev container. A progress notification provides status updates.\n\n   Or open a locally cloned copy of the code:\n\n   - Clone this repository to your local filesystem.\n     - `git clone https://github.com/K-FOSS/TS-ESNode.git`\n   - Open the project folder in Visual Studio Code.\n     - `code ./TS-ESNode`\n   - Reopen in Container\n\n     - When you open the project folder in Visual Studio Code you should be prompted with a notification asking if you would like to reopen in container.\n\n     Or manually reopen\n\n     - Press F1 and select the \"Remote-Containers: Open Folder in Container...\" command.\n\n#### TODO\n\n- Worker Threads to avoid the TypeScript compiling affecting main thread.\n\n- Performance improvements. (Better file/import finding.)\n\n### Testing\n\n**MUST HAVE NODE.JS v13.9 or newer**\n\nTo try this out, clone repo\n\nInstall NPM modules\n\n```\nnpm install\n```\n\nRun all tests under [`./Testing/Tests/`](./Testing/Tests/)\n\n```\nnpm test\n```\n\nAll tests are run on all commits and PRs.\n\n### Style\n\nThis project currently uses Prettier for code styling and automatic formatting. Prettier is run on every commit and pull request.\n\nRun Prettier\n\n```\nnpm run prettier\n```\n\n### Linting\n\nThis project currently uses ESLint for code linting. ESLint is run on every commits and pull request.\n\nRun ESLint\n\n```\nnpm run lint\n```\n\n### Dependency Management\n\nDependency Management for TS-ESNode is handled by automated pull requests created by [Dependabot](https://github.com/marketplace/dependabot-preview). When new released of development Dependencies are released Dependabot automatically creates a pull request for upgrading to the new version. If the created pull request passes the GitHub Actions testing, prettier/styling, and linting I will merge the pull request.\n\n### Releases\n\n@K-FOSS/TS-ESNode uses [semantic-release](https://github.com/semantic-release/semantic-release) to intelligently automate the creation of a changelog, automatic package publish to NPM, along with creating a GitHub release and tag.\n\nSemantic-Release is currently configured to analyze commits with the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) preset to determine if and how the package version should be incremented and if a release should be published, which is why it is important to mantain the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) spec for all commits.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk-foss%2Fts-esnode","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fk-foss%2Fts-esnode","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fk-foss%2Fts-esnode/lists"}