https://github.com/0xleif/flitelaterpoc
FLite and Later POC
https://github.com/0xleif/flitelaterpoc
flite later swift
Last synced: about 2 months ago
JSON representation
FLite and Later POC
- Host: GitHub
- URL: https://github.com/0xleif/flitelaterpoc
- Owner: 0xLeif
- License: mit
- Created: 2020-10-02T22:18:02.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2020-10-02T23:07:58.000Z (over 4 years ago)
- Last Synced: 2025-02-10T23:41:53.055Z (3 months ago)
- Topics: flite, later, swift
- Language: Swift
- Homepage:
- Size: 23.9 MB
- Stars: 2
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# [FLite](https://github.com/0xLeif/FLite) and [Later](https://github.com/0xLeif/Later) POC
## FLiteStore
```swift
class FLiteStore: ObservableObject {
public var memory = FLite(loggerLabel: "memory-FLITE")
public var persist = FLite(configuration: .file("\(FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first?.path ?? "")/default.sqlite"), loggerLabel: "persisted-FLITE")
}
```## FLiteLaterPOCApp
```swift
@main
struct FLiteLaterPOCApp: App {
let store = FLiteStore()var body: some Scene {
WindowGroup {
NavigationView {
ContentView()
.environmentObject(store)
}
.onAppear {
print("Starting to prepare...")
try? store.persist.prepare(migration: Planet.self).wait()
print("Prepared Migrations")
}
}
}
}
```## Later Usage
```swift
.navigationBarItems(
leading: Button("Delete All") {
Later.whenAllSucceed(
items.map {
store.persist.delete(model: $0)
}
)
.flatMap { _ in store.persist.all(model: Planet.self) }
.whenSuccess { items = $0 }
},
trailing: Button("100") {
Later.whenAllSucceed(
(0 ... 99).map { _ in
store.persist.add(model: Planet.random)
}
)
.flatMap { _ in store.persist.all(model: Planet.self) }
.whenSuccess { items = $0 }
}
)
```