UNPKG

@playlyfe/babel-loader

Version:
47 lines (36 loc) 1.56 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = cacheTransform; var _en = _interopRequireDefault(require("cacache/en")); function cacheTransform(params) { return getInfo(params.directory, params.sourceFileName).then(info => { if (!info) { // not in cache return put(params.directory, params.sourceFileName, params.transform(null, params.identifier), params.identifier); } // check data present in cache is same if (info.metadata.identifier !== params.identifier) { // present in cache but something changed return put(params.directory, params.sourceFileName, params.transform(info.metadata.identifier, params.identifier), params.identifier); } // present in cache nothing changed // read from cache return get(params.directory, params.sourceFileName); }, () => put(params.directory, params.sourceFileName, params.transform(null, params.identifier), params.identifier)); } function getInfo(directory, sourceFileName) { return _en.default.get.info(directory, sourceFileName); } function get(directory, sourceFileName) { return _en.default.get(directory, sourceFileName).then(({ data }) => JSON.parse(data.toString())); } function put(directory, sourceFileName, transformedSource, identifier) { return _en.default.put(directory, sourceFileName, JSON.stringify(transformedSource), { metadata: { identifier } }).then(() => transformedSource); }