eslint-visitor-keys-browser
v1.0.1
Published
Browser-ready standalone build of eslint-visitor-keys ( UMD + ESM )
Downloads
140
Maintainers
Readme
eslint-visitor-keys-browser
This package provides eslint-visitor-keys bundled for use in the browser without the need to npm install anything
you can use this tool to see what is exposed in both the script src and esm modules
global state diff -- https://ext-code.com/utils/misc/global-state-diff/global-state-diff.html
this tool can be used to experiment with the package
nodejs terminal -- https://ext-code.com/utils/misc/nodejs-terminal/nodejs-terminal.html
For script
<script src='https://libs.ext-code.com/external/js/eslint-visitor-keys/eslint-visitor-keys.js'></script>
https://libs.ext-code.com/external/js/eslint-visitor-keys/eslint-visitor-keys.js
https://cdn.jsdelivr.net/npm/eslint-visitor-keys-browser/eslint-visitor-keys.js
test it out with this tool
html editor -- https://ext-code.com/utils/editors/html-editor/html-editor.html
For esm
import {keys} from 'https://libs.ext-code.com/external/js/eslint-visitor-keys/eslint-visitor-keys.m.js';
//
var {keys} = await import('https://libs.ext-code.com/external/js/eslint-visitor-keys/eslint-visitor-keys.m.js');
https://libs.ext-code.com/external/js/eslint-visitor-keys/eslint-visitor-keys.m.js
https://cdn.jsdelivr.net/npm/eslint-visitor-keys-browser/eslint-visitor-keys.m.js
test it out with this tool
js console -- https://ext-code.com/utils/editors/js-console/js-console.html
locally hosted
the scripts can be hosted locally, by doing
npm i eslint-visitor-keys-browser
the scripts can then either be copied to a prefered location or reference via
import {keys} from '/node_modules/eslint-visitor-keys-browser/eslint-visitor-keys.m.js';
//
var {keys} = await import('/node_modules/eslint-visitor-keys-browser/eslint-visitor-keys.m.js');
<script src='/node_modules/eslint-visitor-keys-browser/eslint-visitor-keys.js'></script>
Further Reading
https://github.com/eslint/js/blob/main/packages/eslint-visitor-keys/README.md
https://www.npmjs.com/package/eslint-visitor-keys
See also
https://www.npmjs.com/package/espree-browser
https://www.npmjs.com/package/estraverse-browser
https://www.npmjs.com/package/estraverse-browser
https://www.npmjs.com/package/acorn-browser
https://www.npmjs.com/package/esrecurse-browser
https://www.npmjs.com/package/estree-walker-browser
https://www.npmjs.com/package/recast-browser
examples
<script type=module>
import {espree} from 'https://libs.ext-code.com/external/js/espree/espree.m.js';
import {keys} from 'https://libs.ext-code.com/external/js/eslint-visitor-keys/eslint-visitor-keys.m.js';
console.log(keys);
var code = `
function add(a, b) { return a + b; }
`;
var ast = espree.parse(code,{ecmaVersion:'latest'});
traverse(ast,node=>{
console.log('Visited:',node.type);
});
function traverse(node,visitor){
if(!node||typeof node!='object')return;
visitor(node);
var list = keys.KEYS[node.type]||[];
for(var key of list){
var value = node[key];
if(Array.isArray(value)){
for(var child of value){
traverse(child, visitor);
}
}else{
traverse(value,visitor);
}
}//for
}//traverse
</script>
<script type=module>
var [{espree},{keys}] = await Promise.all([
import('https://libs.ext-code.com/external/js/espree/espree.m.js'),
import('https://libs.ext-code.com/external/js/eslint-visitor-keys/eslint-visitor-keys.m.js'),
]);
console.log(keys);
var code = `
function add(a, b) { return a + b; }
`;
var ast = espree.parse(code,{ecmaVersion:'latest'});
traverse(ast,node=>{
console.log('Visited:',node.type);
});
function traverse(node,visitor){
if(!node||typeof node!='object')return;
visitor(node);
var list = keys.KEYS[node.type]||[];
for(var key of list){
var value = node[key];
if(Array.isArray(value)){
for(var child of value){
traverse(child, visitor);
}
}else{
traverse(value,visitor);
}
}//for
}//traverse
</script>
<script src='https://libs.ext-code.com/external/js/espree/espree.js'></script>
<script src='https://libs.ext-code.com/external/js/eslint-visitor-keys/eslint-visitor-keys.js'></script>
<script type=module>
console.log(keys);
var code = `
function add(a, b) { return a + b; }
`;
var ast = espree.parse(code,{ecmaVersion:'latest'});
traverse(ast,node=>{
console.log('Visited:',node.type);
});
function traverse(node,visitor){
if(!node||typeof node!='object')return;
visitor(node);
var list = keys.KEYS[node.type]||[];
for(var key of list){
var value = node[key];
if(Array.isArray(value)){
for(var child of value){
traverse(child, visitor);
}
}else{
traverse(value,visitor);
}
}//for
}//traverse
</script>
