system/@platform-ui.app/frontend/node_modules/periscopic/README.md

periscopic

Utility for analyzing scopes belonging to an ESTree-compliant AST.

API

import { analyze } from 'periscopic';

const ast = acorn.parse(`
const a = b;
console.log(a);
`);

const { map, globals, scope } = analyze(ast);

Scope

Each Scope instance has the following properties:

It also has two methods:

extract_identifiers and extract_names

This package also exposes utilities for extracting the identifiers contained in a declaration or a function parameter:

import { extract_identifiers, extract_names } from 'periscopic';

const ast = acorn.parse(`
const { a, b: [c, d] = e } = opts;
`);

const lhs = ast.body[0].declarations[0].id;

extract_identifiers(lhs);
/*
[
    { type: 'Identifier', name: 'a', start: 9, end: 10 },
    { type: 'Identifier', name: 'c', start: 16, end: 17 },
    { type: 'Identifier', name: 'd', start: 19, end: 20 }
]
*/

extract_names(lhs);
/*
['a', 'c', 'd']
*/

License

MIT