https://github.com/ericrabil/featureflags.swift
Tools for easily defining feature flags for your projects
https://github.com/ericrabil/featureflags.swift
Last synced: 11 months ago
JSON representation
Tools for easily defining feature flags for your projects
- Host: GitHub
- URL: https://github.com/ericrabil/featureflags.swift
- Owner: EricRabil
- License: mit
- Created: 2022-01-28T21:10:05.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2022-04-13T16:20:51.000Z (about 4 years ago)
- Last Synced: 2025-01-06T04:42:00.423Z (over 1 year ago)
- Language: Swift
- Size: 8.79 KB
- Stars: 1
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FeatureFlags.swift
Tools for easily defining feature flags for your projects
- Integrates with NSUserDefaults and automatically refreshes when defaults are changed, no need to restart your program
- Override flags by passing `--(enable|disable)-${flagName}`
- Create flags that are only used in debugging, and know that they will always be false in production builds
```swift
import FeatureFlags
// to enable something off by default, --enable-
// to disable, --disable-
public class _CBFeatureFlags: FlagProvider {
public let suiteName = "com.ericrabil.barcelona"
@FeatureFlag("matrix-audio", defaultValue: false)
public var permitAudioOverMautrix: Bool
@FeatureFlag("internal-diagnostics", defaultValue: isDebugBuild)
public var internalDiagnostics: Bool
@FeatureFlag("xcode", domain: .debugging, defaultValue: false)
public var runningFromXcode: Bool
@FeatureFlag("any-country", defaultValue: false)
public var ignoresSameCountryCodeAssertion: Bool
@FeatureFlag("scratchbox", domain: .debugging, defaultValue: false)
public var scratchbox: Bool
@FeatureFlag("exit-after-scratchbox", domain: .debugging, defaultValue: true)
public var exitAfterScratchbox: Bool
@FeatureFlag("contact-fuzz-enumerator", defaultValue: true)
public var contactFuzzEnumerator: Bool
@FeatureFlag("sms-read-buffer", defaultValue: true)
public var useSMSReadBuffer: Bool
@FeatureFlag("drop-spam-messages", defaultValue: true)
public var dropSpamMessages: Bool
@FeatureFlag("log-sensitive-payloads", defaultValue: isDebugBuild)
public var logSensitivePayloads: Bool
}
```