Repository Analysis

ionic-team/capacitor

Build cross-platform Native Progressive Web Apps for iOS, Android, and the Web ⚡️

2.0 Likely human-written View on GitHub
2.0
Adjusted Score
2.0
Raw Score
100%
Time Factor
2026-05-29
Last Push
15,793
Stars
TypeScript
Language
49,145
Lines of Code
368
Files
72
Pattern Hits
2026-05-31
Scan Date

Score History

Severity Breakdown

CRITICAL 2HIGH 0MEDIUM 8LOW 62

Pattern Findings

72 matches across 9 categories. Click a row to expand file-level details.

Hyper-Verbose Identifiers36 hits · 38 pts
SeverityFileLineSnippet
LOWcore/cordova.js477 function assignOrWrapInDeprecateGetter(obj, key, value, message) {
LOWcore/cordova.js683 function checkSubscriptionArgument(argument) {
LOWcore/cordova.js883 function convertMessageToArgsNativeToJs(message) {
LOWcli/src/plugin.ts45export function getIncludedPluginPackages(config: Config, platform: string): readonly string[] | undefined {
LOWcli/src/common.ts248export async function getCapacitorPackageVersion(config: Config, platform: string): Promise<string> {
LOWcli/src/common.ts273export async function getProjectPlatformDirectory(config: Config, platform: string): Promise<string | null> {
LOWcli/src/common.ts319export async function getKnownCommunityPlatforms(): Promise<string[]> {
LOWcli/src/common.ts327export async function getKnownEnterprisePlatforms(): Promise<string[]> {
LOWcli/src/common.ts331export async function isValidEnterprisePlatform(platform: string): Promise<boolean> {
LOWcli/src/cordova.ts32export function generateCordovaPluginsJSFile(config: Config, plugins: Plugin[], platform: string): string {
LOWcli/src/cordova.ts532export function getIncompatibleCordovaPlugins(platform: string): string[] {
LOWcli/src/cordova.ts622export async function writeCordovaAndroidManifest(
LOWcli/src/config.ts335async function determineXcodeWorkspaceDirAbs(nativeProjectDirAbs: string): Promise<string> {
LOWcli/src/config.ts368async function determineAndroidStudioPath(os: OS): Promise<string> {
LOWcli/src/tasks/migrate.ts321async function checkCapacitorMajorVersion(config: Config): Promise<number> {
LOWcli/src/tasks/migrate.ts396async function getAndroidVariablesAndClasspaths(config: Config) {
LOWcli/src/tasks/open.ts48function createOpenablePlatformFilter(config: Config): (platform: string) => boolean {
LOWcli/src/tasks/run.ts143function createRunnablePlatformFilter(config: Config): (platform: string) => boolean {
LOWcli/src/tasks/build.ts81function createBuildablePlatformFilter(config: Config): (platform: string) => boolean {
LOWcli/src/util/spm.ts53export async function checkPluginsForPackageSwift(config: Config, plugins: Plugin[]): Promise<Plugin[]> {
LOWcli/src/util/spm.ts69export async function extractSPMPackageDirectory(config: Config): Promise<void> {
LOWcli/src/util/spm.ts219export async function addInfoPlistDebugIfNeeded(config: Config): Promise<void> {
LOWcli/src/util/spm.ts259export async function checkPackageTraitsRequirements(config: Config): Promise<string | null> {
LOWcli/src/util/monorepotools.ts75export function findPackageRelativePathInMonorepo(packageName: string, currentPath: string): string | null {
LOWcli/src/ios/update.ts73async function generateCordovaPackageFiles(cordovaPlugins: Plugin[], config: Config) {
LOWcli/src/ios/update.ts79async function generateCordovaPackageFile(p: Plugin, config: Config) {
LOWcli/src/ios/update.ts228async function writeGeneratedPackageSwift(p: Plugin, config: Config, iosPlatformVersion: string) {
LOWcli/src/ios/update.ts331async function getRelativeCapacitoriOSPath(config: Config) {
LOWcli/src/ios/update.ts674async function replaceFrameworkVariables(config: Config, prefsArray: any[], frameworkString: string) {
LOWcli/src/android/common.ts52export async function editProjectSettingsAndroid(config: Config): Promise<void> {
LOWcli/src/android/update.ts84async function findAndroidPluginClassesInPlugin(plugin: Plugin): Promise<PluginsJsonEntry[]> {
LOWcli/src/android/update.ts224export async function handleCordovaPluginsGradle(config: Config, cordovaPlugins: Plugin[]): Promise<void> {
LOWcli/src/android/update.ts386async function replaceFrameworkVariables(config: Config, prefsArray: any[], frameworkString: string) {
LOW…s/Capacitor/Capacitor/Plugins/HttpRequestHandler.swift52open class HttpRequestHandler {
LOW…/src/main/java/com/getcapacitor/plugin/SystemBars.java44 function capacitorSystemBarsCheckMetaViewport() {
LOW…a/com/getcapacitor/plugin/util/HttpRequestHandler.java31public class HttpRequestHandler {
Over-Commented Block21 hits · 21 pts
SeverityFileLineSnippet
LOWcli/src/ios/doctor.ts1import { check, checkWebDir } from '../common';
LOWcli/src/android/add.ts21## This file is automatically generated by Android Studio.
LOWios/Capacitor/Capacitor/Capacitor.h1#import <UIKit/UIKit.h>
LOWios/Capacitor/Capacitor/KeyValueStore.swift1//
LOWios/Capacitor/Capacitor/KeyValueStore.swift21///
LOWios/Capacitor/Capacitor/KeyValueStore.swift41///
LOWios/Capacitor/Capacitor/KeyValueStore.swift61///
LOWios/Capacitor/Capacitor/KeyValueStore.swift81/// [NSFileWriteOutOfSpaceError](https://developer.apple.com/documentation/foundation/1448136-nserror_codes/nsfile
LOWios/Capacitor/Capacitor/KeyValueStore.swift141 try backend.delete(key)
LOWios/Capacitor/Capacitor/CAPInstancePlugin.swift1//
LOWios/Capacitor/Capacitor/Codable/JSValueEncoder.swift1//
LOWios/Capacitor/Capacitor/Codable/JSValueDecoder.swift1//
LOW…acitor/CapacitorTests/CapacitorTests-Bridging-Header.h1//
LOW…s/CapacitorCordova/CapacitorCordova/CapacitorCordova.h1#import <UIKit/UIKit.h>
LOW…s/CapacitorCordova/CapacitorCordova/CapacitorCordova.h21#import <Cordova/CDVScreenOrientationDelegate.h>
LOW…torCordova/CapacitorCordova/Classes/Public/CDVPlugin.m61 // You can listen to more app notifications, see:
LOW…dova/CapacitorCordova/Classes/Public/CDVAvailability.h21
LOW…dova/CapacitorCordova/Classes/Public/CDVAvailability.h41#define __CORDOVA_2_5_0 20500
LOW…dova/CapacitorCordova/Classes/Public/CDVAvailability.h61#define __CORDOVA_4_1_0 40100
LOW…dova/CapacitorCordova/Classes/Public/CDVAvailability.h101
LOW…CapacitorCordova/CapacitorCordova/Classes/Public/CDV.h21#import "CDVPlugin.h"
Hallucination Indicators2 hits · 20 pts
SeverityFileLineSnippet
CRITICALcli/src/cordova.ts204 config.app.extConfig.cordova.accessOrigins.map(async (host): Promise<string> => {
CRITICALcli/src/ios/update.ts556 return `\n s.pod_target_xcconfig = { 'OTHER_LDFLAGS' => '${config.app.extConfig.ios.cordovaLinkerFlags.join(
Excessive Try-Catch Wrapping5 hits · 6 pts
SeverityFileLineSnippet
MEDIUMios/Capacitor/Capacitor/JSExport.swift179 CAPLog.print("Error: plugin method return type \(returnType) is not supported!")
MEDIUMios/Capacitor/Capacitor/JSExport.swift205 CAPLog.print("Error while enumerating files")
MEDIUMios/Capacitor/Capacitor/CapacitorBridge.swift325 CAPLog.print("Error registering plugins: \(error)")
MEDIUMios/Capacitor/Capacitor/CapacitorBridge.swift553 CAPLog.print("Error: Plugin \(plugin.className ?? "") does not respond to method call \(selector).")
MEDIUMios/Capacitor/Capacitor/CapacitorBridge.swift566 CAPLog.print("Error: Cordova Plugin mapping not found")
AI Slop Vocabulary2 hits · 6 pts
SeverityFileLineSnippet
MEDIUM…d/capacitor/src/main/java/com/getcapacitor/Plugin.java569 * @deprecated use {@link #requestAllPermissions(PluginCall, String)} in conjunction with @CapacitorPlugin
MEDIUM…d/capacitor/src/main/java/com/getcapacitor/Plugin.java582 * @deprecated use {@link #requestPermissionForAlias(String, PluginCall, String)} in conjunction with @CapacitorPlug
Self-Referential Comments1 hit · 3 pts
SeverityFileLineSnippet
MEDIUMcli/src/android/add.ts21## This file is automatically generated by Android Studio.
Verbosity Indicators2 hits · 2 pts
SeverityFileLineSnippet
LOWios/Capacitor/Capacitor/CAPInstanceDescriptor.swift24 The purpose of this function is to hide the messy details of parsing the configuration(s) so
LOW…/Capacitor/Capacitor/Plugins/CapacitorUrlRequest.swift26 // We need to check if the JSON is valid before attempting to serialize, as JSONSerialization.data will not thro
Fake / Example Data2 hits · 2 pts
SeverityFileLineSnippet
LOWios/Capacitor/CodableTests/NestedCodableTests.swift18 "fullName": "John Doe"
LOWios/Capacitor/CodableTests/NestedCodableTests.swift29 fullName: "John Doe",
Redundant / Tautological Comments1 hit · 2 pts
SeverityFileLineSnippet
LOWscripts/publish-android.sh20# Check if we need to publish a new native version of the Capacitor Android library