TyrealHu/acorn-typescript

Alternative, TypeScript parser

TypeScript

154

193 commits

updated Jun 28, 2024

See the code

README

acorn-typescript

npm versionCoverage Status

This is plugin for Acorn - a tiny, fast JavaScript parser, written completely in JavaScript.

It was created as an experimental alternative, faster TypeScript parser. It will help you to parse typescript script into typeScript AST.

Usage

Requiring this module provides you with an Acorn plugin that you can use like this:

import * as acorn from 'acorn'
import tsPlugin from 'acorn-typescript'

/*
*
* */
const node = acorn.Parser.extend(tsPlugin()).parse(`
const a = 1
type A = number
export {
  a,
  type A as B
}
`, {
  sourceType: 'module',
  ecmaVersion: 'latest',
  locations: true
})

If you want to enable parsing within a TypeScript ambient context, where certain syntax have different rules (like .d.ts files and inside declare module blocks).

import * as acorn from 'acorn'
import tsPlugin from 'acorn-typescript'

/*
*
* */
const node = acorn.Parser.extend(tsPlugin({ dts: true })).parse(`
const a = 1
type A = number
export {
  a,
  type A as B
}
`, {
  sourceType: 'module',
  ecmaVersion: 'latest',
  locations: true
})

Notice

  • You have to enable options.locations while using acorn-typescript
acorn.parse(input, {
    sourceType: 'module',
    ecmaVersion: 'latest',
    // here
    locations: true
  })

SUPPORTED

  • Typescript normal syntax
  • Support to parse TypeScript Decorators
  • Support to parse JSX & TSX

CHANGELOG

click

RoadMap

  • support import-assertions

License

MIT

acorn
ast
babel
browser
javascript
nodejs
parse
parser
typescript

Contributors

TyrealHu

172 commits

ota-meshi

21 commits

Languages

TypeScript

99.7%

TyrealHu/acorn-typescript

Alternative, TypeScript parser

TypeScript

154

193 commits

updated Jun 28, 2024

See the code

README

acorn-typescript

npm versionCoverage Status

This is plugin for Acorn - a tiny, fast JavaScript parser, written completely in JavaScript.

It was created as an experimental alternative, faster TypeScript parser. It will help you to parse typescript script into typeScript AST.

Usage

Requiring this module provides you with an Acorn plugin that you can use like this:

import * as acorn from 'acorn'
import tsPlugin from 'acorn-typescript'

/*
*
* */
const node = acorn.Parser.extend(tsPlugin()).parse(`
const a = 1
type A = number
export {
  a,
  type A as B
}
`, {
  sourceType: 'module',
  ecmaVersion: 'latest',
  locations: true
})

If you want to enable parsing within a TypeScript ambient context, where certain syntax have different rules (like .d.ts files and inside declare module blocks).

import * as acorn from 'acorn'
import tsPlugin from 'acorn-typescript'

/*
*
* */
const node = acorn.Parser.extend(tsPlugin({ dts: true })).parse(`
const a = 1
type A = number
export {
  a,
  type A as B
}
`, {
  sourceType: 'module',
  ecmaVersion: 'latest',
  locations: true
})

Notice

  • You have to enable options.locations while using acorn-typescript
acorn.parse(input, {
    sourceType: 'module',
    ecmaVersion: 'latest',
    // here
    locations: true
  })

SUPPORTED

  • Typescript normal syntax
  • Support to parse TypeScript Decorators
  • Support to parse JSX & TSX

CHANGELOG

click

RoadMap

  • support import-assertions

License

MIT

acorn
ast
babel
browser
javascript
nodejs
parse
parser
typescript

Contributors

TyrealHu

172 commits

ota-meshi

21 commits

Languages

TypeScript

99.7%