Files
Ergun Erdogmus 5efc7e9be2 [Eslint] Add a custom rule for enforcing as const in UIStrings
We needed to update other l10n related eslint rules and
`collect-strings` script to look for `as const` definitions as well.

Fixed: 397381592
Change-Id: Ia3eb9a97fa1595093fb332525f996039f7546d8e
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6287325
Commit-Queue: Ergün Erdoğmuş <ergunsh@chromium.org>
Reviewed-by: Nikolay Vitkov <nvitkov@chromium.org>
Reviewed-by: Mathias Bynens <mathias@chromium.org>
Reviewed-by: Simon Zünd <szuend@chromium.org>
2025-02-21 04:46:52 -08:00

83 lines
2.9 KiB
TypeScript

// Copyright 2018 The Chromium 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 '../shell/shell.js';
import '../../panels/mobile_throttling/mobile_throttling-meta.js';
import '../../panels/js_timeline/js_timeline-meta.js';
import '../../panels/network/network-meta.js';
import * as Common from '../../core/common/common.js';
import * as i18n from '../../core/i18n/i18n.js';
import * as Root from '../../core/root/root.js';
import type * as Sources from '../../panels/sources/sources.js';
import * as UI from '../../ui/legacy/legacy.js';
import * as Main from '../main/main.js';
import {NodeConnectionsPanel} from './NodeConnectionsPanel.js'; // eslint-disable-line rulesdir/es-modules-import
import {NodeMainImpl} from './NodeMain.js'; // eslint-disable-line rulesdir/es-modules-import
const UIStrings = {
/**
*@description Text that refers to the network connection
*/
connection: 'Connection',
/**
*@description A tag of Node.js Connection Panel that can be searched in the command menu
*/
node: 'node',
/**
*@description Command for showing the Connection tool
*/
showConnection: 'Show Connection',
/**
*@description Title of the 'Node' tool in the Network Navigator View, which is part of the Sources tool
*/
networkTitle: 'Node',
/**
*@description Command for showing the 'Node' tool in the Network Navigator View, which is part of the Sources tool
*/
showNode: 'Show Node',
} as const;
const str_ = i18n.i18n.registerUIStrings('entrypoints/node_app/node_app.ts', UIStrings);
const i18nLazyString = i18n.i18n.getLazilyComputedLocalizedString.bind(undefined, str_);
let loadedSourcesModule: (typeof Sources|undefined);
async function loadSourcesModule(): Promise<typeof Sources> {
if (!loadedSourcesModule) {
loadedSourcesModule = await import('../../panels/sources/sources.js');
}
return loadedSourcesModule;
}
UI.ViewManager.registerViewExtension({
location: UI.ViewManager.ViewLocationValues.PANEL,
id: 'node-connection',
title: i18nLazyString(UIStrings.connection),
commandPrompt: i18nLazyString(UIStrings.showConnection),
order: 0,
async loadView() {
return new NodeConnectionsPanel();
},
tags: [i18nLazyString(UIStrings.node)],
});
UI.ViewManager.registerViewExtension({
location: UI.ViewManager.ViewLocationValues.NAVIGATOR_VIEW,
id: 'navigator-network',
title: i18nLazyString(UIStrings.networkTitle),
commandPrompt: i18nLazyString(UIStrings.showNode),
order: 2,
persistence: UI.ViewManager.ViewPersistence.PERMANENT,
async loadView() {
const Sources = await loadSourcesModule();
return Sources.SourcesNavigator.NetworkNavigatorView.instance();
},
});
// @ts-expect-error Exposed for legacy layout tests
self.runtime = Root.Runtime.Runtime.instance({forceNew: true});
Common.Runnable.registerEarlyInitializationRunnable(NodeMainImpl.instance);
new Main.MainImpl.MainImpl();