From 2010f4eba18a874990e5631fbc0b2ad9c71e34dd Mon Sep 17 00:00:00 2001 From: Spencer Date: Tue, 30 Mar 2021 15:08:12 -0700 Subject: [PATCH] [cli-dev-mode/optimizer] omit pageLoadAssetSizeLimit from cache (#95826) Co-authored-by: spalger --- .../kbn-cli-dev-mode/src/cli_dev_mode.test.ts | 1 + packages/kbn-cli-dev-mode/src/cli_dev_mode.ts | 2 ++ packages/kbn-cli-dev-mode/src/optimizer.test.ts | 1 + packages/kbn-cli-dev-mode/src/optimizer.ts | 2 ++ packages/kbn-config/src/env.ts | 1 + .../kbn-optimizer/src/common/bundle.test.ts | 1 - packages/kbn-optimizer/src/common/bundle.ts | 3 ++- packages/kbn-optimizer/src/common/index.ts | 1 + .../kbn-optimizer/src/common/obj_helpers.ts | 17 +++++++++++++++++ .../src/optimizer/optimizer_config.ts | 11 +---------- src/cli/serve/serve.js | 1 + 11 files changed, 29 insertions(+), 12 deletions(-) create mode 100644 packages/kbn-optimizer/src/common/obj_helpers.ts diff --git a/packages/kbn-cli-dev-mode/src/cli_dev_mode.test.ts b/packages/kbn-cli-dev-mode/src/cli_dev_mode.test.ts index d5bafe7280bd..7b45a2639c66 100644 --- a/packages/kbn-cli-dev-mode/src/cli_dev_mode.test.ts +++ b/packages/kbn-cli-dev-mode/src/cli_dev_mode.test.ts @@ -135,6 +135,7 @@ it('passes correct args to sub-classes', () => { "repoRoot": , "runExamples": false, "silent": false, + "verbose": false, "watch": true, }, ], diff --git a/packages/kbn-cli-dev-mode/src/cli_dev_mode.ts b/packages/kbn-cli-dev-mode/src/cli_dev_mode.ts index 94dbcb9654e8..7e730d2cb702 100644 --- a/packages/kbn-cli-dev-mode/src/cli_dev_mode.ts +++ b/packages/kbn-cli-dev-mode/src/cli_dev_mode.ts @@ -37,6 +37,7 @@ export type SomeCliArgs = Pick< CliArgs, | 'quiet' | 'silent' + | 'verbose' | 'disableOptimizer' | 'watch' | 'oss' @@ -148,6 +149,7 @@ export class CliDevMode { dist: cliArgs.dist, quiet: !!cliArgs.quiet, silent: !!cliArgs.silent, + verbose: !!cliArgs.verbose, watch: cliArgs.watch, }); } diff --git a/packages/kbn-cli-dev-mode/src/optimizer.test.ts b/packages/kbn-cli-dev-mode/src/optimizer.test.ts index c270a0032989..e3bfb2eb0bb9 100644 --- a/packages/kbn-cli-dev-mode/src/optimizer.test.ts +++ b/packages/kbn-cli-dev-mode/src/optimizer.test.ts @@ -46,6 +46,7 @@ const defaultOptions: Options = { pluginScanDirs: ['/some-scan-path'], quiet: true, silent: true, + verbose: false, repoRoot: '/app', runExamples: true, watch: true, diff --git a/packages/kbn-cli-dev-mode/src/optimizer.ts b/packages/kbn-cli-dev-mode/src/optimizer.ts index 5e2f16fcf7da..750b61140e92 100644 --- a/packages/kbn-cli-dev-mode/src/optimizer.ts +++ b/packages/kbn-cli-dev-mode/src/optimizer.ts @@ -25,6 +25,7 @@ export interface Options { repoRoot: string; quiet: boolean; silent: boolean; + verbose: boolean; watch: boolean; cache: boolean; dist: boolean; @@ -80,6 +81,7 @@ export class Optimizer { const { flags: levelFlags } = parseLogLevel( pickLevelFromFlags({ + verbose: options.verbose, quiet: options.quiet, silent: options.silent, }) diff --git a/packages/kbn-config/src/env.ts b/packages/kbn-config/src/env.ts index c4845ab429c5..053bb93ce158 100644 --- a/packages/kbn-config/src/env.ts +++ b/packages/kbn-config/src/env.ts @@ -24,6 +24,7 @@ export interface CliArgs { /** @deprecated */ quiet?: boolean; silent?: boolean; + verbose?: boolean; watch: boolean; basePath: boolean; oss: boolean; diff --git a/packages/kbn-optimizer/src/common/bundle.test.ts b/packages/kbn-optimizer/src/common/bundle.test.ts index ff9aa6fd9062..9dbaae9f36f2 100644 --- a/packages/kbn-optimizer/src/common/bundle.test.ts +++ b/packages/kbn-optimizer/src/common/bundle.test.ts @@ -42,7 +42,6 @@ it('creates cache keys', () => { "id": "bar", "manifestPath": undefined, "outputDir": "/foo/bar/target", - "pageLoadAssetSizeLimit": undefined, "publicDirNames": Array [ "public", ], diff --git a/packages/kbn-optimizer/src/common/bundle.ts b/packages/kbn-optimizer/src/common/bundle.ts index 64b44de0dd1b..08946deec0b4 100644 --- a/packages/kbn-optimizer/src/common/bundle.ts +++ b/packages/kbn-optimizer/src/common/bundle.ts @@ -11,6 +11,7 @@ import Fs from 'fs'; import { BundleCache } from './bundle_cache'; import { UnknownVals } from './ts_helpers'; +import { omit } from './obj_helpers'; import { includes, ascending, entriesToObject } from './array_helpers'; const VALID_BUNDLE_TYPES = ['plugin' as const, 'entry' as const]; @@ -90,7 +91,7 @@ export class Bundle { */ createCacheKey(files: string[], mtimes: Map): unknown { return { - spec: this.toSpec(), + spec: omit(this.toSpec(), ['pageLoadAssetSizeLimit']), mtimes: entriesToObject( files.map((p) => [p, mtimes.get(p)] as const).sort(ascending((e) => e[0])) ), diff --git a/packages/kbn-optimizer/src/common/index.ts b/packages/kbn-optimizer/src/common/index.ts index 0f2c6a351760..7914d74fa929 100644 --- a/packages/kbn-optimizer/src/common/index.ts +++ b/packages/kbn-optimizer/src/common/index.ts @@ -18,3 +18,4 @@ export * from './array_helpers'; export * from './event_stream_helpers'; export * from './parse_path'; export * from './theme_tags'; +export * from './obj_helpers'; diff --git a/packages/kbn-optimizer/src/common/obj_helpers.ts b/packages/kbn-optimizer/src/common/obj_helpers.ts new file mode 100644 index 000000000000..f238eb22e93a --- /dev/null +++ b/packages/kbn-optimizer/src/common/obj_helpers.ts @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License + * 2.0 and the Server Side Public License, v 1; you may not use this file except + * in compliance with, at your election, the Elastic License 2.0 or the Server + * Side Public License, v 1. + */ + +export function omit(obj: T, keys: K[]): Omit { + const result: any = {}; + for (const [key, value] of Object.entries(obj) as any) { + if (!keys.includes(key)) { + result[key] = value; + } + } + return result as Omit; +} diff --git a/packages/kbn-optimizer/src/optimizer/optimizer_config.ts b/packages/kbn-optimizer/src/optimizer/optimizer_config.ts index 9110b6db27e9..2dbe48c15483 100644 --- a/packages/kbn-optimizer/src/optimizer/optimizer_config.ts +++ b/packages/kbn-optimizer/src/optimizer/optimizer_config.ts @@ -17,6 +17,7 @@ import { ThemeTag, ThemeTags, parseThemeTags, + omit, } from '../common'; import { findKibanaPlatformPlugins, KibanaPlatformPlugin } from './kibana_platform_plugins'; @@ -40,16 +41,6 @@ function pickMaxWorkerCount(dist: boolean) { return Math.max(maxWorkers, 2); } -function omit(obj: T, keys: K[]): Omit { - const result: any = {}; - for (const [key, value] of Object.entries(obj) as any) { - if (!keys.includes(key)) { - result[key] = value; - } - } - return result as Omit; -} - interface Options { /** absolute path to root of the repo/build */ repoRoot: string; diff --git a/src/cli/serve/serve.js b/src/cli/serve/serve.js index 86b4ac53841f..a494e4538e79 100644 --- a/src/cli/serve/serve.js +++ b/src/cli/serve/serve.js @@ -228,6 +228,7 @@ export default function (program) { // no longer supported quiet: !!opts.quiet, silent: !!opts.silent, + verbose: !!opts.verbose, watch: !!opts.watch, runExamples: !!opts.runExamples, // We want to run without base path when the `--run-examples` flag is given so that we can use local