parse int args
This commit is contained in:
parent
c1ebcfcd61
commit
3abdc8b6c1
1 changed files with 15 additions and 3 deletions
|
|
@ -1,3 +1,5 @@
|
||||||
|
import "dart:convert";
|
||||||
|
|
||||||
import "package:args/args.dart";
|
import "package:args/args.dart";
|
||||||
import "package:nexusbot/models/settings.dart";
|
import "package:nexusbot/models/settings.dart";
|
||||||
import "package:riverpod/riverpod.dart";
|
import "package:riverpod/riverpod.dart";
|
||||||
|
|
@ -6,9 +8,19 @@ class SettingsController extends Notifier<Settings?> {
|
||||||
@override
|
@override
|
||||||
Settings? build() => null;
|
Settings? build() => null;
|
||||||
|
|
||||||
void set(ArgResults args) => state = Settings.fromJson(<String, dynamic>{
|
void set(ArgResults args) {
|
||||||
for (final opt in args.options) opt: args.option(opt),
|
dynamic tryJson(String value) {
|
||||||
|
try {
|
||||||
|
return json.decode(value);
|
||||||
|
} catch (_) {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
state = Settings.fromJson(<String, dynamic>{
|
||||||
|
for (final opt in args.options) opt: tryJson(args.option(opt) ?? "null"),
|
||||||
});
|
});
|
||||||
|
}
|
||||||
|
|
||||||
static final provider = NotifierProvider<SettingsController, Settings?>(
|
static final provider = NotifierProvider<SettingsController, Settings?>(
|
||||||
SettingsController.new,
|
SettingsController.new,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue