-
Notifications
You must be signed in to change notification settings - Fork 883
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add some properties and methods missing on Parser class #1104
Conversation
acorn/dist/acorn.d.ts
Outdated
@@ -36,8 +38,47 @@ declare namespace acorn { | |||
} | |||
|
|||
class Parser { | |||
// state.js | |||
lineStart: number; | |||
options: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why not option: Options
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Commit added to change...
acorn/dist/acorn.d.ts
Outdated
unexpected(pos: number) : void; | ||
|
||
// index.js | ||
static acorn: { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It seems like static acorn: typeof acorn
would work here to automatically include all exports.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, cool. Seems like that will work. Commit added.
Thank you. Found one more nitpick, looks fine after that. |
Thank you! |
0. depends on acorn and acorn-jsx being updated per PRs a. acornjs/acorn#1104 (merged but not yet released) b. acornjs/acorn#1105 c. acornjs/acorn-jsx#130 1. Refactor to avoid `typedef` shortcuts when not desired for export 2. Avoid dummy class, so parse JavaScript with https://github.com/es-joy/jsdoc-eslint-parser feat: Adds JSDoc-based TypeScript declaration file Also: 1. chore: adds `editorconfig` 2. refactor: Removes unused esprima 3. refactor: changes to force EspreeParser constructor to convert `new String` to plain string (for typing) 4. refactor: switches to `Object.keys` to avoid `hasOwnProperty` and easier for typing 5. refactor: drops a use of `acorn.Parser.extend` for typing purposes 6. refactor: checks for existence of `tokens` in `tokenize` (as may be absent) 7. refactor: checks for existence of `firstNode.range` and `firstNode.loc` in `parse` (as may be absent) 8. refactor: checks for existence of `extra.lastToken.range` and `extra.lastToken.loc` in `parse` (as may be absent) 7. feat: throws specific error if `jsx_readString` superclass undefined 8. refactor: checks for existence of `lastTemplateToken.loc` and `lastTemplateToken.range` in `token-translator.js` (as may be absent)
0. depends on acorn and acorn-jsx being updated per PRs a. acornjs/acorn#1104 (merged but not yet released) b. acornjs/acorn#1105 (merged but not yet released) c. acornjs/acorn-jsx#130 1. Refactor to avoid `typedef` shortcuts when not desired for export 2. Avoid dummy class, so parse JavaScript with https://github.com/es-joy/jsdoc-eslint-parser feat: Adds JSDoc-based TypeScript declaration file Also: 1. chore: adds `editorconfig` 2. refactor: Removes unused esprima 3. refactor: changes to force EspreeParser constructor to convert `new String` to plain string (for typing) 4. refactor: switches to `Object.keys` to avoid `hasOwnProperty` and easier for typing 5. refactor: drops a use of `acorn.Parser.extend` for typing purposes 6. refactor: checks for existence of `tokens` in `tokenize` (as may be absent) 7. refactor: checks for existence of `firstNode.range` and `firstNode.loc` in `parse` (as may be absent) 8. refactor: checks for existence of `extra.lastToken.range` and `extra.lastToken.loc` in `parse` (as may be absent) 7. feat: throws specific error if `jsx_readString` superclass undefined 8. refactor: checks for existence of `lastTemplateToken.loc` and `lastTemplateToken.range` in `token-translator.js` (as may be absent)
0. depends on acorn and acorn-jsx being updated per PRs a. acornjs/acorn#1104 (merged but not yet released) b. acornjs/acorn#1105 (merged but not yet released) c. acornjs/acorn-jsx#130 1. Refactor to avoid `typedef` shortcuts when not desired for export 2. Avoid dummy class, so parse JavaScript with https://github.com/es-joy/jsdoc-eslint-parser feat: Adds JSDoc-based TypeScript declaration file Also: 1. chore: adds `editorconfig` 2. refactor: Removes unused esprima 3. refactor: changes to force EspreeParser constructor to convert `new String` to plain string (for typing) 4. refactor: switches to `Object.keys` to avoid `hasOwnProperty` and easier for typing 5. refactor: drops a use of `acorn.Parser.extend` for typing purposes 6. refactor: checks for existence of `tokens` in `tokenize` (as may be absent) 7. refactor: checks for existence of `firstNode.range` and `firstNode.loc` in `parse` (as may be absent) 8. refactor: checks for existence of `extra.lastToken.range` and `extra.lastToken.loc` in `parse` (as may be absent) 7. feat: throws specific error if `jsx_readString` superclass undefined 8. refactor: checks for existence of `lastTemplateToken.loc` and `lastTemplateToken.range` in `token-translator.js` (as may be absent)
0. depends on acorn and acorn-jsx being updated per PRs a. acornjs/acorn#1104 (merged but not yet released) b. acornjs/acorn#1105 (merged but not yet released) c. acornjs/acorn-jsx#130 1. Refactor to avoid `typedef` shortcuts when not desired for export 2. Avoid dummy class, so parse JavaScript with https://github.com/es-joy/jsdoc-eslint-parser feat: Adds JSDoc-based TypeScript declaration file Also: 1. chore: adds `editorconfig` 2. refactor: Removes unused esprima 3. refactor: changes to force EspreeParser constructor to convert `new String` to plain string (for typing) 4. refactor: switches to `Object.keys` to avoid `hasOwnProperty` and easier for typing 5. refactor: drops a use of `acorn.Parser.extend` for typing purposes 6. refactor: checks for existence of `tokens` in `tokenize` (as may be absent) 7. refactor: checks for existence of `firstNode.range` and `firstNode.loc` in `parse` (as may be absent) 8. refactor: checks for existence of `extra.lastToken.range` and `extra.lastToken.loc` in `parse` (as may be absent) 7. feat: throws specific error if `jsx_readString` superclass undefined 8. refactor: checks for existence of `lastTemplateToken.loc` and `lastTemplateToken.range` in `token-translator.js` (as may be absent)
0. depends on acorn and acorn-jsx being updated per PRs a. acornjs/acorn#1104 (merged but not yet released) b. acornjs/acorn#1105 (merged but not yet released) c. acornjs/acorn-jsx#130 1. Refactor to avoid `typedef` shortcuts when not desired for export 2. Avoid dummy class, so parse JavaScript with https://github.com/es-joy/jsdoc-eslint-parser feat: Adds JSDoc-based TypeScript declaration file Also: 1. chore: adds `editorconfig` 2. refactor: Removes unused esprima 3. refactor: changes to force EspreeParser constructor to convert `new String` to plain string (for typing) 4. refactor: switches to `Object.keys` to avoid `hasOwnProperty` and easier for typing 5. refactor: drops a use of `acorn.Parser.extend` for typing purposes 6. refactor: checks for existence of `tokens` in `tokenize` (as may be absent) 7. refactor: checks for existence of `firstNode.range` and `firstNode.loc` in `parse` (as may be absent) 8. refactor: checks for existence of `extra.lastToken.range` and `extra.lastToken.loc` in `parse` (as may be absent) 7. feat: throws specific error if `jsx_readString` superclass undefined 8. refactor: checks for existence of `lastTemplateToken.loc` and `lastTemplateToken.range` in `token-translator.js` (as may be absent)
Hi,
We're looking to add type support to Espree (and other projects in the ESLint space), and it looks like we could use these missing class items (especially since limiting ourselves to basic JSDoc for the TS declaration file generation makes it more useful not to have to reimplement types ourselves).
Rather new to using TypeScript, so hope I've gotten things done all right. It doesn't cover all methods and properties, but I hope this will at least improve things.
Thanks!