estree-safe-id
TypeScript icon, indicating that this package has built-in type declarations

0.0.1 • Public • Published

介绍

基于estree,生成一个唯一且安全的标识符名称

引用

import SafeIdGenerator from 'estree-safe-id'
// const SafeIdGenerator = window.SafeIdGenerator

用法

import acorn from 'acorn'
import SafeIdGenerator from 'estree-safe-id'
const script = `const a = 10; function fn() { console.log(1) }`
const retry = (old) => '$' + old

const generator = new SafeIdGenerator(acorn.parse(script, { esmaVersion: 'latest', sourceType: 'module' }), retry)
console.log(generator.generate('b')) // b
console.log(generator.generate('a')) // $a (a已经存在,generator会调用retry并将'a'传入以获取新的标识符名称)
// $console. console它在函数fn中使用,且在fn对应的函数作用域内没有声明console,对fn来说,console来自祖先级作用域(在这里是全局作用域)
// 在这种情况下,generator也会调用retry来获取新名称——generator不会生成一个可能被子级作用域所使用的标识符
console.log(generator.generate('console'))
console.log(generator.generate('const')) // $const

/estree-safe-id/

    Package Sidebar

    Install

    npm i estree-safe-id

    Weekly Downloads

    1

    Version

    0.0.1

    License

    MIT

    Unpacked Size

    72.4 kB

    Total Files

    10

    Last publish

    Collaborators

    • zbd-lover