# grunt-tsreflect

> Grunt plugin to generate TypeScript declaration files in JSON format for runtime type information.

Latest version **0.1.2** (published 2015-02-10) · 0 weekly downloads

## Install

```sh
npm install grunt-tsreflect
pnpm add grunt-tsreflect
yarn add grunt-tsreflect
bun add grunt-tsreflect
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support; pre 1.0.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.1.2 |
| Published | 2015-02-10 |
| First published | 2015-02-03 |
| Weekly downloads | 0 |
| TypeScript types | none |
| Module format | CommonJS |
| Node | >= 0.8.0 |
| Dependencies | 1 |
| Known vulnerabilities | 0 |
| Install scripts | no |
| Author | Artifact Health, LLC |
| Maintainers | artifacthealth |
| Keywords | gruntplugin, tsreflect, reflection, typescript, json, declaration, type, introspection |

## Links

- npm: https://www.npmjs.com/package/grunt-tsreflect
- Repository: https://github.com/artifacthealth/grunt-tsreflect
- Issues: https://github.com/artifacthealth/grunt-tsreflect/issues
- npm.io page: https://npm.io/package/grunt-tsreflect

## Dependencies (1)

- [tsreflect-compiler](https://npm.io/package/tsreflect-compiler.md) ^0.1.5

## Alternatives

- [@mapbox/jsonlint-lines-primitives](https://npm.io/package/@mapbox/jsonlint-lines-primitives.md) — 5.3M weekly downloads
- [reftools](https://npm.io/package/reftools.md) — 3.5M weekly downloads
- [@hey-api/openapi-ts](https://npm.io/package/@hey-api/openapi-ts.md) — 3.5M weekly downloads
- [@mapbox/geojson-rewind](https://npm.io/package/@mapbox/geojson-rewind.md) — 2.4M weekly downloads
- [turbo-stream](https://npm.io/package/turbo-stream.md) — 1.7M weekly downloads

## Recent versions

- 0.1.2 (latest) — 2015-02-10
- 0.1.1 — 2015-02-03
- 0.1.0 — 2015-02-03

## README

[![Build Status](https://travis-ci.org/artifacthealth/grunt-tsreflect.svg?branch=master)](https://travis-ci.org/artifacthealth/grunt-tsreflect)

# grunt-tsreflect

> Grunt plugin to generate TypeScript declaration files in JSON format for runtime type information.

## Getting Started
This plugin requires Grunt `~0.4.5`

If you haven't used [Grunt](http://gruntjs.com/) before, be sure to check out the [Getting Started](http://gruntjs.com/getting-started) guide, as it explains how to create a [Gruntfile](http://gruntjs.com/sample-gruntfile) as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

```shell
npm install grunt-tsreflect --save-dev
```

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

```js
grunt.loadNpmTasks('grunt-tsreflect');
```

## The "tsreflect" task

This task uses the [tsreflect-compiler](https://github.com/artifacthealth/tsreflect-compiler) to generate JSON files which contain type information from your TypeScript files.
The generated files are similar to TypeScript's .d.ts declaration files but are in a JSON format and have the extension .d.json.

### Overview
In your project's Gruntfile, add a section named `tsreflect` to the data object passed into `grunt.initConfig()`.

```js
grunt.initConfig({
  tsreflect: {
    options: {
      // Task-specific options go here.
    },
    your_target: {
      // Target-specific file lists and/or options go here.
    }
  }
});
```

### Options

#### noCheck
Type: `Boolean`
Default value: `false`

Disable type checking. If you are sure that your code already compiles correctly with TypeScript, you can enable this option for slightly faster compile times.

#### noLib
Type: `Boolean`
Default value: `false`

Disable inclusion of default lib.d.ts.

#### removeComments
Type: `Boolean`
Default value: `false`

Do not include the description from JsDoc comments in compiled output.

#### noImplicitAny
Type: `Boolean`
Default value: `false`

Warn on expressions and declarations with an implied any type.

#### suppressImplicitAnyIndexErrors
Type: `Boolean`
Default value: `false`

Suppress warnings of an implied any type on index access.

#### removeAccessors
Type: `Boolean`
Default value: `false`

Do not emit property accessor declarations. Instead, emit as field declarations.

#### removeAnnotations
Type: `Boolean`
Default value: `false`

Do not emit custom annotations in output.

#### removePrivates
Type: `Boolean`
Default value: `false`

Do not emit private class member declarations.

#### removeTypesOnPrivates
Type: `Boolean`
Default value: `false`

Do not emit type information for private class members.

By default, full declarations for private class members (including all overloads) are emitted as long as the type of
the member is accessible from outside of the module that contains the class. If the type of the member is not
accessible, the type information will be silently excluded.

#### libPath
Type: `String`

Path to the lib.d.json file relative to compiler javascript source.

#### ignoreAnnotation
Type: `[annotationName: String]: Boolean`

Controls whether or not annotations with a given name are ignored.

By default all default JsDoc annotations are ignored when generating declaration files. The ignoreAnnotations option
can be used to include an annotation that is ignored by default, or to ignore additional annotations. Please see
examples below for more information.


### Usage Examples

#### Compile files to output directory

```js
grunt.initConfig({
  tsreflect: {
    files: {
      src: [
        'src/file1.ts',
        'src/file2.ts',
        'src/files3.d.ts'
      ],
      dest: 'build/'
    }
  }
});
```

#### Compile to specified file

```js
grunt.initConfig({
  tsreflect: {
    files: {
      src: [
        'src/file1.ts',
        'src/file2.ts',
        'src/files3.d.ts'
      ],
      dest: 'build/file.d.json'
    }
  }
});
```

#### Compile to specified file and do not emit custom annotations

```js
grunt.initConfig({
  tsreflect: {
    files: {
      options: {
        removeAnnotations: true
      },
      src: [
        'src/file1.ts',
        'src/file2.ts',
        'src/files3.d.ts'
      ],
      dest: 'build/file.d.json'
    }
  }
});
```

#### Ignore @label annotation

```js
grunt.initConfig({
  tsreflect: {
    files: {
      options: {
        ignoreAnnotation: {
            label: true
        }
      },
      src: [
        'src/file1.ts'
      ],
      dest: 'build/'
    }
  }
});
```

## Contributing
In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality.

## Release History

---
_Source: https://npm.io/package/grunt-tsreflect · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
