/
githubmirror
/
react-native
Обзор
Документация
Войти
/
githubmirror
/
react-native
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
packages/community-cli-plugin/src/commands/bundle/createKeepFileAsync.js
38 строк
1 KB
Alex Hunt
Migrate Node.js builtin imports to node: scheme (#57611)
21 июл 2026, 19:01
21 июл 2026, 19:01
89300ac
Код
Авторство
О чём код?
/** * 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'; import { drawableFileTypes, getAndroidResourceIdentifier, } from '@react-native/asset-utils'; import fs from 'node:fs'; import path from 'node:path'; async function createKeepFileAsync( assets: ReadonlyArray<AssetData>, outputDirectory: string, ): Promise<void> { if (!assets.length) { return; } const assetsList = []; for (const asset of assets) { const prefix = drawableFileTypes.has(asset.type) ? 'drawable' : 'raw'; assetsList.push(`@${prefix}/${getAndroidResourceIdentifier(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;