//
Source
Future<int> start() async { prepare(); var replacements = { "PACKAGE_NAME": packageName, "LIBRARY_NAME": libraryName, "SINK_TYPE": requestSinkType, "PORT": port, "ADDRESS": address, "IPV6_ONLY": ipv6Only, "NUMBER_OF_ISOLATES": numberOfIsolates, "CONFIGURATION_FILE_PATH": configurationFile.path, "SSL_KEY_PATH": keyPath, "SSL_CERTIFICATE_PATH": certificatePath }; displayInfo("Starting application '$packageName/$libraryName'"); displayProgress("Sink Type: $requestSinkType"); displayProgress("Config: ${configurationFile?.path}"); displayProgress("Port: $port"); var generatedStartScript = createScriptSource(replacements); if (monitorStartup) { return startWithMonitor(generatedStartScript); } else { var dataUri = Uri.parse( "data:application/dart;charset=utf-8,${Uri.encodeComponent(generatedStartScript)}"); var completer = new Completer<int>(); var receivePort = new ReceivePort(); receivePort.listen((_) { completer.complete(0); }); await Isolate.spawnUri(dataUri, [], null, onExit: receivePort.sendPort, packageConfig: fileInProjectDirectory(".packages").uri); return completer.future; } }