cosmiconfig-typescript-loader
Version:
TypeScript loader for cosmiconfig
83 lines (62 loc) • 3.25 kB
Markdown
> ⚙️🚀 TypeScript config file support for cosmiconfig
[](https://github.com/Codex-/cosmiconfig-typescript-loader/actions/workflows/build.yml)
[](https://codecov.io/gh/Codex-/cosmiconfig-typescript-loader)
[](https://www.npmjs.com/package/cosmiconfig-typescript-loader)
Simply add `TypeScriptLoader` to the list of loaders for the `.ts` file type, and `await` loading:
```ts
import { cosmiconfig } from "cosmiconfig";
import { TypeScriptLoader } from "cosmiconfig-typescript-loader";
const moduleName = "module";
const explorer = cosmiconfig("test", {
searchPlaces: [
"package.json",
`.${moduleName}rc`,
`.${moduleName}rc.json`,
`.${moduleName}rc.yaml`,
`.${moduleName}rc.yml`,
`.${moduleName}rc.js`,
`.${moduleName}rc.ts`,
`.${moduleName}rc.cjs`,
`${moduleName}.config.js`,
`${moduleName}.config.ts`,
`${moduleName}.config.cjs`,
],
loaders: {
".ts": TypeScriptLoader(),
},
});
const cfg = await explorer.load("./");
```
Or more simply if you only support loading of a TypeScript based configuration file:
```ts
import { cosmiconfig } from "cosmiconfig";
import { TypeScriptLoader } from "cosmiconfig-typescript-loader";
const moduleName = "module";
const explorer = cosmiconfig("test", {
loaders: {
".ts": TypeScriptLoader(),
},
});
const cfg = await explorer.load("./amazing.config.ts");
```
With the release of Jiti 2, the synchronous loader has now been deprecated. It can still be used by using the `TypeScriptLoaderSync` export:
```ts
import { cosmiconfig } from "cosmiconfig";
import { TypeScriptLoaderSync } from "cosmiconfig-typescript-loader";
const moduleName = "module";
const explorer = cosmiconfig("test", {
loaders: {
".ts": TypeScriptLoaderSync(),
},
});
const cfg = explorer.load("./amazing.config.ts");
```
This package serves as a drop in replacement for `@endemolshinegroup/cosmiconfig-typescript-loader`. At the time of publishing this, `endemolshinegroup` is not maintaining the original package. I can only assume this is to do with the fact that Endemol Shine Group [was purchased and absorbed by another business](https://en.wikipedia.org/wiki/Endemol_Shine_Group#Sale_to_Banijay). This discontinuation of development efforts towards the original package left any open issues and pull requests unresolved.
This new package resolves the following original issues:
- [`
- [`
- [`