diff --git a/.eslintignore b/.eslintignore index 50901af5b9eea..fb00d7e0f8c9a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -27,8 +27,7 @@ bower_components /x-pack/coverage /x-pack/build /x-pack/plugins/**/__tests__/fixtures/** -/packages/kbn-interpreter/common/lib/grammar.js -/packages/kbn-interpreter/plugin +/packages/kbn-interpreter/src/common/lib/grammar.js /x-pack/plugins/canvas/canvas_plugin /x-pack/plugins/canvas/canvas_plugin_src/lib/flot-charts **/*.js.snap diff --git a/packages/kbn-interpreter/.gitignore b/packages/kbn-interpreter/.gitignore new file mode 100644 index 0000000000000..1906beb58b22c --- /dev/null +++ b/packages/kbn-interpreter/.gitignore @@ -0,0 +1,4 @@ +common +plugin +public +server diff --git a/packages/kbn-interpreter/package.json b/packages/kbn-interpreter/package.json index 0178b9e2cfe32..a5465883d7ae9 100644 --- a/packages/kbn-interpreter/package.json +++ b/packages/kbn-interpreter/package.json @@ -2,9 +2,14 @@ "name": "@kbn/interpreter", "version": "1.0.0", "license": "Apache-2.0", + "main": "./index.js", "scripts": { - "build": "node tasks/build.js", + "build": "babel src --out-dir . --ignore 'src/plugin/**/*' && node tasks/build.js", "canvas:peg": "pegjs common/lib/grammar.peg", "kbn:bootstrap": "yarn build" + }, + "devDependencies": { + "@kbn/babel-preset": "1.0.0", + "babel-cli": "^6.26.0" } } diff --git a/packages/kbn-interpreter/common/interpreter/cast.js b/packages/kbn-interpreter/src/common/interpreter/cast.js similarity index 100% rename from packages/kbn-interpreter/common/interpreter/cast.js rename to packages/kbn-interpreter/src/common/interpreter/cast.js diff --git a/packages/kbn-interpreter/common/interpreter/create_error.js b/packages/kbn-interpreter/src/common/interpreter/create_error.js similarity index 100% rename from packages/kbn-interpreter/common/interpreter/create_error.js rename to packages/kbn-interpreter/src/common/interpreter/create_error.js diff --git a/packages/kbn-interpreter/common/interpreter/interpret.js b/packages/kbn-interpreter/src/common/interpreter/interpret.js similarity index 100% rename from packages/kbn-interpreter/common/interpreter/interpret.js rename to packages/kbn-interpreter/src/common/interpreter/interpret.js diff --git a/packages/kbn-interpreter/common/interpreter/socket_interpret.js b/packages/kbn-interpreter/src/common/interpreter/socket_interpret.js similarity index 100% rename from packages/kbn-interpreter/common/interpreter/socket_interpret.js rename to packages/kbn-interpreter/src/common/interpreter/socket_interpret.js diff --git a/packages/kbn-interpreter/common/lib/arg.js b/packages/kbn-interpreter/src/common/lib/arg.js similarity index 100% rename from packages/kbn-interpreter/common/lib/arg.js rename to packages/kbn-interpreter/src/common/lib/arg.js diff --git a/packages/kbn-interpreter/common/lib/arg.test.js b/packages/kbn-interpreter/src/common/lib/arg.test.js similarity index 100% rename from packages/kbn-interpreter/common/lib/arg.test.js rename to packages/kbn-interpreter/src/common/lib/arg.test.js diff --git a/packages/kbn-interpreter/common/lib/ast.from_expression.test.js b/packages/kbn-interpreter/src/common/lib/ast.from_expression.test.js similarity index 100% rename from packages/kbn-interpreter/common/lib/ast.from_expression.test.js rename to packages/kbn-interpreter/src/common/lib/ast.from_expression.test.js diff --git a/packages/kbn-interpreter/common/lib/ast.js b/packages/kbn-interpreter/src/common/lib/ast.js similarity index 100% rename from packages/kbn-interpreter/common/lib/ast.js rename to packages/kbn-interpreter/src/common/lib/ast.js diff --git a/packages/kbn-interpreter/common/lib/ast.to_expression.test.js b/packages/kbn-interpreter/src/common/lib/ast.to_expression.test.js similarity index 100% rename from packages/kbn-interpreter/common/lib/ast.to_expression.test.js rename to packages/kbn-interpreter/src/common/lib/ast.to_expression.test.js diff --git a/packages/kbn-interpreter/common/lib/fn.js b/packages/kbn-interpreter/src/common/lib/fn.js similarity index 100% rename from packages/kbn-interpreter/common/lib/fn.js rename to packages/kbn-interpreter/src/common/lib/fn.js diff --git a/packages/kbn-interpreter/common/lib/functions_registry.js b/packages/kbn-interpreter/src/common/lib/functions_registry.js similarity index 100% rename from packages/kbn-interpreter/common/lib/functions_registry.js rename to packages/kbn-interpreter/src/common/lib/functions_registry.js diff --git a/packages/kbn-interpreter/common/lib/get_by_alias.js b/packages/kbn-interpreter/src/common/lib/get_by_alias.js similarity index 100% rename from packages/kbn-interpreter/common/lib/get_by_alias.js rename to packages/kbn-interpreter/src/common/lib/get_by_alias.js diff --git a/packages/kbn-interpreter/common/lib/get_by_alias.test.js b/packages/kbn-interpreter/src/common/lib/get_by_alias.test.js similarity index 100% rename from packages/kbn-interpreter/common/lib/get_by_alias.test.js rename to packages/kbn-interpreter/src/common/lib/get_by_alias.test.js diff --git a/packages/kbn-interpreter/common/lib/get_type.js b/packages/kbn-interpreter/src/common/lib/get_type.js similarity index 100% rename from packages/kbn-interpreter/common/lib/get_type.js rename to packages/kbn-interpreter/src/common/lib/get_type.js diff --git a/packages/kbn-interpreter/common/lib/grammar.js b/packages/kbn-interpreter/src/common/lib/grammar.js similarity index 100% rename from packages/kbn-interpreter/common/lib/grammar.js rename to packages/kbn-interpreter/src/common/lib/grammar.js diff --git a/packages/kbn-interpreter/common/lib/grammar.peg b/packages/kbn-interpreter/src/common/lib/grammar.peg similarity index 100% rename from packages/kbn-interpreter/common/lib/grammar.peg rename to packages/kbn-interpreter/src/common/lib/grammar.peg diff --git a/packages/kbn-interpreter/common/lib/paths_registry.js b/packages/kbn-interpreter/src/common/lib/paths_registry.js similarity index 100% rename from packages/kbn-interpreter/common/lib/paths_registry.js rename to packages/kbn-interpreter/src/common/lib/paths_registry.js diff --git a/packages/kbn-interpreter/common/lib/paths_registry.test.js b/packages/kbn-interpreter/src/common/lib/paths_registry.test.js similarity index 100% rename from packages/kbn-interpreter/common/lib/paths_registry.test.js rename to packages/kbn-interpreter/src/common/lib/paths_registry.test.js diff --git a/packages/kbn-interpreter/common/lib/registry.js b/packages/kbn-interpreter/src/common/lib/registry.js similarity index 100% rename from packages/kbn-interpreter/common/lib/registry.js rename to packages/kbn-interpreter/src/common/lib/registry.js diff --git a/packages/kbn-interpreter/common/lib/registry.test.js b/packages/kbn-interpreter/src/common/lib/registry.test.js similarity index 100% rename from packages/kbn-interpreter/common/lib/registry.test.js rename to packages/kbn-interpreter/src/common/lib/registry.test.js diff --git a/packages/kbn-interpreter/common/lib/serialize.js b/packages/kbn-interpreter/src/common/lib/serialize.js similarity index 100% rename from packages/kbn-interpreter/common/lib/serialize.js rename to packages/kbn-interpreter/src/common/lib/serialize.js diff --git a/packages/kbn-interpreter/common/lib/type.js b/packages/kbn-interpreter/src/common/lib/type.js similarity index 100% rename from packages/kbn-interpreter/common/lib/type.js rename to packages/kbn-interpreter/src/common/lib/type.js diff --git a/packages/kbn-interpreter/common/lib/types_registry.js b/packages/kbn-interpreter/src/common/lib/types_registry.js similarity index 100% rename from packages/kbn-interpreter/common/lib/types_registry.js rename to packages/kbn-interpreter/src/common/lib/types_registry.js diff --git a/packages/kbn-interpreter/plugin_src/functions/common/clog.js b/packages/kbn-interpreter/src/plugin/functions/common/clog.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/functions/common/clog.js rename to packages/kbn-interpreter/src/plugin/functions/common/clog.js diff --git a/packages/kbn-interpreter/plugin_src/functions/common/index.js b/packages/kbn-interpreter/src/plugin/functions/common/index.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/functions/common/index.js rename to packages/kbn-interpreter/src/plugin/functions/common/index.js diff --git a/packages/kbn-interpreter/plugin_src/functions/common/register.js b/packages/kbn-interpreter/src/plugin/functions/common/register.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/functions/common/register.js rename to packages/kbn-interpreter/src/plugin/functions/common/register.js diff --git a/packages/kbn-interpreter/plugin_src/types/boolean.js b/packages/kbn-interpreter/src/plugin/types/boolean.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/boolean.js rename to packages/kbn-interpreter/src/plugin/types/boolean.js diff --git a/packages/kbn-interpreter/plugin_src/types/datatable.js b/packages/kbn-interpreter/src/plugin/types/datatable.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/datatable.js rename to packages/kbn-interpreter/src/plugin/types/datatable.js diff --git a/packages/kbn-interpreter/plugin_src/types/error.js b/packages/kbn-interpreter/src/plugin/types/error.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/error.js rename to packages/kbn-interpreter/src/plugin/types/error.js diff --git a/packages/kbn-interpreter/plugin_src/types/filter.js b/packages/kbn-interpreter/src/plugin/types/filter.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/filter.js rename to packages/kbn-interpreter/src/plugin/types/filter.js diff --git a/packages/kbn-interpreter/plugin_src/types/image.js b/packages/kbn-interpreter/src/plugin/types/image.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/image.js rename to packages/kbn-interpreter/src/plugin/types/image.js diff --git a/packages/kbn-interpreter/plugin_src/types/index.js b/packages/kbn-interpreter/src/plugin/types/index.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/index.js rename to packages/kbn-interpreter/src/plugin/types/index.js diff --git a/packages/kbn-interpreter/plugin_src/types/null.js b/packages/kbn-interpreter/src/plugin/types/null.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/null.js rename to packages/kbn-interpreter/src/plugin/types/null.js diff --git a/packages/kbn-interpreter/plugin_src/types/number.js b/packages/kbn-interpreter/src/plugin/types/number.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/number.js rename to packages/kbn-interpreter/src/plugin/types/number.js diff --git a/packages/kbn-interpreter/plugin_src/types/pointseries.js b/packages/kbn-interpreter/src/plugin/types/pointseries.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/pointseries.js rename to packages/kbn-interpreter/src/plugin/types/pointseries.js diff --git a/packages/kbn-interpreter/plugin_src/types/register.js b/packages/kbn-interpreter/src/plugin/types/register.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/register.js rename to packages/kbn-interpreter/src/plugin/types/register.js diff --git a/packages/kbn-interpreter/plugin_src/types/render.js b/packages/kbn-interpreter/src/plugin/types/render.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/render.js rename to packages/kbn-interpreter/src/plugin/types/render.js diff --git a/packages/kbn-interpreter/plugin_src/types/shape.js b/packages/kbn-interpreter/src/plugin/types/shape.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/shape.js rename to packages/kbn-interpreter/src/plugin/types/shape.js diff --git a/packages/kbn-interpreter/plugin_src/types/string.js b/packages/kbn-interpreter/src/plugin/types/string.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/string.js rename to packages/kbn-interpreter/src/plugin/types/string.js diff --git a/packages/kbn-interpreter/plugin_src/types/style.js b/packages/kbn-interpreter/src/plugin/types/style.js similarity index 100% rename from packages/kbn-interpreter/plugin_src/types/style.js rename to packages/kbn-interpreter/src/plugin/types/style.js diff --git a/packages/kbn-interpreter/public/browser_registries.js b/packages/kbn-interpreter/src/public/browser_registries.js similarity index 100% rename from packages/kbn-interpreter/public/browser_registries.js rename to packages/kbn-interpreter/src/public/browser_registries.js diff --git a/packages/kbn-interpreter/public/create_handlers.js b/packages/kbn-interpreter/src/public/create_handlers.js similarity index 100% rename from packages/kbn-interpreter/public/create_handlers.js rename to packages/kbn-interpreter/src/public/create_handlers.js diff --git a/packages/kbn-interpreter/public/interpreter.js b/packages/kbn-interpreter/src/public/interpreter.js similarity index 100% rename from packages/kbn-interpreter/public/interpreter.js rename to packages/kbn-interpreter/src/public/interpreter.js diff --git a/packages/kbn-interpreter/public/socket.js b/packages/kbn-interpreter/src/public/socket.js similarity index 100% rename from packages/kbn-interpreter/public/socket.js rename to packages/kbn-interpreter/src/public/socket.js diff --git a/packages/kbn-interpreter/server/get_plugin_paths.js b/packages/kbn-interpreter/src/server/get_plugin_paths.js similarity index 100% rename from packages/kbn-interpreter/server/get_plugin_paths.js rename to packages/kbn-interpreter/src/server/get_plugin_paths.js diff --git a/packages/kbn-interpreter/server/server_registries.js b/packages/kbn-interpreter/src/server/server_registries.js similarity index 97% rename from packages/kbn-interpreter/server/server_registries.js rename to packages/kbn-interpreter/src/server/server_registries.js index 3fbb957673e63..3a732f0d04e23 100644 --- a/packages/kbn-interpreter/server/server_registries.js +++ b/packages/kbn-interpreter/src/server/server_registries.js @@ -40,7 +40,6 @@ export const getServerRegistries = () => { export const populateServerRegistries = types => { if (called) { - console.log('function should only be called once per process'); return populatePromise; } called = true; diff --git a/packages/kbn-interpreter/tasks/webpack.plugins.js b/packages/kbn-interpreter/tasks/webpack.plugins.js index 8b16edc5ad462..8a082a011de3e 100644 --- a/packages/kbn-interpreter/tasks/webpack.plugins.js +++ b/packages/kbn-interpreter/tasks/webpack.plugins.js @@ -19,7 +19,7 @@ const path = require('path'); -const sourceDir = path.resolve(__dirname, '../plugin_src'); +const sourceDir = path.resolve(__dirname, '../src/plugin'); const buildDir = path.resolve(__dirname, '../plugin'); module.exports = { diff --git a/src/core_plugins/interpreter/init.js b/src/core_plugins/interpreter/init.js index 58385973ac930..5f6640a9a0402 100644 --- a/src/core_plugins/interpreter/init.js +++ b/src/core_plugins/interpreter/init.js @@ -21,7 +21,7 @@ import { routes } from './server/routes'; import { functionsRegistry } from '@kbn/interpreter/common/lib/functions_registry'; import { populateServerRegistries } from '@kbn/interpreter/server/server_registries'; -export default function (server /*options*/) { +export default async function (server /*options*/) { server.injectUiAppVars('canvas', () => { const config = server.config(); const basePath = config.get('server.basePath'); @@ -37,5 +37,6 @@ export default function (server /*options*/) { }; }); - populateServerRegistries(['serverFunctions', 'types']).then(() => routes(server)); + await populateServerRegistries(['serverFunctions', 'types']); + routes(server); } diff --git a/src/optimize/base_optimizer.js b/src/optimize/base_optimizer.js index 1bf29fbac1d9d..1d4f35370b3a5 100644 --- a/src/optimize/base_optimizer.js +++ b/src/optimize/base_optimizer.js @@ -150,8 +150,8 @@ export default class BaseOptimizer { }, { test, - include: /[\/\\]node_modules[\/\\](x-pack|@kbn[\/\\]interpreter)[\/\\]/, - exclude: /[\/\\]node_modules[\/\\](x-pack|@kbn[\/\\]interpreter)[\/\\]node_modules[\/\\]/, + include: /[\/\\]node_modules[\/\\]x-pack[\/\\]/, + exclude: /[\/\\]node_modules[\/\\]x-pack[\/\\](.+?[\/\\])*node_modules[\/\\]/, } ]; diff --git a/src/setup_node_env/babel_register/register.js b/src/setup_node_env/babel_register/register.js index 17dd7f0705df1..dbf5258f3d8ca 100644 --- a/src/setup_node_env/babel_register/register.js +++ b/src/setup_node_env/babel_register/register.js @@ -38,8 +38,11 @@ var ignore = [ // https://github.com/elastic/kibana/issues/14800#issuecomment-366130268 // ignore paths matching `/node_modules/{a}/{b}`, unless `a` - // is `x-pack` or `@kbn/interpreter` and `b` is not `node_modules` - /\/node_modules\/(?!(x-pack\/|@kbn\/interpreter\/)(?!node_modules)([^\/]+))([^\/]+\/[^\/]+)/, + // is `x-pack` and `b` is not `node_modules` + /\/node_modules\/(?!x-pack\/(?!node_modules)([^\/]+))([^\/]+\/[^\/]+)/, + + // ignore paths matching `/kbn-interpreter` + /\/kbn-interpreter\//, // ignore paths matching `/canvas/canvas_plugin/{a}/{b}` unless // `a` is `functions` and `b` is `server` diff --git a/x-pack/plugins/canvas/index.js b/x-pack/plugins/canvas/index.js index 0f34eef6c2edb..c06a7f241e147 100644 --- a/x-pack/plugins/canvas/index.js +++ b/x-pack/plugins/canvas/index.js @@ -8,7 +8,7 @@ import { resolve } from 'path'; import { pathsRegistry } from '@kbn/interpreter/common/lib/paths_registry'; import init from './init'; import { mappings } from './server/mappings'; -import { CANVAS_APP } from './common/lib/constants'; +import { CANVAS_APP } from './common/lib'; import { pluginPaths } from './plugin_paths'; export function canvas(kibana) { diff --git a/x-pack/plugins/canvas/init.js b/x-pack/plugins/canvas/init.js index 70a8db10d7e66..1c4479df03b3a 100644 --- a/x-pack/plugins/canvas/init.js +++ b/x-pack/plugins/canvas/init.js @@ -5,7 +5,7 @@ */ import { functionsRegistry } from '@kbn/interpreter/common/lib/functions_registry'; -import { getServerRegistries } from '@kbn/interpreter/server/server_registries'; +import { populateServerRegistries } from '@kbn/interpreter/server/server_registries'; import { routes } from './server/routes'; import { commonFunctions } from './common/functions'; import { registerCanvasUsageCollector } from './server/usage'; @@ -34,6 +34,6 @@ export default async function(server /*options*/) { loadSampleData(server); // Do not initialize the app until the registries are populated - await getServerRegistries(); + await populateServerRegistries(['serverFunctions', 'types']); routes(server); }