import { Hash } from 'crypto';
|
import { RawSourceMap } from 'source-map';
|
|
import { MapOptions, SourceAndMapResult } from '.';
|
|
/**
|
* Base class for all sources.
|
* A Source can be asked for source code, size, source map and hash.
|
*/
|
declare abstract class Source {
|
/**
|
* Returns the represented source code as string.
|
*/
|
source(): string | ArrayBuffer;
|
|
/**
|
* Returns the represented source code as Buffer. Strings are converted to utf-8.
|
*/
|
buffer(): Buffer;
|
|
/**
|
* Returns the size in chars of the represented source code.
|
*/
|
size(): number;
|
|
/**
|
* Returns the SourceMap of the represented source code as JSON.
|
* May return `null` if no SourceMap is available.
|
*/
|
map(options?: MapOptions): RawSourceMap | null;
|
|
/**
|
* Returns both, source code (like `Source.prototype.source()` and SourceMap (like `Source.prototype.map()`).
|
* This method could have better performance than calling `source()` and `map()` separately.
|
*/
|
sourceAndMap(options?: MapOptions): SourceAndMapResult;
|
|
/**
|
* Updates the provided Hash object with the content of the represented source code.
|
* (Hash is an object with an update method, which is called with string values)
|
*/
|
updateHash(hash: Hash): void;
|
}
|
|
export = Source;
|