mirror of
https://github.com/elastic/kibana.git
synced 2025-06-28 19:13:14 -04:00
Updates files outside of x-pack to be triple-licensed under Elastic License 2.0, AGPL 3.0, or SSPL 1.0.
39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
/*
|
|
* 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", the "GNU Affero General Public License v3.0 only", 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", the "GNU Affero General Public
|
|
* License v3.0 only", or the "Server Side Public License, v 1".
|
|
*/
|
|
|
|
const babel = require('@babel/core');
|
|
|
|
const { getBabelOptions } = require('./options');
|
|
|
|
/**
|
|
* transform the source code at the given path with babel
|
|
* using the standard configuration for the repository
|
|
* @param {string} path
|
|
* @param {string | undefined} source
|
|
* @param {import('./types').TransformConfig} config
|
|
* @returns
|
|
*/
|
|
function transformCode(path, source, config = {}) {
|
|
const options = getBabelOptions(path, config);
|
|
const result =
|
|
source === undefined
|
|
? babel.transformFileSync(path, options)
|
|
: babel.transformSync(source, options);
|
|
|
|
if (!result || !result.code) {
|
|
throw new Error(`babel failed to transpile [${path}]`);
|
|
}
|
|
|
|
return {
|
|
code: result.code,
|
|
map: result.map,
|
|
};
|
|
}
|
|
|
|
module.exports = { transformCode };
|