jass-vue 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/LICENSE +21 -0
- data/README.md +43 -0
- data/lib/jass/vue.rb +12 -0
- data/lib/jass/vue/version.rb +5 -0
- data/vendor/node_modules/arr-diff/index.js +58 -0
- data/vendor/node_modules/arr-diff/package.json +49 -0
- data/vendor/node_modules/arr-flatten/index.js +22 -0
- data/vendor/node_modules/arr-flatten/package.json +76 -0
- data/vendor/node_modules/array-unique/index.js +28 -0
- data/vendor/node_modules/array-unique/package.json +37 -0
- data/vendor/node_modules/braces/index.js +399 -0
- data/vendor/node_modules/braces/package.json +83 -0
- data/vendor/node_modules/de-indent/index.js +45 -0
- data/vendor/node_modules/de-indent/package.json +25 -0
- data/vendor/node_modules/de-indent/test.js +30 -0
- data/vendor/node_modules/estree-walker/dist/estree-walker.es.js +55 -0
- data/vendor/node_modules/estree-walker/dist/estree-walker.es6.js +59 -0
- data/vendor/node_modules/estree-walker/dist/estree-walker.umd.js +65 -0
- data/vendor/node_modules/estree-walker/package.json +33 -0
- data/vendor/node_modules/estree-walker/src/estree-walker.js +49 -0
- data/vendor/node_modules/expand-brackets/index.js +163 -0
- data/vendor/node_modules/expand-brackets/package.json +62 -0
- data/vendor/node_modules/expand-range/index.js +43 -0
- data/vendor/node_modules/expand-range/package.json +73 -0
- data/vendor/node_modules/extglob/index.js +178 -0
- data/vendor/node_modules/extglob/package.json +60 -0
- data/vendor/node_modules/filename-regex/index.js +10 -0
- data/vendor/node_modules/filename-regex/package.json +50 -0
- data/vendor/node_modules/fill-range/index.js +408 -0
- data/vendor/node_modules/fill-range/package.json +61 -0
- data/vendor/node_modules/for-in/index.js +16 -0
- data/vendor/node_modules/for-in/package.json +68 -0
- data/vendor/node_modules/for-own/index.js +19 -0
- data/vendor/node_modules/for-own/package.json +70 -0
- data/vendor/node_modules/glob-base/index.js +51 -0
- data/vendor/node_modules/glob-base/package.json +52 -0
- data/vendor/node_modules/glob-parent/index.js +10 -0
- data/vendor/node_modules/glob-parent/package.json +35 -0
- data/vendor/node_modules/glob-parent/test.js +28 -0
- data/vendor/node_modules/he/bin/he +148 -0
- data/vendor/node_modules/he/he.js +342 -0
- data/vendor/node_modules/he/man/he.1 +78 -0
- data/vendor/node_modules/he/package.json +56 -0
- data/vendor/node_modules/is-buffer/index.js +21 -0
- data/vendor/node_modules/is-buffer/package.json +51 -0
- data/vendor/node_modules/is-dotfile/index.js +14 -0
- data/vendor/node_modules/is-dotfile/package.json +69 -0
- data/vendor/node_modules/is-equal-shallow/index.js +27 -0
- data/vendor/node_modules/is-equal-shallow/package.json +54 -0
- data/vendor/node_modules/is-extendable/index.js +13 -0
- data/vendor/node_modules/is-extendable/package.json +51 -0
- data/vendor/node_modules/is-extglob/index.js +11 -0
- data/vendor/node_modules/is-extglob/package.json +48 -0
- data/vendor/node_modules/is-glob/index.js +14 -0
- data/vendor/node_modules/is-glob/package.json +60 -0
- data/vendor/node_modules/is-number/index.js +19 -0
- data/vendor/node_modules/is-number/package.json +59 -0
- data/vendor/node_modules/is-posix-bracket/index.js +10 -0
- data/vendor/node_modules/is-posix-bracket/package.json +64 -0
- data/vendor/node_modules/is-primitive/index.js +13 -0
- data/vendor/node_modules/is-primitive/package.json +46 -0
- data/vendor/node_modules/isarray/index.js +5 -0
- data/vendor/node_modules/isarray/package.json +45 -0
- data/vendor/node_modules/isarray/test.js +20 -0
- data/vendor/node_modules/isobject/index.js +14 -0
- data/vendor/node_modules/isobject/package.json +67 -0
- data/vendor/node_modules/kind-of/index.js +116 -0
- data/vendor/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/magic-string/dist/magic-string.cjs.js +1287 -0
- data/vendor/node_modules/magic-string/dist/magic-string.es.js +1283 -0
- data/vendor/node_modules/magic-string/dist/magic-string.umd.js +1339 -0
- data/vendor/node_modules/magic-string/package.json +60 -0
- data/vendor/node_modules/magic-string/src/Bundle.js +263 -0
- data/vendor/node_modules/magic-string/src/Chunk.js +154 -0
- data/vendor/node_modules/magic-string/src/MagicString.js +618 -0
- data/vendor/node_modules/magic-string/src/index-legacy.js +6 -0
- data/vendor/node_modules/magic-string/src/index.js +4 -0
- data/vendor/node_modules/magic-string/src/utils/Mappings.js +117 -0
- data/vendor/node_modules/magic-string/src/utils/SourceMap.js +21 -0
- data/vendor/node_modules/magic-string/src/utils/Stats.js +18 -0
- data/vendor/node_modules/magic-string/src/utils/btoa.js +13 -0
- data/vendor/node_modules/magic-string/src/utils/getLocator.js +35 -0
- data/vendor/node_modules/magic-string/src/utils/getRelativePath.js +18 -0
- data/vendor/node_modules/magic-string/src/utils/guessIndent.js +25 -0
- data/vendor/node_modules/magic-string/src/utils/hasOwnProp.js +1 -0
- data/vendor/node_modules/magic-string/src/utils/isObject.js +5 -0
- data/vendor/node_modules/micromatch/index.js +431 -0
- data/vendor/node_modules/micromatch/lib/chars.js +67 -0
- data/vendor/node_modules/micromatch/lib/expand.js +304 -0
- data/vendor/node_modules/micromatch/lib/glob.js +193 -0
- data/vendor/node_modules/micromatch/lib/utils.js +149 -0
- data/vendor/node_modules/micromatch/package.json +114 -0
- data/vendor/node_modules/normalize-path/index.js +19 -0
- data/vendor/node_modules/normalize-path/package.json +78 -0
- data/vendor/node_modules/object.omit/index.js +40 -0
- data/vendor/node_modules/object.omit/package.json +67 -0
- data/vendor/node_modules/parse-glob/index.js +156 -0
- data/vendor/node_modules/parse-glob/package.json +62 -0
- data/vendor/node_modules/preserve/index.js +54 -0
- data/vendor/node_modules/preserve/package.json +48 -0
- data/vendor/node_modules/preserve/test.js +48 -0
- data/vendor/node_modules/randomatic/index.js +82 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/index.js +22 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/index.js +116 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/randomatic/node_modules/is-number/package.json +83 -0
- data/vendor/node_modules/randomatic/node_modules/kind-of/index.js +119 -0
- data/vendor/node_modules/randomatic/node_modules/kind-of/package.json +90 -0
- data/vendor/node_modules/randomatic/package.json +78 -0
- data/vendor/node_modules/regex-cache/index.js +68 -0
- data/vendor/node_modules/regex-cache/package.json +64 -0
- data/vendor/node_modules/remove-trailing-separator/index.js +17 -0
- data/vendor/node_modules/remove-trailing-separator/package.json +37 -0
- data/vendor/node_modules/repeat-element/index.js +18 -0
- data/vendor/node_modules/repeat-element/package.json +44 -0
- data/vendor/node_modules/repeat-string/index.js +70 -0
- data/vendor/node_modules/repeat-string/package.json +77 -0
- data/vendor/node_modules/rollup-plugin-vue2/dist/rollup-plugin-vue2.common.js +164 -0
- data/vendor/node_modules/rollup-plugin-vue2/dist/rollup-plugin-vue2.es.js +160 -0
- data/vendor/node_modules/rollup-plugin-vue2/package.json +50 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.cjs.js +223 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es.js +214 -0
- data/vendor/node_modules/rollup-pluginutils/dist/pluginutils.es6.js +217 -0
- data/vendor/node_modules/rollup-pluginutils/package.json +40 -0
- data/vendor/node_modules/rollup-pluginutils/src/addExtension.js +6 -0
- data/vendor/node_modules/rollup-pluginutils/src/attachScopes.js +147 -0
- data/vendor/node_modules/rollup-pluginutils/src/createFilter.js +33 -0
- data/vendor/node_modules/rollup-pluginutils/src/index.js +4 -0
- data/vendor/node_modules/rollup-pluginutils/src/makeLegalIdentifier.js +15 -0
- data/vendor/node_modules/rollup-pluginutils/src/utils/ensureArray.js +5 -0
- data/vendor/node_modules/vlq/dist/vlq.js +91 -0
- data/vendor/node_modules/vlq/package.json +27 -0
- data/vendor/node_modules/vlq/src/vlq.js +78 -0
- data/vendor/node_modules/vue-template-compiler/browser.js +5237 -0
- data/vendor/node_modules/vue-template-compiler/build.js +4835 -0
- data/vendor/node_modules/vue-template-compiler/index.js +18 -0
- data/vendor/node_modules/vue-template-compiler/package.json +27 -0
- data/vendor/node_modules/vue-template-es2015-compiler/buble.js +14112 -0
- data/vendor/node_modules/vue-template-es2015-compiler/index.js +24 -0
- data/vendor/node_modules/vue-template-es2015-compiler/package.json +28 -0
- data/vendor/package.json +9 -0
- data/vendor/yarn.lock +268 -0
- metadata +242 -0
@@ -0,0 +1,83 @@
|
|
1
|
+
{
|
2
|
+
"name": "braces",
|
3
|
+
"description": "Fastest brace expansion for node.js, with the most complete support for the Bash 4.3 braces specification.",
|
4
|
+
"version": "1.8.5",
|
5
|
+
"homepage": "https://github.com/jonschlinkert/braces",
|
6
|
+
"author": "Jon Schlinkert (https://github.com/jonschlinkert)",
|
7
|
+
"repository": "jonschlinkert/braces",
|
8
|
+
"bugs": {
|
9
|
+
"url": "https://github.com/jonschlinkert/braces/issues"
|
10
|
+
},
|
11
|
+
"license": "MIT",
|
12
|
+
"files": [
|
13
|
+
"index.js"
|
14
|
+
],
|
15
|
+
"main": "index.js",
|
16
|
+
"engines": {
|
17
|
+
"node": ">=0.10.0"
|
18
|
+
},
|
19
|
+
"scripts": {
|
20
|
+
"test": "mocha"
|
21
|
+
},
|
22
|
+
"dependencies": {
|
23
|
+
"expand-range": "^1.8.1",
|
24
|
+
"preserve": "^0.2.0",
|
25
|
+
"repeat-element": "^1.1.2"
|
26
|
+
},
|
27
|
+
"devDependencies": {
|
28
|
+
"benchmarked": "^0.1.5",
|
29
|
+
"brace-expansion": "^1.1.3",
|
30
|
+
"chalk": "^1.1.3",
|
31
|
+
"gulp-format-md": "^0.1.8",
|
32
|
+
"minimatch": "^3.0.0",
|
33
|
+
"minimist": "^1.2.0",
|
34
|
+
"mocha": "^2.4.5",
|
35
|
+
"should": "^8.3.1"
|
36
|
+
},
|
37
|
+
"keywords": [
|
38
|
+
"alpha",
|
39
|
+
"alphabetical",
|
40
|
+
"bash",
|
41
|
+
"brace",
|
42
|
+
"expand",
|
43
|
+
"expansion",
|
44
|
+
"filepath",
|
45
|
+
"fill",
|
46
|
+
"fs",
|
47
|
+
"glob",
|
48
|
+
"globbing",
|
49
|
+
"letter",
|
50
|
+
"match",
|
51
|
+
"matches",
|
52
|
+
"matching",
|
53
|
+
"number",
|
54
|
+
"numerical",
|
55
|
+
"path",
|
56
|
+
"range",
|
57
|
+
"ranges",
|
58
|
+
"sh"
|
59
|
+
],
|
60
|
+
"verb": {
|
61
|
+
"plugins": [
|
62
|
+
"gulp-format-md"
|
63
|
+
],
|
64
|
+
"reflinks": [
|
65
|
+
"verb"
|
66
|
+
],
|
67
|
+
"toc": false,
|
68
|
+
"layout": "default",
|
69
|
+
"lint": {
|
70
|
+
"reflinks": true
|
71
|
+
},
|
72
|
+
"tasks": [
|
73
|
+
"readme"
|
74
|
+
],
|
75
|
+
"related": {
|
76
|
+
"list": [
|
77
|
+
"micromatch",
|
78
|
+
"expand-range",
|
79
|
+
"fill-range"
|
80
|
+
]
|
81
|
+
}
|
82
|
+
}
|
83
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
var splitRE = /\r?\n/g
|
2
|
+
var emptyRE = /^\s*$/
|
3
|
+
var needFixRE = /^(\r?\n)*[\t\s]/
|
4
|
+
|
5
|
+
module.exports = function deindent (str) {
|
6
|
+
if (!needFixRE.test(str)) {
|
7
|
+
return str
|
8
|
+
}
|
9
|
+
var lines = str.split(splitRE)
|
10
|
+
var min = Infinity
|
11
|
+
var type, cur, c
|
12
|
+
for (var i = 0; i < lines.length; i++) {
|
13
|
+
var line = lines[i]
|
14
|
+
if (!emptyRE.test(line)) {
|
15
|
+
if (!type) {
|
16
|
+
c = line.charAt(0)
|
17
|
+
if (c === ' ' || c === '\t') {
|
18
|
+
type = c
|
19
|
+
cur = count(line, type)
|
20
|
+
if (cur < min) {
|
21
|
+
min = cur
|
22
|
+
}
|
23
|
+
} else {
|
24
|
+
return str
|
25
|
+
}
|
26
|
+
} else {
|
27
|
+
cur = count(line, type)
|
28
|
+
if (cur < min) {
|
29
|
+
min = cur
|
30
|
+
}
|
31
|
+
}
|
32
|
+
}
|
33
|
+
}
|
34
|
+
return lines.map(function (line) {
|
35
|
+
return line.slice(min)
|
36
|
+
}).join('\n')
|
37
|
+
}
|
38
|
+
|
39
|
+
function count (line, type) {
|
40
|
+
var i = 0
|
41
|
+
while (line.charAt(i) === type) {
|
42
|
+
i++
|
43
|
+
}
|
44
|
+
return i
|
45
|
+
}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
{
|
2
|
+
"name": "de-indent",
|
3
|
+
"version": "1.0.2",
|
4
|
+
"description": "remove extra indent from a block of code",
|
5
|
+
"main": "index.js",
|
6
|
+
"scripts": {
|
7
|
+
"test": "mocha"
|
8
|
+
},
|
9
|
+
"repository": {
|
10
|
+
"type": "git",
|
11
|
+
"url": "git+https://github.com/yyx990803/de-indent.git"
|
12
|
+
},
|
13
|
+
"keywords": [
|
14
|
+
"deindent"
|
15
|
+
],
|
16
|
+
"author": "Evan You",
|
17
|
+
"license": "MIT",
|
18
|
+
"bugs": {
|
19
|
+
"url": "https://github.com/yyx990803/de-indent/issues"
|
20
|
+
},
|
21
|
+
"homepage": "https://github.com/yyx990803/de-indent#readme",
|
22
|
+
"devDependencies": {
|
23
|
+
"mocha": "^2.3.4"
|
24
|
+
}
|
25
|
+
}
|
@@ -0,0 +1,30 @@
|
|
1
|
+
var assert = require('assert')
|
2
|
+
var deindent = require('./index')
|
3
|
+
|
4
|
+
describe('de-indent', function () {
|
5
|
+
|
6
|
+
it('0 indent', function () {
|
7
|
+
var str = '\nabc\n bcd\n cde\nefg'
|
8
|
+
var res = deindent(str)
|
9
|
+
assert.equal(str, res)
|
10
|
+
})
|
11
|
+
|
12
|
+
it('non-0 indent', function () {
|
13
|
+
var str = ' abc\n bcd\n cde\n efg'
|
14
|
+
var res = deindent(str)
|
15
|
+
assert.equal(res, 'abc\n bcd\ncde\n efg')
|
16
|
+
})
|
17
|
+
|
18
|
+
it('tabs', function () {
|
19
|
+
var str = '\tabc\n\t\tbcd\n\tcde\n\t\tefg'
|
20
|
+
var res = deindent(str)
|
21
|
+
assert.equal(res, 'abc\n\tbcd\ncde\n\tefg')
|
22
|
+
})
|
23
|
+
|
24
|
+
it('single line', function () {
|
25
|
+
var str = '\n <h2 class="red">{{msg}}</h2>\n'
|
26
|
+
var res = deindent(str)
|
27
|
+
assert.equal(res, '\n<h2 class="red">{{msg}}</h2>\n')
|
28
|
+
})
|
29
|
+
|
30
|
+
})
|
@@ -0,0 +1,55 @@
|
|
1
|
+
function walk ( ast, ref) {
|
2
|
+
var enter = ref.enter;
|
3
|
+
var leave = ref.leave;
|
4
|
+
|
5
|
+
visit( ast, null, enter, leave );
|
6
|
+
}
|
7
|
+
|
8
|
+
var context = {
|
9
|
+
skip: function () { return context.shouldSkip = true; },
|
10
|
+
shouldSkip: false
|
11
|
+
};
|
12
|
+
|
13
|
+
var childKeys = {};
|
14
|
+
|
15
|
+
var toString = Object.prototype.toString;
|
16
|
+
|
17
|
+
function isArray ( thing ) {
|
18
|
+
return toString.call( thing ) === '[object Array]';
|
19
|
+
}
|
20
|
+
|
21
|
+
function visit ( node, parent, enter, leave, prop, index ) {
|
22
|
+
if ( !node ) { return; }
|
23
|
+
|
24
|
+
if ( enter ) {
|
25
|
+
context.shouldSkip = false;
|
26
|
+
enter.call( context, node, parent, prop, index );
|
27
|
+
if ( context.shouldSkip ) { return; }
|
28
|
+
}
|
29
|
+
|
30
|
+
var keys = childKeys[ node.type ] || (
|
31
|
+
childKeys[ node.type ] = Object.keys( node ).filter( function (key) { return typeof node[ key ] === 'object'; } )
|
32
|
+
);
|
33
|
+
|
34
|
+
for ( var i = 0; i < keys.length; i += 1 ) {
|
35
|
+
var key = keys[i];
|
36
|
+
var value = node[ key ];
|
37
|
+
|
38
|
+
if ( isArray( value ) ) {
|
39
|
+
for ( var j = 0; j < value.length; j += 1 ) {
|
40
|
+
visit( value[j], node, enter, leave, key, j );
|
41
|
+
}
|
42
|
+
}
|
43
|
+
|
44
|
+
else if ( value && value.type ) {
|
45
|
+
visit( value, node, enter, leave, key, null );
|
46
|
+
}
|
47
|
+
}
|
48
|
+
|
49
|
+
if ( leave ) {
|
50
|
+
leave( node, parent, prop, index );
|
51
|
+
}
|
52
|
+
}
|
53
|
+
|
54
|
+
export { walk };
|
55
|
+
//# sourceMappingURL=estree-walker.es.js.map
|
@@ -0,0 +1,59 @@
|
|
1
|
+
function walk ( ast, ref) {
|
2
|
+
var enter = ref.enter;
|
3
|
+
var leave = ref.leave;
|
4
|
+
|
5
|
+
visit( ast, null, enter, leave );
|
6
|
+
}
|
7
|
+
|
8
|
+
var context = {
|
9
|
+
skip: function () { return context.shouldSkip = true; },
|
10
|
+
shouldSkip: false
|
11
|
+
};
|
12
|
+
|
13
|
+
var childKeys = {};
|
14
|
+
|
15
|
+
var toString = Object.prototype.toString;
|
16
|
+
|
17
|
+
function isArray ( thing ) {
|
18
|
+
return toString.call( thing ) === '[object Array]';
|
19
|
+
}
|
20
|
+
|
21
|
+
function visit ( node, parent, enter, leave, prop, index ) {
|
22
|
+
if ( !node ) return;
|
23
|
+
|
24
|
+
if ( enter ) {
|
25
|
+
context.shouldSkip = false;
|
26
|
+
enter.call( context, node, parent, prop, index );
|
27
|
+
if ( context.shouldSkip ) return;
|
28
|
+
}
|
29
|
+
|
30
|
+
var keys = childKeys[ node.type ] || (
|
31
|
+
childKeys[ node.type ] = Object.keys( node ).filter( function (key) { return typeof node[ key ] === 'object'; } )
|
32
|
+
);
|
33
|
+
|
34
|
+
var key, value, i, j;
|
35
|
+
|
36
|
+
i = keys.length;
|
37
|
+
while ( i-- ) {
|
38
|
+
key = keys[i];
|
39
|
+
value = node[ key ];
|
40
|
+
|
41
|
+
if ( isArray( value ) ) {
|
42
|
+
j = value.length;
|
43
|
+
while ( j-- ) {
|
44
|
+
visit( value[j], node, enter, leave, key, j );
|
45
|
+
}
|
46
|
+
}
|
47
|
+
|
48
|
+
else if ( value && value.type ) {
|
49
|
+
visit( value, node, enter, leave, key, null );
|
50
|
+
}
|
51
|
+
}
|
52
|
+
|
53
|
+
if ( leave ) {
|
54
|
+
leave( node, parent, prop, index );
|
55
|
+
}
|
56
|
+
}
|
57
|
+
|
58
|
+
export { walk };
|
59
|
+
//# sourceMappingURL=estree-walker.es6.js.map
|
@@ -0,0 +1,65 @@
|
|
1
|
+
(function (global, factory) {
|
2
|
+
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
3
|
+
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
4
|
+
(factory((global.estreeWalker = global.estreeWalker || {})));
|
5
|
+
}(this, (function (exports) { 'use strict';
|
6
|
+
|
7
|
+
function walk ( ast, ref) {
|
8
|
+
var enter = ref.enter;
|
9
|
+
var leave = ref.leave;
|
10
|
+
|
11
|
+
visit( ast, null, enter, leave );
|
12
|
+
}
|
13
|
+
|
14
|
+
var context = {
|
15
|
+
skip: function () { return context.shouldSkip = true; },
|
16
|
+
shouldSkip: false
|
17
|
+
};
|
18
|
+
|
19
|
+
var childKeys = {};
|
20
|
+
|
21
|
+
var toString = Object.prototype.toString;
|
22
|
+
|
23
|
+
function isArray ( thing ) {
|
24
|
+
return toString.call( thing ) === '[object Array]';
|
25
|
+
}
|
26
|
+
|
27
|
+
function visit ( node, parent, enter, leave, prop, index ) {
|
28
|
+
if ( !node ) { return; }
|
29
|
+
|
30
|
+
if ( enter ) {
|
31
|
+
context.shouldSkip = false;
|
32
|
+
enter.call( context, node, parent, prop, index );
|
33
|
+
if ( context.shouldSkip ) { return; }
|
34
|
+
}
|
35
|
+
|
36
|
+
var keys = childKeys[ node.type ] || (
|
37
|
+
childKeys[ node.type ] = Object.keys( node ).filter( function (key) { return typeof node[ key ] === 'object'; } )
|
38
|
+
);
|
39
|
+
|
40
|
+
for ( var i = 0; i < keys.length; i += 1 ) {
|
41
|
+
var key = keys[i];
|
42
|
+
var value = node[ key ];
|
43
|
+
|
44
|
+
if ( isArray( value ) ) {
|
45
|
+
for ( var j = 0; j < value.length; j += 1 ) {
|
46
|
+
visit( value[j], node, enter, leave, key, j );
|
47
|
+
}
|
48
|
+
}
|
49
|
+
|
50
|
+
else if ( value && value.type ) {
|
51
|
+
visit( value, node, enter, leave, key, null );
|
52
|
+
}
|
53
|
+
}
|
54
|
+
|
55
|
+
if ( leave ) {
|
56
|
+
leave( node, parent, prop, index );
|
57
|
+
}
|
58
|
+
}
|
59
|
+
|
60
|
+
exports.walk = walk;
|
61
|
+
|
62
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
63
|
+
|
64
|
+
})));
|
65
|
+
//# sourceMappingURL=estree-walker.umd.js.map
|
@@ -0,0 +1,33 @@
|
|
1
|
+
{
|
2
|
+
"name": "estree-walker",
|
3
|
+
"description": "Traverse an ESTree-compliant AST",
|
4
|
+
"version": "0.3.1",
|
5
|
+
"author": "Rich Harris",
|
6
|
+
"license": "MIT",
|
7
|
+
"repository": {
|
8
|
+
"type": "git",
|
9
|
+
"url": "https://github.com/Rich-Harris/estree-walker"
|
10
|
+
},
|
11
|
+
"main": "dist/estree-walker.umd.js",
|
12
|
+
"module": "dist/estree-walker.es.js",
|
13
|
+
"jsnext:main": "dist/estree-walker.es.js",
|
14
|
+
"scripts": {
|
15
|
+
"prepublish": "npm run lint && npm test",
|
16
|
+
"build": "rollup -c",
|
17
|
+
"test": "mocha test/test.js --compilers js:buble/register",
|
18
|
+
"pretest": "npm run build",
|
19
|
+
"lint": "eslint src"
|
20
|
+
},
|
21
|
+
"devDependencies": {
|
22
|
+
"buble": "^0.15.2",
|
23
|
+
"eslint": "^3.16.0",
|
24
|
+
"mocha": "^3.2.0",
|
25
|
+
"rollup": "^0.41.4",
|
26
|
+
"rollup-plugin-buble": "^0.15.0"
|
27
|
+
},
|
28
|
+
"files": [
|
29
|
+
"src",
|
30
|
+
"dist",
|
31
|
+
"README.md"
|
32
|
+
]
|
33
|
+
}
|
@@ -0,0 +1,49 @@
|
|
1
|
+
export function walk ( ast, { enter, leave }) {
|
2
|
+
visit( ast, null, enter, leave );
|
3
|
+
}
|
4
|
+
|
5
|
+
const context = {
|
6
|
+
skip: () => context.shouldSkip = true,
|
7
|
+
shouldSkip: false
|
8
|
+
};
|
9
|
+
|
10
|
+
let childKeys = {};
|
11
|
+
|
12
|
+
const toString = Object.prototype.toString;
|
13
|
+
|
14
|
+
function isArray ( thing ) {
|
15
|
+
return toString.call( thing ) === '[object Array]';
|
16
|
+
}
|
17
|
+
|
18
|
+
function visit ( node, parent, enter, leave, prop, index ) {
|
19
|
+
if ( !node ) return;
|
20
|
+
|
21
|
+
if ( enter ) {
|
22
|
+
context.shouldSkip = false;
|
23
|
+
enter.call( context, node, parent, prop, index );
|
24
|
+
if ( context.shouldSkip ) return;
|
25
|
+
}
|
26
|
+
|
27
|
+
const keys = childKeys[ node.type ] || (
|
28
|
+
childKeys[ node.type ] = Object.keys( node ).filter( key => typeof node[ key ] === 'object' )
|
29
|
+
);
|
30
|
+
|
31
|
+
for ( let i = 0; i < keys.length; i += 1 ) {
|
32
|
+
const key = keys[i];
|
33
|
+
const value = node[ key ];
|
34
|
+
|
35
|
+
if ( isArray( value ) ) {
|
36
|
+
for ( let j = 0; j < value.length; j += 1 ) {
|
37
|
+
visit( value[j], node, enter, leave, key, j );
|
38
|
+
}
|
39
|
+
}
|
40
|
+
|
41
|
+
else if ( value && value.type ) {
|
42
|
+
visit( value, node, enter, leave, key, null );
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
if ( leave ) {
|
47
|
+
leave( node, parent, prop, index );
|
48
|
+
}
|
49
|
+
}
|