react-native-test-app
Version:
react-native-test-app provides a test app for all supported platforms as a package
41 lines (37 loc) • 1.09 kB
JavaScript
// @ts-check
import * as path from "node:path";
import { findFile } from "../helpers.js";
import { BaseMods } from "./ExpoConfigPlugins.mjs";
/**
* @import { JSONObject } from "@expo/json-file";
* @import { CustomModProvider } from "./types.ts";
*/
/**
* @template {JSONObject} T
* @param {T} [defaultRead={}]
*/
// @ts-expect-error Type '{}' is not assignable to type 'T'
export function makeNullProvider(defaultRead = {}) {
return BaseMods.provider({
getFilePath: () => "",
read: () => Promise.resolve(defaultRead),
write: () => Promise.resolve(),
});
}
/**
* Creates a mod modifier that just changes `getFilePath()`.
* @param {string} actualProjectDir
* @returns {CustomModProvider}
*/
export function makeFilePathModifier(actualProjectDir) {
return function (original, file) {
return BaseMods.provider({
...original,
getFilePath: async ({ modRequest: { projectRoot } }) => {
const name = path.posix.join(actualProjectDir, file);
const result = findFile(name, projectRoot);
return result || name;
},
});
};
}