a32d37ef84
This will contain the code for running the DTD server. When this is fully funcitonal VSCode will be responsible for running the, and letting our other tools(i.e. DevTools) know which address it is running at. Change-Id: Ia4cc9553f000a5e765f604541f4846b107d4d00c Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/338501 Commit-Queue: Dan Chevalier <danchevalier@google.com> Reviewed-by: Devon Carew <devoncarew@google.com> Reviewed-by: Ben Konyi <bkonyi@google.com>
40 lines
1.2 KiB
Dart
40 lines
1.2 KiB
Dart
// Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
|
|
import 'dart:io';
|
|
|
|
import 'package:shelf/shelf.dart';
|
|
import 'package:shelf/shelf_io.dart';
|
|
import 'package:shelf_router/shelf_router.dart';
|
|
|
|
// Configure routes.
|
|
final _router = Router()
|
|
..get('/', _rootHandler)
|
|
..get('/echo/<message>', _echoHandler);
|
|
|
|
Response _rootHandler(Request req) {
|
|
return Response.ok('Hello, World!\n');
|
|
}
|
|
|
|
Response _echoHandler(Request request) {
|
|
final message = request.params['message'];
|
|
return Response.ok('$message\n');
|
|
}
|
|
|
|
void main(List<String> args) async {
|
|
// Use any available host or container IP (usually `0.0.0.0`).
|
|
final ip = InternetAddress.anyIPv4;
|
|
|
|
// Configure a pipeline that logs requests.
|
|
final handler =
|
|
Pipeline().addMiddleware(logRequests()).addHandler(_router.call);
|
|
|
|
// For running in containers, we respect the PORT environment variable.
|
|
final port = int.parse(Platform.environment['PORT'] ?? '8080');
|
|
final server = await serve(handler, ip, port);
|
|
print(
|
|
'The Dart Tooling Daemon is listening on ${server.address.host}:${server.port}',
|
|
);
|
|
}
|