react-native-test-app
Version:
react-native-test-app provides a test app for all supported platforms as a package
36 lines (33 loc) • 1.03 kB
JavaScript
// @ts-check
import * as path from "node:path";
import { findFile } from "../helpers.js";
import { BaseMods } from "./ExpoConfigPlugins.mjs";
/**
* @template {import("@expo/json-file").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 {import("./types.js").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;
},
});
};
}