Is your feature request related to a problem? Please describe.
Logging this as a FR because the issue is caused by an long-open TS issue, and other packages have worked around this issue by lower-casing all directory and filenames.
On a case-insensitive filesystem (such as macOS in default config), this package produces both cased (title-case) filenames and triple slash reference types= directives that are cased. So far so good.
However, TS has an open issue that results in a TypeScript build-time error if tsconfig.json > compilerOptions.forceConsistentCasingInFileNames==true (default is true, for good reason).
That means that users of this package who wish to tsc (build) on macOS are forced to set forceConsistentCasingInFileNames to false.
I know this is an uncommon configuration, and I'm not certain is this is critical or even relevant, but our working example involves:
- A primary project that includes this stripe package as a dependency
- The primary package also includes a git repo as a dependency, and that repo dependency also includes this stripe package as a dependency
(I don't have time just now to repro this in a more plain vanilla config sorry).
The tsc build error message is:
"File name {git repo dependency's node_modules/stripe directory and file} differs from already included file name '{primary project node_modules/stripe directory and file}' only in casing"
"Type library referenced via 'stripe/types/WebhookEndpoints' from file {git repo dependency's node_modules/stripe directory and file} with packageId 'stripe/types/webhookendpoints.d.ts@14.25.0'" <-- notice that the filename is lower-cased.
In both of those filesystem locations, the directory and file names are cased (title case).
So tsc is deciding to look for a lower-cased filename even through all references to the file in all locations in the npm install filesystem are cased (title case), and all directories and filenames themselves are also cased, and the /// <reference types="" /> triple slash directive is also cased.
As above, the work-around is to forceConsistentCasingInFileNames to false, but you shouldn't be forced to do that.
The issue does not occur when building on Ubuntu, for example (with forceConsistentCasingInFileNames to set to either true or false).
Describe the solution you'd like
In other packages (eg Automattic/mongoose) they have lower-cased their filenames to side-step this issue. Perhaps that might be an option here.
Describe alternatives you've considered
No response
Additional context
No response
Is your feature request related to a problem? Please describe.
Logging this as a FR because the issue is caused by an long-open TS issue, and other packages have worked around this issue by lower-casing all directory and filenames.
On a case-insensitive filesystem (such as macOS in default config), this package produces both cased (title-case) filenames and triple slash
reference types=directives that are cased. So far so good.However, TS has an open issue that results in a TypeScript build-time error if tsconfig.json > compilerOptions.forceConsistentCasingInFileNames==true (default is true, for good reason).
That means that users of this package who wish to
tsc(build) on macOS are forced to set forceConsistentCasingInFileNames to false.I know this is an uncommon configuration, and I'm not certain is this is critical or even relevant, but our working example involves:
(I don't have time just now to repro this in a more plain vanilla config sorry).
The tsc build error message is:
"File name {git repo dependency's node_modules/stripe directory and file} differs from already included file name '{primary project node_modules/stripe directory and file}' only in casing"
"Type library referenced via 'stripe/types/WebhookEndpoints' from file {git repo dependency's node_modules/stripe directory and file} with packageId 'stripe/types/webhookendpoints.d.ts@14.25.0'" <-- notice that the filename is lower-cased.
In both of those filesystem locations, the directory and file names are cased (title case).
So
tscis deciding to look for a lower-cased filename even through all references to the file in all locations in thenpm installfilesystem are cased (title case), and all directories and filenames themselves are also cased, and the/// <reference types="" />triple slash directive is also cased.As above, the work-around is to forceConsistentCasingInFileNames to false, but you shouldn't be forced to do that.
The issue does not occur when building on Ubuntu, for example (with forceConsistentCasingInFileNames to set to either true or false).
Describe the solution you'd like
In other packages (eg Automattic/mongoose) they have lower-cased their filenames to side-step this issue. Perhaps that might be an option here.
Describe alternatives you've considered
No response
Additional context
No response