mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
Since this is being imported by the UI as a package, we need to transpile for the browsers we need to support. Fixes #42782 Signed-off-by: Tyler Smalley <tyler.smalley@elastic.co>
This commit is contained in:
parent
bb9890b931
commit
62e7f58bd1
6 changed files with 213 additions and 123 deletions
32
packages/kbn-analytics/babel.config.js
Normal file
32
packages/kbn-analytics/babel.config.js
Normal file
|
@ -0,0 +1,32 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
// We can't use common Kibana presets here because of babel versions incompatibility
|
||||
module.exports = {
|
||||
plugins: ['@babel/plugin-proposal-class-properties'],
|
||||
env: {
|
||||
web: {
|
||||
presets: ['@kbn/babel-preset/webpack_preset']
|
||||
},
|
||||
node: {
|
||||
presets: ['@kbn/babel-preset/node_preset'],
|
||||
},
|
||||
},
|
||||
ignore: ['**/*.test.ts', '**/*.test.tsx'],
|
||||
};
|
|
@ -3,16 +3,20 @@
|
|||
"private": true,
|
||||
"version": "1.0.0",
|
||||
"description": "Kibana Analytics tool",
|
||||
"main": "target/index.js",
|
||||
"types": "target/index.d.ts",
|
||||
"main": "target/node/index.js",
|
||||
"browser": "target/web/browser.js",
|
||||
"types": "target/types/index.d.ts",
|
||||
"author": "Ahmad Bamieh <ahmadbamieh@gmail.com>",
|
||||
"license": "Apache-2.0",
|
||||
"scripts": {
|
||||
"build": "tsc",
|
||||
"kbn:bootstrap": "yarn build",
|
||||
"kbn:watch": "yarn build --watch"
|
||||
"build": "node scripts/build",
|
||||
"kbn:bootstrap": "node scripts/build --source-maps",
|
||||
"kbn:watch": "node scripts/build --source-maps --watch"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/cli": "7.4.4",
|
||||
"@kbn/dev-utils": "1.0.0",
|
||||
"@kbn/babel-preset": "1.0.0",
|
||||
"typescript": "3.5.1"
|
||||
},
|
||||
"dependencies": {
|
||||
|
|
95
packages/kbn-analytics/scripts/build.js
Normal file
95
packages/kbn-analytics/scripts/build.js
Normal file
|
@ -0,0 +1,95 @@
|
|||
/*
|
||||
* 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 { resolve } = require('path');
|
||||
|
||||
const del = require('del');
|
||||
const supportsColor = require('supports-color');
|
||||
const { run, withProcRunner } = require('@kbn/dev-utils');
|
||||
|
||||
const ROOT_DIR = resolve(__dirname, '..');
|
||||
const BUILD_DIR = resolve(ROOT_DIR, 'target');
|
||||
|
||||
const padRight = (width, str) =>
|
||||
str.length >= width ? str : `${str}${' '.repeat(width - str.length)}`;
|
||||
|
||||
run(
|
||||
async ({ log, flags }) => {
|
||||
await withProcRunner(log, async proc => {
|
||||
log.info('Deleting old output');
|
||||
await del(BUILD_DIR);
|
||||
|
||||
const cwd = ROOT_DIR;
|
||||
const env = { ...process.env };
|
||||
if (supportsColor.stdout) {
|
||||
env.FORCE_COLOR = 'true';
|
||||
}
|
||||
|
||||
log.info(`Starting babel and typescript${flags.watch ? ' in watch mode' : ''}`);
|
||||
await Promise.all([
|
||||
...['web', 'node'].map(subTask =>
|
||||
proc.run(padRight(10, `babel:${subTask}`), {
|
||||
cmd: 'babel',
|
||||
args: [
|
||||
'src',
|
||||
'--config-file',
|
||||
require.resolve('../babel.config.js'),
|
||||
'--out-dir',
|
||||
resolve(BUILD_DIR, subTask),
|
||||
'--extensions',
|
||||
'.ts,.js,.tsx',
|
||||
...(flags.watch ? ['--watch'] : ['--quiet']),
|
||||
...(flags['source-maps'] ? ['--source-map', 'inline'] : []),
|
||||
],
|
||||
wait: true,
|
||||
env: {
|
||||
...env,
|
||||
BABEL_ENV: subTask,
|
||||
},
|
||||
cwd,
|
||||
})
|
||||
),
|
||||
|
||||
proc.run(padRight(10, 'tsc'), {
|
||||
cmd: 'tsc',
|
||||
args: [
|
||||
'--emitDeclarationOnly',
|
||||
...(flags.watch ? ['--watch', '--preserveWatchOutput', 'true'] : []),
|
||||
...(flags['source-maps'] ? ['--declarationMap', 'true'] : []),
|
||||
],
|
||||
wait: true,
|
||||
env,
|
||||
cwd,
|
||||
}),
|
||||
]);
|
||||
|
||||
log.success('Complete');
|
||||
});
|
||||
},
|
||||
{
|
||||
description: 'Simple build tool for @kbn/analytics package',
|
||||
flags: {
|
||||
boolean: ['watch', 'source-maps'],
|
||||
help: `
|
||||
--watch Run in watch mode
|
||||
--source-maps Include sourcemaps
|
||||
`,
|
||||
},
|
||||
}
|
||||
);
|
|
@ -2,8 +2,7 @@
|
|||
"extends": "../../tsconfig.json",
|
||||
"compilerOptions": {
|
||||
"declaration": true,
|
||||
"declarationDir": "./target",
|
||||
"outDir": "./target",
|
||||
"declarationDir": "./target/types",
|
||||
"stripInternal": true,
|
||||
"declarationMap": true,
|
||||
"types": [
|
||||
|
|
|
@ -17,4 +17,79 @@
|
|||
* under the License.
|
||||
*/
|
||||
|
||||
require('../tasks/build_cli');
|
||||
const { resolve } = require('path');
|
||||
|
||||
const del = require('del');
|
||||
const supportsColor = require('supports-color');
|
||||
const { run, withProcRunner } = require('@kbn/dev-utils');
|
||||
|
||||
const ROOT_DIR = resolve(__dirname, '..');
|
||||
const BUILD_DIR = resolve(ROOT_DIR, 'target');
|
||||
|
||||
const padRight = (width, str) =>
|
||||
str.length >= width ? str : `${str}${' '.repeat(width - str.length)}`;
|
||||
|
||||
run(
|
||||
async ({ log, flags }) => {
|
||||
await withProcRunner(log, async proc => {
|
||||
log.info('Deleting old output');
|
||||
await del(BUILD_DIR);
|
||||
|
||||
const cwd = ROOT_DIR;
|
||||
const env = { ...process.env };
|
||||
if (supportsColor.stdout) {
|
||||
env.FORCE_COLOR = 'true';
|
||||
}
|
||||
|
||||
log.info(`Starting babel and typescript${flags.watch ? ' in watch mode' : ''}`);
|
||||
await Promise.all([
|
||||
...['web', 'node'].map(subTask =>
|
||||
proc.run(padRight(10, `babel:${subTask}`), {
|
||||
cmd: 'babel',
|
||||
args: [
|
||||
'src',
|
||||
'--config-file',
|
||||
require.resolve('../babel.config.js'),
|
||||
'--out-dir',
|
||||
resolve(BUILD_DIR, subTask),
|
||||
'--extensions',
|
||||
'.ts,.js,.tsx',
|
||||
...(flags.watch ? ['--watch'] : ['--quiet']),
|
||||
...(flags['source-maps'] ? ['--source-map', 'inline'] : []),
|
||||
],
|
||||
wait: true,
|
||||
env: {
|
||||
...env,
|
||||
BABEL_ENV: subTask,
|
||||
},
|
||||
cwd,
|
||||
})
|
||||
),
|
||||
|
||||
proc.run(padRight(10, 'tsc'), {
|
||||
cmd: 'tsc',
|
||||
args: [
|
||||
'--emitDeclarationOnly',
|
||||
...(flags.watch ? ['--watch', '--preserveWatchOutput', 'true'] : []),
|
||||
...(flags['source-maps'] ? ['--declarationMap', 'true'] : []),
|
||||
],
|
||||
wait: true,
|
||||
env,
|
||||
cwd,
|
||||
}),
|
||||
]);
|
||||
|
||||
log.success('Complete');
|
||||
});
|
||||
},
|
||||
{
|
||||
description: 'Simple build tool for @kbn/i18n package',
|
||||
flags: {
|
||||
boolean: ['watch', 'source-maps'],
|
||||
help: `
|
||||
--watch Run in watch mode
|
||||
--source-maps Include sourcemaps
|
||||
`,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
|
|
@ -1,115 +0,0 @@
|
|||
/*
|
||||
* 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 { resolve } = require('path');
|
||||
|
||||
const getopts = require('getopts');
|
||||
const del = require('del');
|
||||
const supportsColor = require('supports-color');
|
||||
const { ToolingLog, withProcRunner, pickLevelFromFlags } = require('@kbn/dev-utils');
|
||||
|
||||
const ROOT_DIR = resolve(__dirname, '..');
|
||||
const BUILD_DIR = resolve(ROOT_DIR, 'target');
|
||||
|
||||
const padRight = (width, str) =>
|
||||
str.length >= width ? str : `${str}${' '.repeat(width - str.length)}`;
|
||||
|
||||
const unknownFlags = [];
|
||||
const flags = getopts(process.argv, {
|
||||
boolean: ['watch', 'help', 'source-maps'],
|
||||
unknown(name) {
|
||||
unknownFlags.push(name);
|
||||
},
|
||||
});
|
||||
|
||||
const log = new ToolingLog({
|
||||
level: pickLevelFromFlags(flags),
|
||||
writeTo: process.stdout,
|
||||
});
|
||||
|
||||
if (unknownFlags.length) {
|
||||
log.error(`Unknown flag(s): ${unknownFlags.join(', ')}`);
|
||||
flags.help = true;
|
||||
process.exitCode = 1;
|
||||
}
|
||||
|
||||
if (flags.help) {
|
||||
log.info(`
|
||||
Simple build tool for @kbn/i18n package
|
||||
|
||||
--watch Run in watch mode
|
||||
--source-maps Include sourcemaps
|
||||
--help Show this message
|
||||
`);
|
||||
process.exit();
|
||||
}
|
||||
|
||||
withProcRunner(log, async proc => {
|
||||
log.info('Deleting old output');
|
||||
await del(BUILD_DIR);
|
||||
|
||||
const cwd = ROOT_DIR;
|
||||
const env = { ...process.env };
|
||||
if (supportsColor.stdout) {
|
||||
env.FORCE_COLOR = 'true';
|
||||
}
|
||||
|
||||
log.info(`Starting babel and typescript${flags.watch ? ' in watch mode' : ''}`);
|
||||
await Promise.all([
|
||||
...['web', 'node'].map(subTask =>
|
||||
proc.run(padRight(10, `babel:${subTask}`), {
|
||||
cmd: 'babel',
|
||||
args: [
|
||||
'src',
|
||||
'--config-file',
|
||||
require.resolve('../babel.config.js'),
|
||||
'--out-dir',
|
||||
resolve(BUILD_DIR, subTask),
|
||||
'--extensions',
|
||||
'.ts,.js,.tsx',
|
||||
...(flags.watch ? ['--watch'] : ['--quiet']),
|
||||
...(flags['source-maps'] ? ['--source-map', 'inline'] : []),
|
||||
],
|
||||
wait: true,
|
||||
env: {
|
||||
...env,
|
||||
BABEL_ENV: subTask,
|
||||
},
|
||||
cwd,
|
||||
})
|
||||
),
|
||||
|
||||
proc.run(padRight(10, 'tsc'), {
|
||||
cmd: 'tsc',
|
||||
args: [
|
||||
'--emitDeclarationOnly',
|
||||
...(flags.watch ? ['--watch', '--preserveWatchOutput', 'true'] : []),
|
||||
...(flags['source-maps'] ? ['--declarationMap', 'true'] : []),
|
||||
],
|
||||
wait: true,
|
||||
env,
|
||||
cwd,
|
||||
}),
|
||||
]);
|
||||
|
||||
log.success('Complete');
|
||||
}).catch(error => {
|
||||
log.error(error);
|
||||
process.exit(1);
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue