# tsconfig api

> ⚠️ This project is currently experimental. It is incomplete and can introduce breaking changes at any time. Do not use in production until v1 😁

This API takes the TypeScript CLI options and makes them available via a microservice API. The data is initially created by running the `createData.ts` script on a stripped version of the [compiler options](https://www.typescriptlang.org/docs/handbook/compiler-options.html) handbook file (find the markdown version [here](https://github.com/microsoft/TypeScript-Handbook/blob/master/pages/Compiler%20Options.md)). The API is a microservice built on Node.js. It uses [now](https://zeit.co/now) for build and deployment.

Use this API by making a GET request to `https://tsconfig-api.matterhorndev.now.sh/tsconfig?option=<compiler option>`

Don't forget to pass a valid compiler option to the `option` query parameter!

## Available compiler options

List generated by running `Object.keys(require('./src/tsconfig-data.json'))`

<details>
<summary>Click to reveal list</summary>
<p>

```js
[
  'allowJs',
  'allowSyntheticDefaultImports',
  'allowUmdGlobalAccess',
  'allowUnreachableCode',
  'allowUnusedLabels',
  'alwaysStrict',
  'baseUrl',
  'build',
  'charset',
  'checkJs',
  'composite',
  'declaration',
  'declarationDir',
  'declarationMap',
  'diagnostics',
  'disableSizeLimit',
  'downlevelIteration',
  'emitBOM',
  'emitDeclarationOnly',
  'emitDecoratorMetadata',
  'esModuleInterop',
  'experimentalDecorators',
  'extendedDiagnostics',
  'forceConsistentCasingInFileNames',
  'help',
  'importHelpers',
  'incremental',
  'inlineSourceMap',
  'inlineSources',
  'init',
  'isolatedModules',
  'jsx',
  'jsxFactory',
  'keyofStringsOnly',
  'lib',
  'listEmittedFiles',
  'listFiles',
  'locale',
  'mapRoot',
  'maxNodeModuleJsDepth',
  'module',
  'moduleResolution',
  'newLine',
  'noEmit',
  'noEmitHelpers',
  'noEmitOnError',
  'noErrorTruncation',
  'noFallthroughCasesInSwitch',
  'noImplicitAny',
  'noImplicitReturns',
  'noImplicitThis',
  'noImplicitUseStrict',
  'noLib',
  'noResolve',
  'noStrictGenericChecks',
  'noUnusedLocals',
  'noUnusedParameters',
  'out',
  'outDir',
  'outFile',
  'paths',
  'preserveConstEnums',
  'preserveSymlinks',
  'preserveWatchOutput',
  'pretty',
  'project',
  'reactNamespace',
  'removeComments',
  'resolveJsonModule',
  'rootDir',
  'rootDirs',
  'showConfig',
  'skipDefaultLibCheck',
  'skipLibCheck',
  'sourceMap',
  'sourceRoot',
  'strict',
  'strictBindCallApply',
  'strictFunctionTypes',
  'strictPropertyInitialization',
  'strictNullChecks',
  'suppressExcessPropertyErrors',
  'suppressImplicitAnyIndexErrors',
  'target',
  'traceResolution',
  'tsBuildInfoFile',
  'types',
  'typeRoots',
  'version',
  'watch'
]
```

</p>
</details>

## Purpose

This project was created in preparation for future tools that will utilize the TypeScript compiler options. Currently planned are a web app and a command line interface for learning about and creating tsconfig files / tsc compile commands.

## Contributing

Open an issue if you'd like to report a bug or request a feature.

Pull requests are welcome to, but please make sure to indicate what issue you are solving beforehand. 

By contributing to this project you agree to our [Code of Conduct](https://github.com/MatterhornDev/code-of-conduct)