moduleFile
A component's module: .tsx when it uses JSX (TypeScript only parses JSX there), .ts otherwise. Its first
JSX member's runtime is named in a pragma, so every compiler (tcm's module hook, Vite, the type checker)
compiles the elements to the pinned version.
import type { DefSource } from "#codebase/tcmts/loader"; export function moduleFile(componentHash: string, src: Pick<DefSource, "members">): string { return `${componentHash}${src.members(componentHash).some((m) => m.jsx) ? ".tsx" : ".ts"}`; }
uses
used by
- tcmts.cli.codebase.Codebase
- tcmts.cli.fmt.formatStored
- tcmts.cli.kept.keepValues
- tcmts.cli.semver_checks.checkPairs
- tcmts.cli.vitest.prepareTestRun
- tcmts.cli.web.modulePathIn
- tcmts.loader.evaluateWatches
- tcmts.loader.materialize
- tcmts.loader.render
- tcmts.loader.runTests
- tcmts.loader.writePairModule
- tcmts.loader.writeRunner
- tcmts.loader.writeShim