UNPKG

cbml

Version:
75 lines (74 loc) 2.19 kB
import * as cbml from './ast'; export interface IParserOptions { /** * 是否获取位置信息,默认:true */ loc?: boolean; /** * 是否获取源代码信息,默认:true */ source?: boolean; /** * 是否获取代码范围信息,默认:false */ range?: boolean; } /** * 解析代码片段包含的 CBML 元素 * * @param code 代码片段 * @param options 配置项 * @return 返回 CBML 元素 */ export declare function parse(code: string, options?: IParserOptions): cbml.CBMLElement; /** * 搜索满足表达式的节点 * * @param root 根节点 * @param selector 选择器表达式 * @example querySelector():base ```js var root = cbml.parse(` <!~remove trigger="release">remove1</remove~> <!~remove trigger="debug">remove2</remove~> <!~remove trigger>remove3</remove~> <!~remove>remove4</remove~> `) console.log(cbml.querySelector(root, 'remove').loc.source) // > <!~remove trigger="release">remove1</remove~> console.log(cbml.querySelector(root, 'remove[trigger]').loc.source) // > <!~remove trigger="release">remove1</remove~> console.log(cbml.querySelector(root, 'remove[trigger="debug"]').loc.source) // > <!~remove trigger="debug">remove2</remove~> console.log(cbml.querySelector(root, 'remove*').length) // > 4 console.log(cbml.querySelector(root, 'remove[trigger]*').length) // > 3 console.log(cbml.querySelector(root, 'remove[trigger="debug"]*').length) // > 1 ``` * @example querySelector():coverage ```js var root = cbml.parse(` <!~remove trigger="release">remove1</remove~> <!~remove trigger="debug">remove2</remove~> <!~remove trigger>remove3</remove~> <!~remove>remove4</remove~> `) console.log(cbml.querySelector(root, 'dev')) // > null console.log(cbml.querySelector(root)) // > null console.log(cbml.querySelector()) // > null ``` * @example querySelector():throw ```js var root = cbml.parse(` <!~remove trigger="release">remove1</remove~> `) cbml.querySelector(root, 'dev//1') // * throw ``` */ export declare function querySelector(root: cbml.ContainerElement, selector: string): cbml.Node | cbml.Node[];