本文整理匯總了TypeScript中source-map.SourceMapGenerator.toJSON方法的典型用法代碼示例。如果您正苦於以下問題:TypeScript SourceMapGenerator.toJSON方法的具體用法?TypeScript SourceMapGenerator.toJSON怎麽用?TypeScript SourceMapGenerator.toJSON使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類source-map.SourceMapGenerator
的用法示例。
在下文中一共展示了SourceMapGenerator.toJSON方法的4個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。
示例1: generateSourceMap
function generateSourceMap(
filename: string,
source: string,
generated: string,
sourceRoot: string
): RawSourceMap {
const map = new SourceMapGenerator({
file: filename.replace(/\\/g, '/'),
sourceRoot: sourceRoot.replace(/\\/g, '/')
})
map.setSourceContent(filename, source)
generated.split(splitRE).forEach((line, index) => {
if (!emptyRE.test(line)) {
map.addMapping({
source: filename,
original: {
line: index + 1,
column: 0
},
generated: {
line: index + 1,
column: 0
}
})
}
})
return map.toJSON()
}
示例2: createJsIdentitySourcemap
/**
* Creates an identity source map from JS script content. Can offset original
* line/column data for inline script elements.
*/
function createJsIdentitySourcemap(
sourceUrl: string,
sourceContent: string,
lineOffset: number,
firstLineCharOffset: number) {
const generator = new SourceMapGenerator();
const tokens = espree.tokenize(
sourceContent, {loc: true, ecmaVersion: 2017, sourceType: 'module'});
tokens.forEach((token) => {
if (!token.loc) {
return null;
}
const mapping: Mapping = {
original: {
line: token.loc.start.line + lineOffset,
column: token.loc.start.column +
(token.loc.start.line === 1 ? firstLineCharOffset : 0)
},
generated: token.loc.start,
source: sourceUrl
};
if (token.type === 'Identifier') {
mapping.name = token.value;
}
generator.addMapping(mapping);
});
return generator.toJSON();
}
示例3: offsetSourceMap
function offsetSourceMap(
sourcemap: RawSourceMap, lineOffset: number, firstLineCharOffset: number) {
const consumer = new SourceMapConsumer(sourcemap);
const generator = new SourceMapGenerator();
consumer.eachMapping((mapping) => {
if (typeof mapping.originalLine !== 'number' ||
typeof mapping.originalColumn !== 'number') {
return;
}
const newMapping: Mapping = {
source: mapping.source,
generated: {
line: mapping.generatedLine + lineOffset,
column: mapping.generatedColumn +
(mapping.generatedLine === 1 ? firstLineCharOffset : 0)
},
original: {line: mapping.originalLine, column: mapping.originalColumn}
};
if (mapping.name) {
newMapping.name = mapping.name;
}
generator.addMapping(newMapping);
});
return generator.toJSON();
}
示例4: sourceMapGeneratorToConsumer
export function sourceMapGeneratorToConsumer(
sourceMapGenerator: SourceMapGenerator, fileName?: string,
sourceName?: string): SourceMapConsumer {
const rawSourceMap = sourceMapGenerator.toJSON();
if (sourceName) {
rawSourceMap.sources = [sourceName];
}
if (fileName) {
rawSourceMap.file = fileName;
}
return new SourceMapConsumer(rawSourceMap);
}