Files
flipper/desktop/babel-transformer/src/get-cache-key.tsx
Anton Kastritskiy 844728d9dc rename babel-transformer files from ts to tsx
Summary: group files rename

Reviewed By: passy

Differential Revision: D33889860

fbshipit-source-id: 888e173fc72b5e126c1e41324b6cae6be29274c5
2022-01-31 06:14:59 -08:00

40 lines
1.2 KiB
TypeScript

/**
* 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
*/
/**
* 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); }
*/
import {default as flipperEnv} from './flipper-env';
import fs from 'fs-extra';
import path from 'path';
let selfChecksum: string | undefined;
function getSelfChecksum() {
if (!selfChecksum) {
selfChecksum = fs
.readFileSync(path.resolve(__dirname, '..', 'lib', 'checksum.txt'))
.toString();
}
return selfChecksum;
}
export default function getCacheKey() {
const key = [
getSelfChecksum(),
...Object.entries(flipperEnv)
.sort(([name1, _value1], [name2, _value2]) => name1.localeCompare(name2))
.map(([name, value]) => `${name}=${value}`),
].join('|');
return key;
}