asis 1.1.0 copy "asis: ^1.1.0" to clipboard
asis: ^1.1.0 copied to clipboard

outdated

A small utility library to handle JSON encoded http responses easily, transforms the response into an internal type of data and adds bunch of functionality to handle data manipulation in the same future chain.

example/main.dart

import 'package:http/http.dart' as http;
import 'package:asis/asis.dart';

class Task {
  final int userId;
  final int id;
  final String title;
  final bool completed;

  // Task({this.userId, this.id, this.title, this.completed});

  Task.fromJson(Map<String, dynamic> e)
      : userId = e['userId'],
        id = e['id'],
        title = e['title'],
        completed = e['completed'];

  /// Static method to pass the handler directly to the input.
  static Task handler(Map<String, dynamic> e) {
    return Task.fromJson(e);
  }
}

/// Resource url.
var url = 'http://jsonplaceholder.typicode.com/todos';

/// Returns a task object.
Future<Task> task(int id) => http.get('$url/$id').as(Task.handler);

/// Returns a list of tasks.
Future<List<Task>> get tasks => http.get(url).asList(Task.handler);

void main() async {
  /// Get the third task and print the title.
  task(3)
      .then((e) => e.title)
      .then((e) => 'Title of the third task: $e')
      .then(print);

  /// Print the title of the top 3 task.
  tasks.take(3).each((e) => print(e.title));

  /// Count of the completed tasks.
  tasks
      .where((e) => e.completed)
      .fold(0, (p, _) => p + 1)
      .then((e) => 'Number of the completed tasks: $e')
      .then(print);
}
2
likes
0
pub points
0%
popularity

Publisher

unverified uploader

A small utility library to handle JSON encoded http responses easily, transforms the response into an internal type of data and adds bunch of functionality to handle data manipulation in the same future chain.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, http

More

Packages that depend on asis