1 | "use strict";
|
2 |
|
3 | Object.defineProperty(exports, "__esModule", {
|
4 | value: true
|
5 | });
|
6 | exports.getSha1 = getSha1;
|
7 | exports.getCacheDB = getCacheDB;
|
8 | exports.logError = logError;
|
9 | exports.getBabelTransformFile = getBabelTransformFile;
|
10 | exports.CLIError = void 0;
|
11 |
|
12 | var _os = _interopRequireDefault(require("os"));
|
13 |
|
14 | var _lowdb = _interopRequireDefault(require("lowdb"));
|
15 |
|
16 | var _pify = _interopRequireDefault(require("pify"));
|
17 |
|
18 | var _path = _interopRequireDefault(require("path"));
|
19 |
|
20 | var _crypto = _interopRequireDefault(require("crypto"));
|
21 |
|
22 | var _makeDir = _interopRequireDefault(require("make-dir"));
|
23 |
|
24 | var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
25 |
|
26 | var _resolveFrom = _interopRequireDefault(require("resolve-from"));
|
27 |
|
28 | var _FileAsync = _interopRequireDefault(require("lowdb/adapters/FileAsync"));
|
29 |
|
30 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
31 |
|
32 | function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
33 |
|
34 | function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
35 |
|
36 | class CLIError extends Error {}
|
37 |
|
38 | exports.CLIError = CLIError;
|
39 |
|
40 | function getSha1(contents) {
|
41 | const hash = _crypto.default.createHash('sha1');
|
42 |
|
43 | hash.update(contents);
|
44 | return hash.digest('hex');
|
45 | }
|
46 |
|
47 | function getCacheDB(_x, _x2) {
|
48 | return _getCacheDB.apply(this, arguments);
|
49 | }
|
50 |
|
51 | function _getCacheDB() {
|
52 | _getCacheDB = _asyncToGenerator(function* (projectPath, loadState) {
|
53 | const configPath = _path.default.join(_os.default.homedir(), '.sb-babel-cli', `cache-timestamps-${getSha1(projectPath)}`);
|
54 |
|
55 | yield (0, _makeDir.default)(_path.default.dirname(configPath));
|
56 | const adapter = new _FileAsync.default(configPath, {
|
57 | serialize: JSON.stringify
|
58 | });
|
59 | adapter.write = (0, _debounce.default)(adapter.write, 1000);
|
60 | const db = yield (0, _lowdb.default)(adapter);
|
61 |
|
62 | if (!loadState) {
|
63 | yield db.setState({});
|
64 | }
|
65 |
|
66 | return db;
|
67 | });
|
68 | return _getCacheDB.apply(this, arguments);
|
69 | }
|
70 |
|
71 | function logError(error) {
|
72 | if (error instanceof CLIError) {
|
73 | console.error('ERROR', error.message);
|
74 | } else {
|
75 | console.error(error);
|
76 | }
|
77 | }
|
78 |
|
79 | let transformFileCached;
|
80 |
|
81 | function getBabelTransformFile(projectPath) {
|
82 | if (!transformFileCached) {
|
83 | let resolved;
|
84 |
|
85 | try {
|
86 | resolved = (0, _resolveFrom.default)(projectPath, '@babel/core');
|
87 | } catch (_) {
|
88 |
|
89 | }
|
90 |
|
91 | if (!resolved) {
|
92 | throw new CLIError('Unable to find @babel/core in your project');
|
93 | }
|
94 |
|
95 |
|
96 | const babelCore = require(resolved);
|
97 |
|
98 | transformFileCached = (0, _pify.default)(babelCore.transformFile);
|
99 | }
|
100 |
|
101 | return transformFileCached;
|
102 | } |
\ | No newline at end of file |