[cleanup] Linkfier.linkify can be an async static function

R=wolfi@chromium.org

Bug: None
Change-Id: I038606017afc6c9000e785fdfcddf79018bec6f6
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2974929
Reviewed-by: Wolfgang Beyer <wolfi@chromium.org>
Commit-Queue: Simon Zünd <szuend@chromium.org>
This commit is contained in:
Simon Zünd
2021-06-22 04:52:52 +00:00
committed by Devtools-frontend LUCI CQ
parent db358a8586
commit 9ceac1600f
+5 -7
View File
@@ -2,21 +2,19 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/* eslint-disable rulesdir/no_underscored_properties */
export abstract class Linkifier {
abstract linkify(object: Object, options?: Options): Node;
static linkify(object: Object|null, options?: Options): Promise<Node> {
static async linkify(object: Object|null, options?: Options): Promise<Node> {
if (!object) {
return Promise.reject(new Error('Can\'t linkify ' + object));
throw new Error('Can\'t linkify ' + object);
}
const linkifierRegistration = getApplicableRegisteredlinkifiers(object)[0];
if (!linkifierRegistration) {
return Promise.reject(new Error('No linkifiers registered for object ' + object));
throw new Error('No linkifiers registered for object ' + object);
}
return linkifierRegistration.loadLinkifier().then(
linkifier => /** @type {!Linkifier} */ (linkifier).linkify(/** @type {!Object} */ (object), options));
const linkifier = await linkifierRegistration.loadLinkifier();
return linkifier.linkify(object, options);
}
}
export interface Options {