UNPKG

@playlyfe/babel-loader

Version:
59 lines (48 loc) 1.74 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _babelConfigCacheIdentifier = require("./babel-config-cache-identifier"); var _memoize2 = _interopRequireDefault(require("lodash/memoize")); var _jsonString = require("./json-string"); var _log = _interopRequireDefault(require("./_log")); var _default = { generate: val => (0, _jsonString.toJSONString)(val), diff: (oldIdent, newIdent) => { const newVal = (0, _jsonString.parseJSONString)(newIdent); if (oldIdent == null) { Object.keys(newVal).forEach(key => { if (key !== 'source') { // eslint-disable-next-line no-use-before-define printDiff(key, '', newVal[key] || ''); } }); return ['new']; } const oldVal = (0, _jsonString.parseJSONString)(oldIdent); return Object.keys(newVal).reduce((acc, key) => { if (newVal[key] !== oldVal[key]) { if (key !== 'source') { // eslint-disable-next-line no-use-before-define printDiff(key, oldVal[key] || '', newVal[key] || ''); } acc.push(key); } return acc; }, []); } }; exports.default = _default; const printDiff = (0, _memoize2.default)((key, oldVal, newVal) => { if (key === 'babelConfig') { (0, _babelConfigCacheIdentifier.printBabelConfigCacheIdentifierDiff)(oldVal, newVal); } else { _log.default.write((0, _jsonString.diffJSONString)((0, _jsonString.toJSONString)({ [key]: oldVal }), (0, _jsonString.toJSONString)({ [key]: newVal })), false); } }, (key, oldVal, newVal) => `${key}-${oldVal}-${newVal}`);