blob: 6130dc7c492f64b54d8692e06afa626422e5b527 [file] [log] [blame]
// Copyright 2020 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'sl4f_client.dart';
/// Allows controlling a Modular session and its components.
class Component {
final Sl4f _sl4f;
Component(this._sl4f);
Future<List<String>> list() async {
final result = await _sl4f.request('component_facade.List');
return result.cast<String>();
}
Future<bool> search(String name) async {
final result =
await _sl4f.request('component_facade.Search', {'name': name});
return result == 'Success';
}
Future<dynamic> launch(String url, [List<String> args]) async {
var packageUrl = url;
if (!url.startsWith('fuchsia-pkg')) {
packageUrl = 'fuchsia-pkg://fuchsia.com/$url#meta/$url.cmx';
}
if (args != null && args.isNotEmpty) {
return await _sl4f.request(
'component_facade.Launch', {'url': packageUrl, 'arguments': args});
}
return await _sl4f.request('component_facade.Launch', {'url': packageUrl});
}
}