| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228 |
- "use strict";
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.default = _default;
- function _convertSourceMap() {
- const data = require("convert-source-map");
- _convertSourceMap = function () {
- return data;
- };
- return data;
- }
- function _traceMapping() {
- const data = require("@jridgewell/trace-mapping");
- _traceMapping = function () {
- return data;
- };
- return data;
- }
- function _slash() {
- const data = require("slash");
- _slash = function () {
- return data;
- };
- return data;
- }
- function _path() {
- const data = require("path");
- _path = function () {
- return data;
- };
- return data;
- }
- function _fs() {
- const data = require("fs");
- _fs = function () {
- return data;
- };
- return data;
- }
- var util = require("./util.js");
- var watcher = require("./watcher.js");
- function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
- function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
- function _default(_x) {
- return _ref.apply(this, arguments);
- }
- function _ref() {
- _ref = _asyncToGenerator(function* ({
- cliOptions,
- babelOptions
- }) {
- function buildResult(fileResults) {
- const mapSections = [];
- let code = "";
- let offset = 0;
- let hasRawMap = false;
- for (const result of fileResults) {
- if (!result) continue;
- hasRawMap = !!result.map;
- mapSections.push({
- offset: {
- line: offset,
- column: 0
- },
- map: result.map || {
- version: 3,
- names: [],
- sources: [],
- mappings: []
- }
- });
- code += result.code + "\n";
- offset += countNewlines(result.code) + 1;
- }
- const map = new (_traceMapping().AnyMap)({
- version: 3,
- file: cliOptions.sourceMapTarget || _path().basename(cliOptions.outFile || "") || "stdout",
- sections: mapSections
- });
- map.sourceRoot = babelOptions.sourceRoot;
- if (babelOptions.sourceMaps === "inline" || !cliOptions.outFile && babelOptions.sourceMaps) {
- code += "\n" + _convertSourceMap().fromObject((0, _traceMapping().encodedMap)(map)).toComment();
- }
- return {
- map: map,
- code: code,
- hasRawMap: hasRawMap
- };
- }
- function countNewlines(code) {
- let count = 0;
- let index = -1;
- while ((index = code.indexOf("\n", index + 1)) !== -1) {
- count++;
- }
- return count;
- }
- function output(fileResults) {
- const result = buildResult(fileResults);
- if (cliOptions.outFile) {
- (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "10.12") ? _fs().mkdirSync : require("make-dir").sync)(_path().dirname(cliOptions.outFile), {
- recursive: true
- });
- let outputMap = false;
- if (babelOptions.sourceMaps && babelOptions.sourceMaps !== "inline") {
- outputMap = "external";
- } else if (babelOptions.sourceMaps == null && result.hasRawMap) {
- outputMap = util.hasDataSourcemap(result.code) ? "external" : "both";
- }
- if (outputMap) {
- const mapLoc = cliOptions.outFile + ".map";
- if (outputMap === "external") {
- result.code = util.addSourceMappingUrl(result.code, mapLoc);
- }
- _fs().writeFileSync(mapLoc, JSON.stringify((0, _traceMapping().encodedMap)(result.map)));
- }
- _fs().writeFileSync(cliOptions.outFile, result.code);
- } else {
- process.stdout.write(result.code + "\n");
- }
- }
- function readStdin() {
- return new Promise((resolve, reject) => {
- let code = "";
- process.stdin.setEncoding("utf8");
- process.stdin.on("readable", function () {
- const chunk = process.stdin.read();
- if (chunk !== null) code += chunk;
- });
- process.stdin.on("end", function () {
- resolve(code);
- });
- process.stdin.on("error", reject);
- });
- }
- function stdin() {
- return _stdin.apply(this, arguments);
- }
- function _stdin() {
- _stdin = _asyncToGenerator(function* () {
- const code = yield readStdin();
- const res = yield util.transformRepl(cliOptions.filename, code, Object.assign({}, babelOptions, {
- sourceFileName: "stdin"
- }));
- output([res]);
- });
- return _stdin.apply(this, arguments);
- }
- function walk(_x2) {
- return _walk.apply(this, arguments);
- }
- function _walk() {
- _walk = _asyncToGenerator(function* (filenames) {
- const _filenames = [];
- filenames.forEach(function (filename) {
- if (!_fs().existsSync(filename)) return;
- const stat = _fs().statSync(filename);
- if (stat.isDirectory()) {
- _filenames.push(...util.readdirForCompilable(filename, cliOptions.includeDotfiles, cliOptions.extensions));
- } else {
- _filenames.push(filename);
- }
- });
- const results = yield Promise.all(_filenames.map(_asyncToGenerator(function* (filename) {
- let sourceFilename = filename;
- if (cliOptions.outFile) {
- sourceFilename = _path().relative(_path().dirname(cliOptions.outFile), sourceFilename);
- }
- sourceFilename = _slash()(sourceFilename);
- try {
- return yield util.compile(filename, Object.assign({}, babelOptions, {
- sourceFileName: sourceFilename,
- sourceMaps: babelOptions.sourceMaps === "inline" ? true : babelOptions.sourceMaps
- }));
- } catch (err) {
- if (!cliOptions.watch) {
- throw err;
- }
- console.error(err);
- return null;
- }
- })));
- output(results);
- });
- return _walk.apply(this, arguments);
- }
- function files(_x3) {
- return _files.apply(this, arguments);
- }
- function _files() {
- _files = _asyncToGenerator(function* (filenames) {
- if (cliOptions.watch) {
- watcher.enable({
- enableGlobbing: false
- });
- }
- if (!cliOptions.skipInitialBuild) {
- yield walk(filenames);
- }
- if (cliOptions.watch) {
- filenames.forEach(watcher.watch);
- watcher.startWatcher();
- watcher.onFilesChange((changes, event, cause) => {
- const actionableChange = changes.some(filename => util.isCompilableExtension(filename, cliOptions.extensions) || filenames.includes(filename));
- if (!actionableChange) return;
- if (cliOptions.verbose) {
- console.log(`${event} ${cause}`);
- }
- walk(filenames).catch(err => {
- console.error(err);
- });
- });
- }
- });
- return _files.apply(this, arguments);
- }
- if (cliOptions.filenames.length) {
- yield files(cliOptions.filenames);
- } else {
- yield stdin();
- }
- });
- return _ref.apply(this, arguments);
- }
- //# sourceMappingURL=file.js.map
|