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

Package Sidebar

Install

npm i estree-safe-id

Weekly Downloads

2

Version

0.0.1

License

MIT

Unpacked Size

72.4 kB

Total Files

10

Last publish

Collaborators

  • zbd-lover