Skip to content

Commit d1f5a81

Browse files
committed
Reorganized package, put example it it's own directory, etc
1 parent bf1e804 commit d1f5a81

22 files changed

+96
-154
lines changed

.gitignore

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,3 @@
1-
packages
2-
/*/build/
3-
.pub/
4-
pubspec.lock
5-
6-
# Files generated by dart tools
71
.dart_tool
8-
doc/
2+
.packages
3+
pubspec.lock
File renamed without changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
<div>Hello World</div>

example/pubspec.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
name: webdev_example_app
2+
description: A web app example for webdev CLI.
3+
4+
environment:
5+
sdk: ">=2.0.0-dev.32.0 <2.0.0"
6+
7+
dependencies:
8+
angular: ^5.0.0-alpha+3
9+
10+
dev_dependencies:
11+
build_runner: ^0.8.0
12+
build_web_compilers: ^0.3.4

webdev/example/web/index.html renamed to example/web/index.html

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,7 @@
44
<title>webdev example</title>
55
<meta charset="utf-8">
66
<meta name="viewport" content="width=device-width, initial-scale=1">
7-
<script defer src="main.dart" type="application/dart"></script>
8-
<script defer src="packages/browser/dart.js"></script>
7+
<script defer src="main.dart.js"></script>
98
<link rel="stylesheet" href="styles.css">
109
</head>
1110
<body>

example/web/main.dart

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import 'package:angular/experimental.dart';
2+
3+
// ignore: uri_has_not_been_generated
4+
import 'package:webdev_example_app/app_component.template.dart' as ng;
5+
6+
main() {
7+
// ignore: argument_type_not_assignable
8+
bootstrapFactory(ng.AppComponentNgFactory);
9+
}
File renamed without changes.

webdev/bin/webdev.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
import 'dart:async';
22

3-
import 'package:webdev/webdev.dart';
3+
import 'package:webdev/src/implementation.dart';
44

5-
Future main(List<String> args) async {
6-
await webdevCommandRunner().run(args);
7-
}
5+
Future main(List<String> args) => run(args);

webdev/example/lib/src/hello_world/hello_world.html

Lines changed: 0 additions & 1 deletion
This file was deleted.

webdev/example/pubspec.yaml

Lines changed: 0 additions & 25 deletions
This file was deleted.

webdev/example/web/main.dart

Lines changed: 0 additions & 7 deletions
This file was deleted.

webdev/lib/src/command/build_command.dart

Lines changed: 0 additions & 23 deletions
This file was deleted.

webdev/lib/src/command/build_runner_command_base.dart

Lines changed: 0 additions & 31 deletions
This file was deleted.

webdev/lib/src/command/serve_command.dart

Lines changed: 0 additions & 32 deletions
This file was deleted.

webdev/lib/src/implementation.dart

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
import 'dart:async';
2+
import 'dart:io';
3+
import 'dart:isolate';
4+
5+
Future run(List<String> arguments) async {
6+
var exitPort = new ReceivePort();
7+
await Isolate.spawnUri(await _buildRunnerScript, arguments, null,
8+
onExit: exitPort.sendPort, automaticPackageResolution: true);
9+
await exitPort.first;
10+
}
11+
12+
Future<Uri> get _buildRunnerScript async {
13+
var dataUri = new Uri.dataFromString(_bootstrapScript);
14+
15+
var messagePort = new ReceivePort();
16+
var exitPort = new ReceivePort();
17+
var errorPort = new ReceivePort();
18+
19+
await Isolate.spawnUri(dataUri, [], messagePort.sendPort,
20+
onExit: exitPort.sendPort,
21+
onError: errorPort.sendPort,
22+
errorsAreFatal: true,
23+
packageConfig: new Uri.file('.packages'));
24+
25+
var allErrorsFuture = errorPort.forEach((error) {
26+
var errorList = error as List;
27+
var message = errorList[0] as String;
28+
var stack = new StackTrace.fromString(errorList[1] as String);
29+
30+
stderr.writeln(message);
31+
stderr.writeln(stack);
32+
});
33+
34+
var items = await Future.wait([
35+
messagePort.toList(),
36+
allErrorsFuture,
37+
exitPort.first.whenComplete(() {
38+
messagePort.close();
39+
errorPort.close();
40+
})
41+
]);
42+
43+
var messages = items[0] as List;
44+
if (messages.isEmpty) {
45+
throw new StateError('An error occurred while running booting.');
46+
}
47+
48+
assert(messages.length == 1);
49+
return new Uri.file(messages.single as String);
50+
}
51+
52+
const _bootstrapScript = r'''
53+
import 'dart:io';
54+
import 'dart:isolate';
55+
56+
import 'package:build_runner/build_script_generate.dart';
57+
import 'package:path/path.dart' as p;
58+
59+
void main(List<String> args, [SendPort sendPort]) async {
60+
var buildScript = await generateBuildScript();
61+
var scriptFile = new File(scriptLocation)..createSync(recursive: true);
62+
scriptFile.writeAsStringSync(buildScript);
63+
sendPort.send(p.absolute(scriptLocation));
64+
}
65+
''';

webdev/lib/src/webdev_command_runner.dart

Lines changed: 0 additions & 10 deletions
This file was deleted.

webdev/lib/webdev.dart

Lines changed: 0 additions & 1 deletion
This file was deleted.

webdev/pubspec.yaml

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,10 @@ name: webdev
22
description: A CLI for Dart web development.
33
author: Dart Team <misc@dartlang.org>
44
homepage: https://github.com/dart-lang/webdev
5+
version: 0.1.0-dev
56

67
environment:
7-
sdk: ">=2.0.0-dev.3.0 <2.0.0"
8+
sdk: ">=2.0.0-dev.32.0 <2.0.0"
89

9-
dependencies:
10-
args: ^1.2.0
11-
build_runner:
12-
git:
13-
url: https://github.com/dart-lang/build.git
14-
path: build_runner
15-
build_web_compilers: ^0.1.1
16-
17-
dev_dependencies:
18-
test: "^0.12.0"
10+
executables:
11+
webdev:

0 commit comments

Comments
 (0)