mirror of
https://github.com/grafana/grafana.git
synced 2024-11-26 19:00:54 -06:00
d8ec95e9b1
* build test apps with webpack * add extensions test app * update e2e tests * remove non-build test apps using amd * use @grafana/plugin-configs rather than create-plugin config * Update e2e/plugin-e2e/plugin-e2e-api-tests/as-admin-user/extensions/usePluginComponents.spec.ts Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> * Update package.json Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com> * use run dir variable instead of hardcoded path * add dummy licence file * add separate step for building test plugins * support nested plugins * remove react-router-dom from the externals array * remove add_mode dev * lint starlark * pass license path as env variable * fix the path * chore(e2e-plugins): clean up dependencies to match core versions * refactor(e2e-plugins): prefer extending webpack plugins-config * docs(e2e-plugins): add basic info to extensions test plugin readme * update readme * change dir name from custom plugins to test plugins * change root readme * update lockfile --------- Co-authored-by: Jack Westbrook <jack.westbrook@gmail.com>
43 lines
1.2 KiB
TypeScript
43 lines
1.2 KiB
TypeScript
import fs from 'fs';
|
|
import { glob } from 'glob';
|
|
import path from 'path';
|
|
import process from 'process';
|
|
|
|
export function getPackageJson() {
|
|
return require(path.resolve(process.cwd(), 'package.json'));
|
|
}
|
|
|
|
export function getPluginJson() {
|
|
return require(path.resolve(process.cwd(), 'plugin.json'));
|
|
}
|
|
|
|
export async function getEntries(): Promise<Record<string, string>> {
|
|
const pluginsJson = await glob(path.resolve(process.cwd(), '**/plugin.json'), {
|
|
ignore: ['**/dist/**'],
|
|
absolute: true,
|
|
});
|
|
|
|
const plugins = await Promise.all(
|
|
pluginsJson.map((pluginJson) => {
|
|
const folder = path.dirname(pluginJson);
|
|
return glob(`${folder}/module.{ts,tsx,js,jsx}`, { absolute: true });
|
|
})
|
|
);
|
|
|
|
let result: Record<string, string> = {};
|
|
return plugins.reduce((result, modules) => {
|
|
return modules.reduce((result, module) => {
|
|
const pluginPath = path.dirname(module);
|
|
const pluginName = path.relative(process.cwd(), pluginPath).replace(/src\/?/i, '');
|
|
const entryName = pluginName === '' ? 'module' : `${pluginName}/module`;
|
|
|
|
result[entryName] = module;
|
|
return result;
|
|
}, result);
|
|
}, result);
|
|
}
|
|
|
|
export function hasLicense() {
|
|
return fs.existsSync(path.resolve(process.cwd(), 'LICENSE'));
|
|
}
|