网络包源
包含代表 a 的多类 SourceA级 Source 可以要求源代码,大小,源地图和散列.
Source
基础课所有来源.
公共方法
所有方法都应被视为进行计算所需的昂贵方法.
source
Source.prototype.source() -> String | Buffer
返回代表的源代码为字符串或缓冲(用于二进制源).
buffer
Source.prototype.buffer() -> Buffer
返回显示的源代码为缓冲 。 字符串被转换为utf-8.
buffers
Source.prototype.buffers() -> Buffer[]
返回包含的源代码为缓冲数组。 这样可以避免
中间 Buffer.concat 由 buffer() 当来源
由多个儿童组成(例如: ConcatSource) (中文(简体) ). 消费者
能够接受一系列缓冲(例如通过 fs.createWriteStream 或者说
writev)应更倾向于采用这种方法来提高业绩.
默认执行返回 [this.buffer()]。 。 。 .
size
Source.prototype.size() -> Number
返回代表源代码的字节中的大小.
map
Source.prototype.map(options?: Object) -> Object | null
返回代表源代码的 sourceMap 为 JSON 。 可能回来 null 如果没有源图.
这个 options 对象可以包含以下密钥:
columns: Boolean(默认)true:如果设定为虚假执行,可能省略列的映射.scopes: Boolean(默认)false:如果设定为真实,则地图带有scopes报告 范围提案,为每个源命名它所宣布的绑定和每个源在生成代码中读取的表达式。 消息来源宣布这些约束本身——见OriginalSource——和一张地图,其来源宣布没有遗漏字段.
sourceAndMap
Source.prototype.sourceAndMap(options?: Object) -> {
source: String | Buffer,
map: Object | null
}
返回两者,源代码(如 Source.prototype.source() 和源图( 如 Source.prototype.map()) (中文(简体) ). 这种方法比呼叫有更好的性能 source() 财务报告和审定财务报表 map() 分别.
见 map() 页:1 options。 。 。 .
updateHash
Source.prototype.updateHash(hash: Hash) -> void
更新所提供的 Hash 含有代表源代码内容的对象。 ()Hash 是带有 update 方法,用字符串值调用)
RawSource
代表没有SourceMap的源代码.
new RawSource(sourceCode: String | Buffer)
OriginalSource
代表源代码,是原始文件的副本.
new OriginalSource(
sourceCode: String | Buffer,
name: String,
scopeBindings?: Map<String, String>
)
sourceCode:源代码.name: 原始源代码的文件名.scopeBindings: 此源声明的每个名称在生成代码中读取, 由源使用的名称键入 。 只有在需要地图时才咨询scopes: true,并通过包装源,例如ReplaceSource财务报告和审定财务报表ConcatSource。 。 。 .
如果请求, 原始来源试图通过在典型语句边框拆分源代码来创建列映射(;, (中文(简体) ), {, (中文(简体) ), }) (中文(简体) ).
SourceMapSource
以 SourceMap 代表源代码,可选择为原始源添加一个 SourceMap .
new SourceMapSource(
sourceCode: String | Buffer,
name: String,
sourceMap: Object | String | Buffer,
originalSource?: String | Buffer,
innerSourceMap?: Object | String | Buffer,
removeOriginalSource?: boolean
)
sourceCode:源代码.name: 原始源代码的文件名.sourceMap:源代码的SourceMap.originalSource:原始文件的源代码. 如果sourceMap已经包含原始源代码.innerSourceMap: 源图originalSource编号 :name。 。 。 .removeOriginalSource: 删除源代码name从最终的地图,只保存 更深的映射文件.
这个 SourceMapSource 支持用于 innerSourceMap。 。 。 .
当原始源匹配生成的用于映射的源时,它被假设为由字符映射的字符,从而可以保持更细的映射距离 sourceMap。 。 。 .
CachedSource
装饰 a Source 和缓存返回的结果 map, (中文(简体) ), source, (中文(简体) ), buffer, (中文(简体) ), size 财务报告和审定财务报表 sourceAndMap 在记忆中. updateHash 未缓存.
它试图重复使用其他方法的缓存结果来避免计算,即何时 source 已缓存, 正在调用 size 将会从缓存来源得到大小, 调用 sourceAndMap 只会打电话 map 在包裹的源.
new CachedSource(source: Source)
new CachedSource(source: Source | () => Source, cachedData?: CachedData)
而不是通过一个 Source 对象可以直接通过返回 a 的函数 Source 对象。 该函数只在需要时调用一次.
公共方法
getCachedData()
返回缓存数据以传递到构造器。 所有缓存条目被转换为缓冲并避免字符串.
original()
返回原始内容 Source 对象.
originalLazy()
返回原始内容 Source 对象或函数返回这些对象.
PrefixSource
装饰的每行前缀 Source 带有一个提供字符串.
new PrefixSource(
prefix: String,
source: Source | String | Buffer
)
ConcatSource
连接多 Sources或字符串到单一来源.
new ConcatSource(
...items?: Source | String
)
公共方法
add
ConcatSource.prototype.add(item: Source | String)
向源添加项目.
ReplaceSource
装饰 a Source 加上替换和插入源代码.
这个 ReplaceSource 支持用于儿童源的“身份”映射.
当原始的源匹配生成的源用于映射时,它被假定为由字符映射的字符,允许在替换/插入时分割映射.
公共方法
replace
ReplaceSource.prototype.replace(
start: Number,
end: Number,
replacement: String
)
替换字符从 start (0-指数化,包容性) end (0-指数化,包括) replacement。 。 。 .
位置代表原出处位置,不受其他替换或插入的影响.
insert
ReplaceSource.prototype.insert(
pos: Number,
insertion: String
)
插入 insertion 在字符之前 pos (0-指数化).
位置代表原出处的位置,不受其他替换或插入的影响.
original
装饰一下 Source。 。 。 .
CompatSource
将类似源对象转换为真实源对象.
公共方法
静态 from
CompatSource.from(sourceLike: any | Source)
若为 sourceLike 是一个真实的来源, 它返回它未修改。 否则,它返回它包在一个compat源.
util.sourceMap
帮助读取源地图 .
originalPositionFor
util.sourceMap.originalPositionFor(
sourceMap: RawSourceMap | string | Buffer,
line: number,
column: number,
): { source: string, line: number, column: number, name: string | null } | null
生成位置的返回:最接近或之前的映射 column 打开 line,或 null 没有地图的时候 线从一行起算,从零行起算,两侧为一行. source 与地图的 sourceRoot。它解码整个地图,所以它适合一次性查询,例如错误位置.