Izmjenjena struktura, dodan backand

This commit is contained in:
GotPPay
2017-10-16 11:19:46 +02:00
parent 1ec88afacb
commit 048e32c4aa
37153 changed files with 2975854 additions and 1 deletions

View File

@@ -0,0 +1,15 @@
# eslint-plugin-import/memo-parser
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
```

View File

@@ -0,0 +1,38 @@
"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) {
// them defaults yo
options = Object.assign({}, options, parserOptions)
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,25 @@
{
"name": "memo-parser",
"version": "0.1.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"
}