|
| 1 | +import { expectType } from 'tsd'; |
| 2 | + |
| 3 | +import * as espree from "../espree.js"; |
| 4 | +import type { Options, EspreeTokens } from "../espree.js"; |
| 5 | +import type {VisitorKeys} from "../../eslint-visitor-keys/lib/index.js"; |
| 6 | + |
| 7 | +const ast = espree.parse("let foo = \"bar\""); |
| 8 | +expectType<acorn.Node>(ast); |
| 9 | + |
| 10 | +const ast_option = espree.parse("let foo = \"bar\"", { ecmaVersion: 6 }); |
| 11 | +expectType<acorn.Node>(ast_option); |
| 12 | + |
| 13 | +const tokens = espree.tokenize("let foo = \"bar\""); |
| 14 | +expectType<EspreeTokens>(tokens); |
| 15 | + |
| 16 | +const tokens_option = espree.tokenize("let foo = \"bar\"", { ecmaVersion: 6 }); |
| 17 | +expectType<EspreeTokens>(tokens_option); |
| 18 | + |
| 19 | +const version = espree.version; |
| 20 | +expectType<string>(version); |
| 21 | + |
| 22 | +const visitor_keys = espree.VisitorKeys; |
| 23 | +expectType<VisitorKeys>(visitor_keys); |
| 24 | + |
| 25 | +const latest_ecma = espree.latestEcmaVersion; |
| 26 | +expectType<number>(latest_ecma); |
| 27 | + |
| 28 | +const supported_ecma = espree.supportedEcmaVersions; |
| 29 | +expectType<number[]>(supported_ecma); |
| 30 | + |
| 31 | +const full_options: Options = { |
| 32 | + range: false, |
| 33 | + loc: false, |
| 34 | + comment: false, |
| 35 | + tokens: false, |
| 36 | + ecmaVersion: 3, |
| 37 | + allowReserved: true, |
| 38 | + sourceType: "script", |
| 39 | + ecmaFeatures: { |
| 40 | + jsx: false, |
| 41 | + globalReturn: false, |
| 42 | + impliedStrict: false, |
| 43 | + }, |
| 44 | +}; |
| 45 | +expectType<Options>(full_options); |
| 46 | + |
| 47 | +const empty_options: Options = {}; |
| 48 | +expectType<Options>(empty_options); |
| 49 | + |
| 50 | +const latest_options: Options = { |
| 51 | + ecmaVersion: 16, |
| 52 | +}; |
| 53 | +expectType<Options>(latest_options); |
0 commit comments