Skip to content

TrainCase type should insert joiners between capitalized tokens #110

@outslept

Description

@outslept

Environment

Library version: current main
Typescript version: v5.8.2

Reproduction

https://www.typescriptlang.org/play/?ts=5.8.2#code/C4TwDgpgBAymA2BLYwICcoF4oCIC0OUAPrgPqEk4D0FuAdDgNwBQokUAYomgM7ADyAMxjA0iAHYBzADwwoEAB6pxAEx5Q+YqQD4sseUoir1AAwAkAbwmD0nAL6XNEyXZPMoUAPyd3UAFxQ4hAAbugsbNAAShAAtgD2oVy8AsKizrIGymoaaTp6copZpo65LpbWtpGuvt6RvgFBoWjh4NAAkjwAqmCQaBmFRtlOedgFhsZQ3b0AxgCGPBCyut6iAK7QAYKz8Ast7B0AMnEA7uj940OluqOZg+pHp2hzC0teUGsbUFs7EHvQMLMYhADhAUOgAMLzRYADVuE2GkgANFAAJpwy5aSTXXwdKZnaG6AYTXE9M4o7S+DwrNDrSn+KCHE74wkXdSMx7Scl0qnvGkQbn0767VitKCQsDIbaIABeEBUAHU4mg1NJfAAVdHqNAQWYqOLieAgHKYgDaAF1Eb4AILTaarGKreCzYBKzXG5x6HA4S0eABySpiUtlboARnE4vAdeJiFBVqoIIIJHK9EKIJbrlANUTstrdfrDVATRUMBw3QjkXRK8WoJEy6VzWaamLZhLgEG5YrlTxVR5ezWfX2oOYLDa7Q6nS60A4LOLJUhZdJ-WhA-PoNn1B83g90M9FhxdAF964B32lyuZfy+xSPAFR-bHc6lX8oAApOISbdPKGdlXqt25vUDSNBFzQHN8kwwdd3SkAc73HR9INZaDJE9b1mAzLMkIA-MjSLcQbBLOtMQrKt8MqIjnAbJs4IfSc3S9OlvHA8RP13H9u0iZFmPQZFhxoiclWnVioWkI8TGvXsAmY4SFnY6RONfd8gjQXjLH4hDp24qdLBkvdtFcCTb1te8BOaZgRXYA55hSK00DQWYQGkTCiigWZxBAc0MLdE1KzoNyQGRatIjNN5awaEIwgsqJYgSYFrKEWz7Mc5y7lc9zPL0FKJh80iCM4ZF-MbHkOHqQIIrM5hFDAJVgHeUVIQWfgwGARB9XUbALF8cQA3bTwAjDCMoxYOwWEqhRqrQWqIlgBBkAAIRABrFnVAcYAgMBZnsuioIRfJZrBFTrWM+DtqQuMAGtuuOcRzT0UD0L0XaoLWjatqVJsQKK+ksuyYdqw4acguqPtvBNKy+ASuyHOkdTJ20EKoJNRp0C+kGZqQYAFqW+TkRezaEORE0ODNCS+wCcGbKhxzYaVFkXIRAUeVrKCGMHQdvDgDGsZExm2f7Xm2bxt7Dr5vmTQFvnfOieJQgpyGkph47aNpk9RcHYc5cERLoZptB9MsAGTFVtWoFRtXSb5gIASBEEDuxjhkSSCHUkxeTtDp1KPgl4q3SFhDvd7bwnZSERXciD2Jj9ycA7Rzn5sWkSFKjpVCd83XkS9EmY8khkulJPpg6EUP0nDiPsi9k3RY5-buZebPRel2LC5dkvtGNyvBfW-HJ3bju+xyuh084bhneLqQ3bNvvewtqerZrhOXiTrvhdTysh8zme1bnrmF+Wqe+04+ve2TkX948cWz77KWYtl+KtapxWx2VvXe77jW7+16mldM-WLEN1+TaT0rpvNmAR2RnH3G6Cufdq472xkfDwjdEgjxDqUN2AC1YnwwaLC+l8PDXxlnFZ2n9H4mQQm3BBvZ37EIfrrX+-9KEeGbmPGQ4dsF8yASbEBlt0bx2xkvV6BNCxp2-kI4m3DwpNDpEZJ+plvJAO8D9dQrM+ag04fST6AoZFkMnKNKqNU6rsGYrXRYaouJKVsDtK4j1ShujVB9UopVPp2MYshaRmYKJSAFLAvhIk1Rly1DqQCBZNFV0Uh+JkX5ZJKhVHHTGu8nJt3CcpCRZUpGgI8VBbCQFkLml5kxJSuk5JmOSegVJyMKr6MmoY6AAAFeYcx4DwI8GY3wZ52yhnDJGNyMY4wqATEmFQKZtgLHTDYzELieQMxvLkhGSF7Fo2mTnJRbi2Y+Pidjfx-4gk4Vmfk5srZ2wKhid2OJJjEkZ29FAdpq5ynlS0ZkrCOycmhNUQcucF5jldicpc5ENyLx3KaHo8aBjpqQiBE0nmLSBz-ODFBAa3TowkD6QMoIQzsCpjGdgJ68yHGYicfWOZLkFmB1WTnTo4g5iHNXNIepPBGmbL+T1W52hgUTSmqKAA0hAEMswQzNMefTWxJBskhMJWBCxiEhUTOwPgNCGZjEJJKVpVl5kqkcvYDAcQsxzoQE2Z4lCIrnlitNCTPQiqBWtI8Dgcg6E2WgtFGqeyEhLUwuZReTpg0enIvjImNFwyfgSoggaz0BAsXIUmW8JZARnFQRJVMxxZNBWpSWbHeemyAlQFFcBQl+zZxtlXF82J6a-FJJVbzSR6AHkrOzXssJ+ajnFPMRBJly52yAsimNdlNTOATktSGo1eYXnit8FpENsr5XmqUuc5VkrVVUCoPIcQLVtRfEQJGKA0w4gSmTIINAcQYhQDwFAAAFigMAPA-ALskMgE9qwQx0C3TEKgcYABWPAqD0sdBAKgIZ4BxBDFQQMEhP1PCoBEHgdBgA8HMrB8y00ACiABHVY2wYbIjmtiDwAAKRJ2GACUWBdArKtG8AAjPSAATIR9cvhcP+II0R5NEw5rkao4R6k6xBQjN+PB0UCHxoQGmMAJyUC+QYVGguzMzrxBLSgBtHgCwNwnugK+yVrllPQAkMgRA2xXKiLoi6d5BaLzsToMwKTDbC3sSgLslskAJgul1eIDccR3gqf07IhCaUhkVKgBIBYk1NNQDU8GkMoJThGHc7ES0UmeBueAB50LykoDhafRAdQsx5PakTAoHzUBjgnNcqunAkh4DrBUIQbD+AAASEB4D-s7PASr-mXOoF1LZwQuA6sNbiHgJrlX8NRUzBR7ATrZgupEjgFTvW8CFbQM1nAqqLOLqqkJ1AQyjNbHXQENUFHEDqG6rVHAPX-39aVIt4bHAJtICkHoATkBhPSGQ6h+ATkyMZ1O31gbS352LoU0p5EIZVhTRPQd-z6hjj7q8dNOlPAPTYAe+t57KG0N7YzngL7P33ajWG2qSjmUZPYxNNN+r-6rk4Hm4tkmz5rvrucATxHgmnsvbR5Rz7ZPvsXcqzj4bcOGf3eZyJ1nb38cY6x9z37jAoBAA

Describe the bug

TrainCase returns "-HelloWorld" instead of "Hello-World", so it doesn’t match the runtime output. This happens because the joiner is used as the initial accumulator (a prefix) in CapitalizedWords, rather than being inserted between tokens

Additional context

Logs

-

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions