12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- import { IObfuscationResult } from './interfaces/IObfuscationResult';
- import { ISourceMapCorrector } from './interfaces/ISourceMapCorrector';
- import { TSourceMapMode } from './types/TSourceMapMode';
- import { SourceMapMode } from './enums/SourceMapMode';
- import { ObfuscationResult } from './ObfuscationResult';
- import { Utils } from './Utils';
- export class SourceMapCorrector implements ISourceMapCorrector {
- /**
- * @type {string}
- */
- private obfuscatedCode: string;
- /**
- * @type {string}
- */
- private sourceMap: string;
- /**
- * @type {TSourceMapMode}
- */
- private sourceMapMode: TSourceMapMode;
- /**
- * @type {string}
- */
- private sourceMapUrl: string;
- /**
- * @param obfuscationResult
- * @param sourceMapUrl
- * @param sourceMapMode
- */
- constructor (
- obfuscationResult: IObfuscationResult,
- sourceMapUrl: string,
- sourceMapMode: TSourceMapMode
- ) {
- this.obfuscatedCode = obfuscationResult.getObfuscatedCode();
- this.sourceMap = obfuscationResult.getSourceMap();
- this.sourceMapUrl = sourceMapUrl;
- this.sourceMapMode = sourceMapMode;
- }
- /**
- * @returns {ObfuscationResult}
- */
- public correct (): IObfuscationResult {
- return new ObfuscationResult(
- this.correctObfuscatedCode(),
- this.sourceMap
- );
- }
- /**
- * @returns {string}
- */
- private correctObfuscatedCode (): string {
- if (!this.sourceMap) {
- return this.obfuscatedCode;
- }
- let sourceMappingUrl: string = '//# sourceMappingURL=';
- switch (this.sourceMapMode) {
- case SourceMapMode.Inline:
- sourceMappingUrl += `data:application/json;base64,${Utils.btoa(this.sourceMap)}`;
- break;
- case SourceMapMode.Separate:
- default:
- if (!this.sourceMapUrl) {
- return this.obfuscatedCode;
- }
- sourceMappingUrl += this.sourceMapUrl;
- break;
- }
- return `${this.obfuscatedCode}\n${sourceMappingUrl}`;
- };
- }
|