WIP - add extractor, generate snippet_data

This commit is contained in:
Stefan Fejes
2019-08-20 15:52:05 +02:00
parent 88084d3d30
commit cc8f1d8a7a
37396 changed files with 4588842 additions and 133 deletions

View File

@ -0,0 +1,23 @@
# eslint-plugin-import/memo-parser
## NOTE!
This used to improve performance, but as of ESLint 5 and v2 of this plugin, it seems to just consume a bunch of memory and slightly increase lint times.
**Not recommended for use at this time!**
This parser is just a memoizing wrapper around some actual parser.
To configure, just add your _actual_ parser to the `parserOptions`, like so:
```yaml
parser: eslint-plugin-import/memo-parser
# parser: babel-eslint
parserOptions:
parser: babel-eslint
sourceType: module
ecmaVersion: 6
```

41
node_modules/eslint-plugin-import/memo-parser/index.js generated vendored Normal file
View File

@ -0,0 +1,41 @@
"use strict"
const crypto = require('crypto')
, moduleRequire = require('eslint-module-utils/module-require').default
, hashObject = require('eslint-module-utils/hash').hashObject
const cache = new Map()
// must match ESLint default options or we'll miss the cache every time
const parserOptions = {
loc: true,
range: true,
raw: true,
tokens: true,
comment: true,
attachComment: true,
}
exports.parse = function parse(content, options) {
options = Object.assign({}, options, parserOptions)
if (!options.filePath) {
throw new Error("no file path provided!")
}
const keyHash = crypto.createHash('sha256')
keyHash.update(content)
hashObject(options, keyHash)
const key = keyHash.digest('hex')
let ast = cache.get(key)
if (ast != null) return ast
const realParser = moduleRequire(options.parser)
ast = realParser.parse(content, options)
cache.set(key, ast)
return ast
}

View File

@ -0,0 +1,30 @@
{
"name": "memo-parser",
"version": "0.2.0",
"engines": {
"node": ">=4"
},
"description": "Memoizing wrapper for any ESLint-compatible parser module.",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "git+https://github.com/benmosher/eslint-plugin-import.git"
},
"keywords": [
"eslint",
"eslint-plugin-import",
"parser"
],
"author": "Ben Mosher (me@benmosher.com)",
"license": "MIT",
"bugs": {
"url": "https://github.com/benmosher/eslint-plugin-import/issues"
},
"homepage": "https://github.com/benmosher/eslint-plugin-import#readme",
"peerDependencies": {
"eslint": ">=3.5.0"
}
}