UNPKG

webpack-sources

Version:

Source code handling classes for webpack

90 lines (76 loc) 1.89 kB
/* 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;