flipper-babel-transformer
Version:
Babel transformer for Flipper plugins
42 lines • 1.61 kB
JavaScript
;
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
/**
* There are some env vars which affect transformations, so the Metro/Babel cache should be invalidated when at least one of them changed.
*
* If any issues found with such approach, we can fallback to the implementation which always invalidates caches, but also makes bundling significantly slower:
* export default function getCacheKey() { return Math.random().toString(36); }
*/
const flipper_env_1 = __importDefault(require("./flipper-env"));
const fs_extra_1 = __importDefault(require("fs-extra"));
const path_1 = __importDefault(require("path"));
let selfChecksum;
function getSelfChecksum() {
if (!selfChecksum) {
selfChecksum = fs_extra_1.default
.readFileSync(path_1.default.resolve(__dirname, '..', 'lib', 'checksum.txt'))
.toString();
}
return selfChecksum;
}
function getCacheKey() {
const key = [
getSelfChecksum(),
...Object.entries(flipper_env_1.default)
.sort(([name1, _value1], [name2, _value2]) => name1.localeCompare(name2))
.map(([name, value]) => `${name}=${value}`),
].join('|');
return key;
}
exports.default = getCacheKey;
//# sourceMappingURL=get-cache-key.js.map