Skip to content

Commit c32593e

Browse files
committed
Invalidate preset cache on dependency updates
1 parent 2fa055f commit c32593e

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/**
2+
* Copyright (c) Meta Platforms, Inc. and affiliates.
3+
*
4+
* This source code is licensed under the MIT license found in the
5+
* LICENSE file in the root directory of this source tree.
6+
*
7+
* @format
8+
* @noflow
9+
*/
10+
11+
'use strict';
12+
13+
function getCacheKey(packageContents) {
14+
jest.resetModules();
15+
jest.doMock('node:fs', () => ({
16+
readFileSync: filename =>
17+
filename.endsWith('package.json')
18+
? Buffer.from(packageContents)
19+
: Buffer.from(filename),
20+
}));
21+
22+
return require('../index').getCacheKey();
23+
}
24+
25+
test('cache key includes package metadata for main builds', () => {
26+
expect(getCacheKey('{"dependency":"1.0.0"}')).not.toBe(
27+
getCacheKey('{"dependency":"2.0.0"}'),
28+
);
29+
});

packages/react-native-babel-preset/src/index.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ module.exports.getCacheKey = () => {
3535
const {readFileSync} = require('node:fs');
3636
const key = createHash('md5');
3737
[
38+
readFileSync(require.resolve('../package.json')),
3839
readFileSync(__filename),
3940
readFileSync(require.resolve('./configs/main.js')),
4041
readFileSync(require.resolve('./configs/hmr.js')),

0 commit comments

Comments
 (0)