commands/spm_utils library

SPM (Swift Package Manager) utilities for nitrogen CLI.

Provides helpers for detecting, validating, and managing SPM configuration in Flutter plugins. Used by init, link, doctor, and migrate commands.

Classes

PackageSwiftValidation
Validation result for a Package.swift file.
SpmSourcesValidation
Verifies SPM Sources directory structure is correct.
SpmStatus
Result of SPM detection for a plugin.

Functions

createSpmSourcesStructure(String baseDir, String platform, String className, String pluginName) → void
Creates the SPM Sources directory structure for a platform.
detectSpmStatus(String baseDir) SpmStatus
Detects SPM and CocoaPods status for a plugin directory.
getSpmSourcesDirs(String packageSwiftPath) List<String>
Gets the Sources directories from a Package.swift.
isNestedSpmLayout(String packageSwiftPath) bool
Checks if a Package.swift uses the Flutter 3.41+ nested layout.
isNestedSpmPath(String packageSwiftPath) bool
Returns true if the given packageSwiftPath is in a nested Flutter 3.41+ layout (ios/<name>/Package.swift) rather than the flat ios/Package.swift.
toPascalCase(String name) String
Converts a plugin name to PascalCase class name.
validatePackageSwift(String path, String platform) PackageSwiftValidation
Validates a Package.swift file for correct Nitro configuration.
validateSpmSourcesStructure(String baseDir, String platform, String className) SpmSourcesValidation
Validates the SPM Sources directory structure for a platform.