SqlFunction.fromJson constructor
SqlFunction.fromJson(
- Object? json_
Returns a new instance from a JSON value. May throw if the value does not have the expected structure.
Implementation
factory SqlFunction.fromJson(Object? json_) {
final json = json_ is Map
? _spec.fields.map((f) => json_[f.label]).toList(growable: false)
: json_;
return switch (json) {
[
final name,
final args,
final over,
final distinct,
final special,
final orderBy
] ||
(
final name,
final args,
final over,
final distinct,
final special,
final orderBy
) =>
SqlFunction(
name: (name! as Iterable).map(Ident.fromJson).toList(),
args: (args! as Iterable).map(FunctionArg.fromJson).toList(),
over:
Option.fromJson(over, (some) => WindowType.fromJson(some)).value,
distinct: distinct! as bool,
special: special! as bool,
orderBy: (orderBy! as Iterable).map(OrderByExpr.fromJson).toList(),
),
_ => throw Exception('Invalid JSON $json_')
};
}