Skip to content

Commit

Permalink
Fix token typings.
Browse files Browse the repository at this point in the history
  • Loading branch information
edoardocavazza committed Mar 8, 2024
1 parent 0ce12dd commit df8fcaf
Show file tree
Hide file tree
Showing 5 changed files with 30 additions and 5 deletions.
5 changes: 5 additions & 0 deletions .changeset/neat-gorillas-divide.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
"@chialab/estransform": patch
---

Fix token typings.
22 changes: 21 additions & 1 deletion packages/estransform/lib/helpers.js
Original file line number Diff line number Diff line change
Expand Up @@ -99,11 +99,16 @@ export function getLocation(code, index) {
}

/**
* Get a block of tokens.
* @param {import('./parser.js').TokenProcessor} processor
* @param {TokenType} [openingToken]
* @param {TokenType} [closingToken]
* @returns {import('./types.js').Token[]}
*/
export function getBlock(processor, openingToken = TokenType.braceL, closingToken = TokenType.braceR) {
/**
* @type {import('./types.js').Token | null}
*/
let token = processor.currentToken();
let count = 0;

Expand All @@ -130,6 +135,9 @@ export function getBlock(processor, openingToken = TokenType.braceL, closingToke
* @param {import('./parser.js').TokenProcessor} processor
*/
export function getStatement(processor) {
/**
* @type {import('./types.js').Token | null}
*/
let token = processor.currentToken();
let count = 0;

Expand All @@ -153,7 +161,9 @@ export function getStatement(processor) {
}

/**
* Split tokens into function arguments.
* @param {import('./types.js').Token[]} tokens
* @returns {import('./types.js').Token[][]}
*/
export function splitArgs(tokens) {
/**
Expand Down Expand Up @@ -205,6 +215,9 @@ export function extractFunctionArguments(processor) {
let openBrackets = 0;
let openBraces = 0;

/**
* @type {import('./types.js').Token | null}
*/
let token = processor.currentToken();
let arg = [];
while ((token && token.type !== TokenType.parenR) || openParens || openBrackets || openBraces) {
Expand Down Expand Up @@ -252,6 +265,7 @@ export function extractFunctionArguments(processor) {
/**
* Move forward in tokens list and return the current token.
* @param {import('./parser.js').TokenProcessor} processor
* @returns {import('./types.js').Token|null}
*/
export function getNextToken(processor) {
if (processor.isAtEnd()) {
Expand All @@ -267,13 +281,19 @@ export function getNextToken(processor) {
*/
export function nextBlock(processor) {
let openParens = 0;
/**
* @type {import('./types.js').Token | null}
*/
let token = processor.currentToken();
while (token && (token.type !== TokenType.parenR || openParens)) {
if (token.type === TokenType.parenR) {
openParens--;
}
token = getNextToken(processor);
if (token.type === TokenType.parenL) {
if (!token) {
break;
}
if (token && token.type === TokenType.parenL) {
openParens++;
}
}
Expand Down
2 changes: 1 addition & 1 deletion packages/estransform/lib/parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ function interopImport(mod) {
export const NameManager = /** @type {typeof import('sucrase/dist/NameManager.js').default} */ (
interopImport(NameManagerModule)
);
export const TokenProcessor = /** @type {typeof import('sucrase/dist/TokenProcessor.js').default} */ (
export const TokenProcessor = /** @type {typeof import('sucrase/dist/types/TokenProcessor').default} */ (
interopImport(TokenProcessorModule)
);

Expand Down
4 changes: 2 additions & 2 deletions packages/estransform/lib/types.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { TokenType } from 'sucrase/dist/parser/tokenizer/types.js';

/** @typedef {import('sucrase/dist/parser/index.js').File} File */
/** @typedef {import('sucrase/dist/parser/tokenizer/index.js').Token} Token */
/** @typedef {import('sucrase/dist/types/parser/index').File} File */
/** @typedef {import('sucrase/dist/types/parser/tokenizer/index').Token} Token */

export { TokenType };
2 changes: 1 addition & 1 deletion packages/estransform/modules.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ declare module 'sucrase/dist/HelperManager.js' {
}

declare module 'sucrase/dist/TokenProcessor.js' {
export { TokenProcessor as default } from 'sucrase';
export * from 'sucrase/dist/types/TokenProcessor';
}

declare module 'sucrase/dist/parser/tokenizer/types.js' {
Expand Down

0 comments on commit df8fcaf

Please sign in to comment.