* chore(NA): upgrade oss to lodash4 chore(NA): migrate cli, cli_plugin, cli_keystore, dev, test_utils and apm src script to lodash4 chore(NA): missing file for cli plugin chore(NA): add src core chore(NA): es archiver and fixtures chore(NA): try to fix functional test failure chore(NA): migrate src/legacy entirely to lodash4 except src/legacy/core_plugins chore(NA): move legacy core plugins to lodash4 chore(NA): upgrade optimize to lodash4 chore(NA): upgrade to lodash4 on advanced_settings, charts, console and dashboard chore(NA): migrate to lodash4 on dev_tools, discover, embeddable, es_ui)shared, expressions, home plugins chore(NA): upgrade data plugin to lodash4 chore(NA): upgrade usage_collection, ui_actions, tile_map, telemtry, share, saved_objects, saved_objects_management, region_map and navigation to lodash4 chore(NA): missing data upgrades to lodash4 Revert "chore(NA): upgrade usage_collection, ui_actions, tile_map, telemtry, share, saved_objects, saved_objects_management, region_map and navigation to lodash4" This reverts commit 137055c5fed2fc52bb26547e0bc1ad2e3d4fe309. Revert "Revert "chore(NA): upgrade usage_collection, ui_actions, tile_map, telemtry, share, saved_objects, saved_objects_management, region_map and navigation to lodash4"" This reverts commit f7e73688782998513d9fb6d7e8f0765e9beb28d1. Revert "chore(NA): missing data upgrades to lodash4" This reverts commit 92b85bf947a89bfc70cc4052738a6b2128ffb076. Revert "chore(NA): upgrade data plugin to lodash4" This reverts commit 88fdb075ee1e26c4ac979b6681d8a2b002df74c6. chore(NA): upgrade idx_pattern_mgt, input_control_vis, inspector, kbn_legacy, kbn_react, kbn_usage_collections, kbn_utils, management and maps_legacy to lodash4 chore(NA): map src plugin data to lodash3 chore(NA): missing lodash.clonedeep dep chore(NA): change packages kbn-config-schema deps chore(NA): update renovate config chore(NA): upgrade vis_type plugins to lodash4 chore(NA): move vis_type_vislib to lodash3 chore(NA): update visualizations and visualize to lodash4 chore(NA): remove lodash 3 types from src and move test to lodash4 chore(NA): move home, usage_collection and management to lodash 3 Revert "chore(NA): move home, usage_collection and management to lodash 3" This reverts commit f86e8585f02d21550746569af54215b076a79a3d. chore(NA): move kibana_legacy, saved_objects saved_objects_management into lodash3 chore(NA): update x-pack test to mock lodash4 Revert "chore(NA): move kibana_legacy, saved_objects saved_objects_management into lodash3" This reverts commit 2d10fe450533e1b36db21d99cfae3ce996a244e0. * chore(NA): move x-pack and packages to lodash 4 * chore(NA): remove mention to lodash from main package.json * chore(NA): remove helper alias for lodash4 and make it the default lodash * chore(NA): fix last failing types in the repo * chore(NA): fix public api * chore(NA): fix types for agg_row.tsx * chore(NA): fix increment of optimizer modules in the rollup plugin * chore(NA): migrate `src/core/public/http/fetch.ts` (#5) * omit undefined query props * just remove merge usage * fix types * chore(NA): fixes for feedback from apm team * chore(NA): recover old behaviour on apm LoadingIndeicatorContext.tsx * chore(NA): fixes for feedback from watson * Platform lodash4 tweaks (#6) * chore(NA): fix types and behaviour on src/core/server/elasticsearch/errors.ts * Canvas fixes for lodash upgrade * [APM] Adds unit test for APM service maps transform (#7) * Adds a snapshot unit test for getConnections and rearranges some code to make testing easier * reverts `ArrayList` back to `String[]` in the painless script within `fetch_service_paths_from_trace_ids.ts` * chore(NA): update yarn.lock * chore(NA): remove any and use a real type for alerts task runner Co-authored-by: Gidi Meir Morris <github@gidi.io> * chore(NA): used named import for triggers_actions_ui file * chore(NA): fix eslint * chore(NA): fix types * Delete most uptime lodash references. * Simplify. Clean up types. * [Uptime] Delete most uptime lodash references (#8) * Delete most uptime lodash references. * Simplify. Clean up types. * chore(NA): add eslint rule to avoid using lodash3 * chore(NA): apply changes on feedback from es-ui team * fix some types (#9) * Clean up some expressions types. * chore(NA): missing ts-expect-error statements * Upgrade lodash 4 vislib (#11) * replace lodash 3 with lodash 4 on vislib plugin * Further changes * further replacement of lodash3 to 4 * further work on upgrading to lodash 4 * final changes to update lodash * chore(NA): upgrade data plugin to lodash4 chore(NA): upgrade data plugin public to lodash4 chore(NA): fix typecheck task chore(NA): fix agg_config with hasIn chore(NA): assign to assignIn and has to hasIn chore(NA): upgrade data plugin server to lodash4 chore(NA): new signature for core api fix(NA): match behaviour between lodash3 and lodash4 for set in search_source * chore(NA): remove lodash3 completely from the repo * chore(NA): fix x-pack/test/api_integration/apis/metrics_ui/snapshot.ts missing content * chore(NA): fix lodash usage on apm * chore(NA): fix typecheck for maps * Patch lodash template (#12) * Applying changes from https://github.com/elastic/kibana/pull/64985 * Using isIterateeCall, because it seems less brittle * Also patching `lodash/template` and `lodash/fp/template` * Reorganizing some files... * Revising comment * Ends up `_` is a function also... I hate JavaScript Co-authored-by: Pierre Gayvallet <pierre.gayvallet@gmail.com> Co-authored-by: Josh Dover <me@joshdover.com> Co-authored-by: Clint Andrew Hall <clint.hall@elastic.co> Co-authored-by: Oliver Gupte <ogupte@users.noreply.github.com> Co-authored-by: Elastic Machine <elasticmachine@users.noreply.github.com> Co-authored-by: Gidi Meir Morris <github@gidi.io> Co-authored-by: Justin Kambic <justin.kambic@elastic.co> Co-authored-by: Stratoula Kalafateli <stratoula1@gmail.com> Co-authored-by: Luke Elmers <luke.elmers@elastic.co> Co-authored-by: Brandon Kobel <brandon.kobel@gmail.com> Co-authored-by: kobelb <brandon.kobel@elastic.co>
240 lines
6.2 KiB
JavaScript
240 lines
6.2 KiB
JavaScript
/*
|
|
* Licensed to Elasticsearch B.V. under one or more contributor
|
|
* license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright
|
|
* ownership. Elasticsearch B.V. licenses this file to you under
|
|
* the Apache License, Version 2.0 (the "License"); you may
|
|
* not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing,
|
|
* software distributed under the License is distributed on an
|
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
* KIND, either express or implied. See the License for the
|
|
* specific language governing permissions and limitations
|
|
* under the License.
|
|
*/
|
|
|
|
const sass = require('node-sass');
|
|
const postcss = require('postcss');
|
|
const postcssConfig = require('../../src/optimize/postcss.config');
|
|
const chokidar = require('chokidar');
|
|
const { debounce } = require('lodash');
|
|
|
|
const platform = require('os').platform();
|
|
const isPlatformWindows = /^win/.test(platform);
|
|
|
|
module.exports = function (grunt) {
|
|
grunt.initConfig({
|
|
clean: {
|
|
target: ['target'],
|
|
},
|
|
copy: {
|
|
makeProdBuild: {
|
|
expand: true,
|
|
src: [
|
|
'components/**/*',
|
|
'dist/**/*',
|
|
'src/**/*',
|
|
'package.json',
|
|
'!**/*.test.js',
|
|
'!**/__snapshots__/**/*',
|
|
],
|
|
dest: 'target',
|
|
},
|
|
},
|
|
babel: {
|
|
prodBuild: {
|
|
expand: true,
|
|
src: ['target/components/**/*.js', 'target/src/**/*.js'],
|
|
dest: '.',
|
|
options: {
|
|
presets: [require.resolve('@kbn/babel-preset/webpack_preset')],
|
|
},
|
|
},
|
|
},
|
|
});
|
|
|
|
grunt.loadNpmTasks('grunt-babel');
|
|
grunt.loadNpmTasks('grunt-contrib-clean');
|
|
grunt.loadNpmTasks('grunt-contrib-copy');
|
|
grunt.registerTask('prodBuild', ['clean:target', 'copy:makeProdBuild', 'babel:prodBuild']);
|
|
|
|
grunt.registerTask('docSiteBuild', function () {
|
|
const done = this.async();
|
|
|
|
const serverCmd = {
|
|
cmd: isPlatformWindows ? '.\\node_modules\\.bin\\webpack.cmd' : './node_modules/.bin/webpack',
|
|
args: [
|
|
'-p',
|
|
'--config=doc_site/webpack.config.js',
|
|
'--devtool=null', // Prevent the source map from being generated
|
|
],
|
|
opts: { stdio: 'inherit' },
|
|
};
|
|
|
|
const uiFrameworkServerBuild = new Promise((resolve, reject) => {
|
|
grunt.util.spawn(serverCmd, (error, result, code) => {
|
|
if (error || code !== 0) {
|
|
const message = result.stderr || result.stdout;
|
|
|
|
grunt.log.error(message);
|
|
|
|
return reject();
|
|
}
|
|
|
|
grunt.log.writeln(result);
|
|
|
|
resolve();
|
|
});
|
|
});
|
|
|
|
uiFrameworkServerBuild.then(done);
|
|
});
|
|
|
|
grunt.registerTask('docSiteStart', function () {
|
|
const done = this.async();
|
|
Promise.all([uiFrameworkWatch(), uiFrameworkServerStart()]).then(done);
|
|
});
|
|
|
|
grunt.registerTask('compileCssLight', function () {
|
|
const done = this.async();
|
|
uiFrameworkCompileLight().then(done);
|
|
});
|
|
|
|
grunt.registerTask('compileCssDark', function () {
|
|
const done = this.async();
|
|
uiFrameworkCompileDark().then(done);
|
|
});
|
|
|
|
function uiFrameworkServerStart() {
|
|
const serverCmd = {
|
|
cmd: isPlatformWindows
|
|
? '.\\node_modules\\.bin\\webpack-dev-server.cmd'
|
|
: './node_modules/.bin/webpack-dev-server',
|
|
args: [
|
|
'--config=doc_site/webpack.config.js',
|
|
'--hot',
|
|
'--inline',
|
|
'--content-base=doc_site/build',
|
|
'--host=0.0.0.0',
|
|
'--port=8020',
|
|
],
|
|
opts: { stdio: 'inherit' },
|
|
};
|
|
|
|
return new Promise((resolve, reject) => {
|
|
grunt.util.spawn(serverCmd, (error, result, code) => {
|
|
if (error || code !== 0) {
|
|
const message = result.stderr || result.stdout;
|
|
|
|
grunt.log.error(message);
|
|
|
|
return reject();
|
|
}
|
|
|
|
grunt.log.writeln(result);
|
|
|
|
resolve();
|
|
});
|
|
});
|
|
}
|
|
|
|
function uiFrameworkCompileLight() {
|
|
const src = 'src/kui_light.scss';
|
|
const dest = 'dist/kui_light.css';
|
|
|
|
return new Promise((resolve) => {
|
|
sass.render(
|
|
{
|
|
file: src,
|
|
},
|
|
function (error, result) {
|
|
if (error) {
|
|
grunt.log.error(error);
|
|
}
|
|
|
|
postcss([postcssConfig])
|
|
.process(result.css, { from: src, to: dest })
|
|
.then((result) => {
|
|
grunt.file.write(dest, result.css);
|
|
|
|
if (result.map) {
|
|
grunt.file.write(`${dest}.map`, result.map);
|
|
}
|
|
|
|
resolve();
|
|
});
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function uiFrameworkCompileDark() {
|
|
const src = 'src/kui_dark.scss';
|
|
const dest = 'dist/kui_dark.css';
|
|
|
|
return new Promise((resolve) => {
|
|
sass.render(
|
|
{
|
|
file: src,
|
|
},
|
|
function (error, result) {
|
|
if (error) {
|
|
grunt.log.error(error);
|
|
}
|
|
|
|
postcss([postcssConfig])
|
|
.process(result.css, { from: src, to: dest })
|
|
.then((result) => {
|
|
grunt.file.write(dest, result.css);
|
|
|
|
if (result.map) {
|
|
grunt.file.write(`${dest}.map`, result.map);
|
|
}
|
|
|
|
resolve();
|
|
});
|
|
}
|
|
);
|
|
});
|
|
}
|
|
|
|
function uiFrameworkWatch() {
|
|
const debouncedCompile = debounce(
|
|
() => {
|
|
// Compile the SCSS in a separate process because node-sass throws a fatal error if it fails
|
|
// to compile.
|
|
grunt.util.spawn(
|
|
{
|
|
cmd: isPlatformWindows
|
|
? '.\\node_modules\\.bin\\grunt.cmd'
|
|
: './node_modules/.bin/grunt',
|
|
args: ['compileCssLight', 'compileCssDark'],
|
|
},
|
|
(error, result) => {
|
|
if (error) {
|
|
grunt.log.error(result.stdout);
|
|
} else {
|
|
grunt.log.writeln(result);
|
|
}
|
|
}
|
|
);
|
|
},
|
|
400,
|
|
{ leading: true }
|
|
);
|
|
|
|
return new Promise(() => {
|
|
debouncedCompile();
|
|
|
|
chokidar.watch('src', { ignoreInitial: true }).on('all', (event, path) => {
|
|
grunt.log.writeln(event, path);
|
|
debouncedCompile();
|
|
});
|
|
});
|
|
}
|
|
};
|