You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/* MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra*/
"use strict";
/** * @typedef {object} MapOptions * @property {boolean=} columns need columns? * @property {boolean=} module is module */
/** * @typedef {object} RawSourceMap * @property {number} version version * @property {string[]} sources sources * @property {string[]} names names * @property {string=} sourceRoot source root * @property {string[]=} sourcesContent sources content * @property {string} mappings mappings * @property {string} file file * @property {string=} debugId debug id * @property {number[]=} ignoreList ignore list */
/** @typedef {string | Buffer} SourceValue */
/** * @typedef {object} SourceAndMap * @property {SourceValue} source source * @property {RawSourceMap | null} map map */
/** * @typedef {object} HashLike * @property {(data: string | Buffer, inputEncoding?: string) => HashLike} update make hash update * @property {(encoding?: string) => string | Buffer} digest get hash digest */
class Source { /** * @returns {SourceValue} source */ source() { throw new Error("Abstract"); }
buffer() { const source = this.source(); if (Buffer.isBuffer(source)) return source; return Buffer.from(source, "utf8"); }
size() { return this.buffer().length; }
/** * @param {MapOptions=} options map options * @returns {RawSourceMap | null} map */ // eslint-disable-next-line no-unused-vars
map(options) { return null; }
/** * @param {MapOptions=} options map options * @returns {SourceAndMap} source and map */ sourceAndMap(options) { return { source: this.source(), map: this.map(options), }; }
/** * @param {HashLike} hash hash * @returns {void} */ // eslint-disable-next-line no-unused-vars
updateHash(hash) { throw new Error("Abstract"); }}
module.exports = Source;
|