1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- 'use strict';
- Object.defineProperty(exports, '__esModule', {
- value: true
- });
- exports.getSortedUsageRows = exports.filterInteractivePlugins = void 0;
- /**
- * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
- *
- * This source code is licensed under the MIT license found in the
- * LICENSE file in the root directory of this source tree.
- */
- const filterInteractivePlugins = (watchPlugins, globalConfig) => {
- const usageInfos = watchPlugins.map(
- p => p.getUsageInfo && p.getUsageInfo(globalConfig)
- );
- return watchPlugins.filter((_plugin, i) => {
- const usageInfo = usageInfos[i];
- if (usageInfo) {
- const {key} = usageInfo;
- return !usageInfos.slice(i + 1).some(u => !!u && key === u.key);
- }
- return false;
- });
- };
- exports.filterInteractivePlugins = filterInteractivePlugins;
- function notEmpty(value) {
- return value != null;
- }
- const getSortedUsageRows = (watchPlugins, globalConfig) =>
- filterInteractivePlugins(watchPlugins, globalConfig)
- .sort((a, b) => {
- if (a.isInternal && b.isInternal) {
- // internal plugins in the order we specify them
- return 0;
- }
- if (a.isInternal !== b.isInternal) {
- // external plugins afterwards
- return a.isInternal ? -1 : 1;
- }
- const usageInfoA = a.getUsageInfo && a.getUsageInfo(globalConfig);
- const usageInfoB = b.getUsageInfo && b.getUsageInfo(globalConfig);
- if (usageInfoA && usageInfoB) {
- // external plugins in alphabetical order
- return usageInfoA.key.localeCompare(usageInfoB.key);
- }
- return 0;
- })
- .map(p => p.getUsageInfo && p.getUsageInfo(globalConfig))
- .filter(notEmpty);
- exports.getSortedUsageRows = getSortedUsageRows;
|