/** * Copyright (c) Facebook, Inc. and its affiliates. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @format */ import fs from 'fs'; import path from 'path'; import {BaseDevice, AndroidDevice, IOSDevice} from 'flipper'; import {AppMatchPattern} from '../types'; const extractAppNameFromSelectedApp = (selectedApp: string | null) => { if (selectedApp == null) { return null; } else { return selectedApp.split('#')[0]; } }; export const getAppMatchPatterns = ( selectedApp: string | null, device: BaseDevice, ) => { return new Promise>((resolve, reject) => { const appName = extractAppNameFromSelectedApp(selectedApp); if (appName === 'Facebook') { let filename: string; if (device instanceof AndroidDevice) { filename = 'facebook-match-patterns-android.json'; } else if (device instanceof IOSDevice) { filename = 'facebook-match-patterns-ios.json'; } else { return; } const patternsPath = path.join('facebook', filename); fs.readFile(patternsPath, (err, data) => { if (err) { reject(err); } else { resolve(JSON.parse(data.toString())); } }); } else if (appName != null) { reject(new Error('No rule for app ' + appName)); } else { reject(new Error('selectedApp was null')); } }); };