WIP - add extractor, generate snippet_data
This commit is contained in:
23
node_modules/eslint-plugin-import/memo-parser/README.md
generated
vendored
Normal file
23
node_modules/eslint-plugin-import/memo-parser/README.md
generated
vendored
Normal 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
41
node_modules/eslint-plugin-import/memo-parser/index.js
generated
vendored
Normal 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
|
||||
}
|
||||
30
node_modules/eslint-plugin-import/memo-parser/package.json
generated
vendored
Normal file
30
node_modules/eslint-plugin-import/memo-parser/package.json
generated
vendored
Normal 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"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user