PHP 7.4.33
Preview: JavaHelpers.js Size: 3.58 KB
/var/www/uibuilder.cmshelp.dk/httpdocs/node_modules/@react-native/codegen/lib/generators/components/JavaHelpers.js
/**
 * 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.
 *
 *
 * @format
 */

'use strict';

function upperCaseFirst(inString) {
  return inString[0].toUpperCase() + inString.slice(1);
}
function getInterfaceJavaClassName(componentName) {
  return `${componentName.replace(/^RCT/, '')}ManagerInterface`;
}
function getDelegateJavaClassName(componentName) {
  return `${componentName.replace(/^RCT/, '')}ManagerDelegate`;
}
function toSafeJavaString(input, shouldUpperCaseFirst) {
  const parts = input.split('-');
  if (shouldUpperCaseFirst === false) {
    return parts.join('');
  }
  return parts.map(upperCaseFirst).join('');
}
function getImports(component, type) {
  const imports = new Set();
  if (type === 'interface') {
    imports.add(
      'import com.facebook.react.uimanager.ViewManagerWithGeneratedInterface;',
    );
  }
  component.extendsProps.forEach(extendProps => {
    switch (extendProps.type) {
      case 'ReactNativeBuiltInType':
        switch (extendProps.knownTypeName) {
          case 'ReactNativeCoreViewProps':
            imports.add('import android.view.View;');
            return;
          default:
            extendProps.knownTypeName;
            throw new Error('Invalid knownTypeName');
        }
      default:
        extendProps.type;
        throw new Error('Invalid extended type');
    }
  });
  function addImportsForNativeName(name) {
    switch (name) {
      case 'ColorPrimitive':
        if (type === 'delegate') {
          imports.add('import com.facebook.react.bridge.ColorPropConverter;');
        }
        return;
      case 'ImageSourcePrimitive':
        imports.add('import com.facebook.react.bridge.ReadableMap;');
        return;
      case 'PointPrimitive':
        imports.add('import com.facebook.react.bridge.ReadableMap;');
        return;
      case 'EdgeInsetsPrimitive':
        imports.add('import com.facebook.react.bridge.ReadableMap;');
        return;
      case 'DimensionPrimitive':
        if (type === 'delegate') {
          imports.add(
            'import com.facebook.react.bridge.DimensionPropConverter;',
          );
        } else {
          imports.add('import com.facebook.yoga.YogaValue;');
        }
        return;
      default:
        name;
        throw new Error(`Invalid ReservedPropTypeAnnotation name, got ${name}`);
    }
  }
  component.props.forEach(prop => {
    const typeAnnotation = prop.typeAnnotation;
    if (typeAnnotation.type === 'ReservedPropTypeAnnotation') {
      // $FlowFixMe[incompatible-call]
      addImportsForNativeName(typeAnnotation.name);
    }
    if (typeAnnotation.type === 'ArrayTypeAnnotation') {
      imports.add('import com.facebook.react.bridge.ReadableArray;');
    }
    if (typeAnnotation.type === 'ObjectTypeAnnotation') {
      imports.add('import com.facebook.react.bridge.ReadableMap;');
    }
    if (typeAnnotation.type === 'MixedTypeAnnotation') {
      if (type === 'delegate') {
        imports.add('import com.facebook.react.bridge.DynamicFromObject;');
      } else {
        imports.add('import com.facebook.react.bridge.Dynamic;');
      }
    }
  });
  component.commands.forEach(command => {
    command.typeAnnotation.params.forEach(param => {
      const cmdParamType = param.typeAnnotation.type;
      if (cmdParamType === 'ArrayTypeAnnotation') {
        imports.add('import com.facebook.react.bridge.ReadableArray;');
      }
    });
  });
  return imports;
}
module.exports = {
  getInterfaceJavaClassName,
  getDelegateJavaClassName,
  toSafeJavaString,
  getImports,
};

Directory Contents

Dirs: 2 × Files: 42
Name Size Perms Modified Actions
- drwxr-xr-x 2025-03-28 11:04:37
Edit Download
- drwxr-xr-x 2025-03-28 11:04:37
Edit Download
8.09 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
9.54 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
1.46 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
1.53 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
8.16 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
9.20 KB lrw-r--r-- 2025-03-28 11:04:35
Edit Download
2.44 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.59 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
2.43 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.58 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
9.34 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
10.35 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
10.78 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
12.08 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
7.99 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
8.90 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
4.33 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
4.54 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
18.22 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
19.69 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
9.54 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
10.24 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
7.35 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
8.00 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
2.09 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.23 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
2.67 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.84 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
2.01 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.15 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
2.07 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
2.28 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
5.27 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
5.88 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
2.99 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
3.10 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
3.23 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
3.33 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
13.37 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
13.95 KB lrw-r--r-- 2025-03-28 11:04:36
Edit Download
3.58 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
3.99 KB lrw-r--r-- 2025-03-28 11:04:37
Edit Download
If ZipArchive is unavailable, a .tar will be created (no compression).