agentsclimarketplace

Ts runtime node

Skill fusengine/agents/plugins/typescript-expert/skills/ts-runtime-node

Redefining development through cognitive automation and collaborative agent systems.

Install
npx -y skills add fusengine/agents --skill ts-runtime-node

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 22 stars22 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use when running TypeScript directly on Node.js without a build step — native type stripping, its limits, when to reach for tsx, ESM setup, watch mode, and node:test. Covers Node 24 LTS. Do NOT use for Bun runtime specifics (ts-runtime-bun) or tsconfig details (ts-config).

SKILL.md

4.0 KB, 926 tokens by cl100k_base, as published. Nobody here has run it

TypeScript on Node.js

Agent Workflow (MANDATORY)

Before ANY implementation, use TeamCreate to spawn 3 agents:

  1. fuse-ai-pilot:explore-codebase - Inspect existing package.json, tsconfig.json, entry scripts
  2. fuse-ai-pilot:research-expert - Verify latest Node LTS + type-stripping behavior via Context7/Exa
  3. mcp__context7__query-docs - Check Node Modules: TypeScript and CLI flag docs

After implementation, run fuse-ai-pilot:sniper for validation.

Use when

  • Running .ts/.mts/.cts files directly with node file.ts (no bundler)
  • Deciding between native type stripping and a full loader (tsx)
  • Setting up an ESM-only Node project, --watch mode, or node:test
  • Migrating a script/CLI/hook off ts-node to Node's built-in support

Do NOT use for

  • Bun runtime or bun test → use ts-runtime-bun
  • Linting / formatting choices → use ts-lint-format
  • Framework runtimes (Next.js, Astro) that own their own transpile pipeline
  • Browser/bundled output → use a bundler skill

Critical Rules

  1. Type stripping is erase-only - Node replaces types with whitespace and does NO type checking. Run tsc --noEmit separately for safety.
  2. tsconfig.json is ignored at runtime - paths, downleveling, and JS target lowering do not apply. Native stripping only erases inline types.
  3. Non-erasable syntax errors out - enum, namespace with runtime code, parameter properties, and import aliases throw ERR_UNSUPPORTED_TYPESCRIPT_SYNTAX.
  4. Use import type / verbatimModuleSyntax - Value imports of types crash at runtime; the type keyword is mandatory for type-only imports.
  5. File extensions are mandatory - import './file.ts', not ./file. .tsx is unsupported by native stripping.

Architecture

project/
├── package.json          # "type": "module"
├── tsconfig.json         # noEmit, erasableSyntaxOnly, verbatimModuleSyntax
├── src/
│   ├── index.ts          # node src/index.ts
│   └── interfaces/       # type-only modules (import type)
└── test/
    └── unit.test.ts      # node --test (node:test)

→ See node-esm-setup.md for a complete setup

Reference Guide

Concepts

TopicReferenceWhen to Consult
Type Strippingtype-stripping.mdRunning .ts natively, understanding what erases and what errors
When tsxtsx-when-needed.mdNative stripping is insufficient (paths, enums, decorators, .tsx)
Node 24 featuresreferences/node24-features.mdWatch mode, node:test, ESM resolution, relevant built-ins

Templates

TemplateWhen to Use
node-esm-setup.mdStarting an ESM Node + native TS project

Best Practices

DO

  • Set "type": "module" and use .ts/.mts with explicit import extensions
  • Keep tsc --noEmit in CI for real type safety alongside runtime stripping
  • Reach for tsx the moment you need paths, decorators, enum, or .tsx

DON'T

  • Assume tsconfig paths or target downleveling work at runtime — they don't
  • Publish .ts files inside node_modules — Node refuses to strip them
  • Rely on native stripping for decorators (TC39 Stage 3, not transformed)

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.