falcor_dart 0.0.2 copy "falcor_dart: ^0.0.2" to clipboard
falcor_dart: ^0.0.2 copied to clipboard

Dart 1 only

A port of Falcor server to Dart with optional shelf middleware.

example/falcor_dart.dart

library falcor_dart.example;

import 'package:shelf/shelf.dart' as shelf;
import 'package:shelf/shelf_io.dart' as io;

import 'package:falcor_dart/router.dart';
import 'package:falcor_dart/shelf.dart';

/// Example using shelf binding
main() async {
  final todoService = new TodosService();

  final falcorHandler = await createFalcorHandler((_) {
    return new Router([
      route('todos.name', get: (_) async {
        var todoList = await todoService.getTodoList();

        return {
          'path': ['todos', 'name'],
          'value': todoList.map((todo) => todo['name']),
        };
      }),
      route('todos.length', get: (_) async {
        var todoList = await todoService.getTodoList();

        return {
          'path': ['todos', 'length'],
          'value': todoList.length,
        };
      })
    ]);
  });

  var handler = const shelf.Pipeline()
      .addMiddleware(shelf.logRequests())
      .addHandler(falcorHandler);

  var server = await io.serve(handler, 'localhost', 8080);

  print('Serving at http://${server.address.host}:${server.port}');
}

class TodosService {
  getTodoList() async {
    return [
      {'name': 'Create Router'},
      {'name': 'Create request handler'},
      {'name': 'Send requests'},
    ];
  }
}
0
likes
35
pub points
0%
popularity

Publisher

unverified uploader

A port of Falcor server to Dart with optional shelf middleware.

Repository (GitHub)
View/report issues

License

Apache-2.0 (LICENSE)

Dependencies

shelf

More

Packages that depend on falcor_dart