mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/51416 Deletes `oncall` annotations from the `facebook/react-native` repository. Changelog: [Internal] Reviewed By: javache Differential Revision: D74902524 fbshipit-source-id: 32a6a5b2ff27281792d572f151e2b094d9a79029
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
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.
|
|
*
|
|
* @flow strict-local
|
|
* @format
|
|
*/
|
|
|
|
import type {AssetData} from 'metro/src/Assets';
|
|
|
|
import assetPathUtils from './assetPathUtils';
|
|
import fs from 'fs';
|
|
import path from 'path';
|
|
|
|
async function createKeepFileAsync(
|
|
assets: $ReadOnlyArray<AssetData>,
|
|
outputDirectory: string,
|
|
): Promise<void> {
|
|
if (!assets.length) {
|
|
return;
|
|
}
|
|
const assetsList = [];
|
|
for (const asset of assets) {
|
|
const prefix = assetPathUtils.drawableFileTypes.has(asset.type)
|
|
? 'drawable'
|
|
: 'raw';
|
|
assetsList.push(
|
|
`@${prefix}/${assetPathUtils.getResourceIdentifier(asset)}`,
|
|
);
|
|
}
|
|
const keepPath = path.join(outputDirectory, 'raw/keep.xml');
|
|
const content = `<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="${assetsList.join(',')}" />\n`;
|
|
await fs.promises.mkdir(path.dirname(keepPath), {recursive: true});
|
|
await fs.promises.writeFile(keepPath, content);
|
|
}
|
|
|
|
export default createKeepFileAsync;
|