Bumps [`@grafana/create-plugin`](https://github.com/grafana/plugin-tools/tree/main/packages/create-plugin) configuration from 4.2.1 to 5.26.4. **Notes for reviewer:** This is an auto-generated PR which ran `@grafana/create-plugin update`. Please consult the create-plugin [CHANGELOG.md](https://github.com/grafana/plugin-tools/blob/main/packages/create-plugin/CHANGELOG.md) to understand what may have changed. Please review the changes thoroughly before merging. --------- Co-authored-by: grafana-plugins-platform-bot[bot] <144369747+grafana-plugins-platform-bot[bot]@users.noreply.github.com> Co-authored-by: Zoltán Bedi <zoltan.bedi@gmail.com>
69 lines
2.0 KiB
TypeScript
69 lines
2.0 KiB
TypeScript
import fs from 'fs';
|
|
import process from 'process';
|
|
import os from 'os';
|
|
import path from 'path';
|
|
import { glob } from 'glob';
|
|
import { SOURCE_DIR } from './constants.ts';
|
|
|
|
export function isWSL() {
|
|
if (process.platform !== 'linux') {
|
|
return false;
|
|
}
|
|
|
|
if (os.release().toLowerCase().includes('microsoft')) {
|
|
return true;
|
|
}
|
|
|
|
try {
|
|
return fs.readFileSync('/proc/version', 'utf8').toLowerCase().includes('microsoft');
|
|
} catch {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
function loadJson(path: string) {
|
|
const rawJson = fs.readFileSync(path, 'utf8');
|
|
return JSON.parse(rawJson);
|
|
}
|
|
|
|
export function getPackageJson() {
|
|
return loadJson(path.resolve(process.cwd(), 'package.json'));
|
|
}
|
|
|
|
export function getPluginJson() {
|
|
return loadJson(path.resolve(process.cwd(), `${SOURCE_DIR}/plugin.json`));
|
|
}
|
|
|
|
export function getCPConfigVersion() {
|
|
const cprcJson = path.resolve(process.cwd(), './.config', '.cprc.json');
|
|
return fs.existsSync(cprcJson) ? loadJson(cprcJson).version : { version: 'unknown' };
|
|
}
|
|
|
|
export function hasReadme() {
|
|
return fs.existsSync(path.resolve(process.cwd(), SOURCE_DIR, 'README.md'));
|
|
}
|
|
|
|
// Support bundling nested plugins by finding all plugin.json files in src directory
|
|
// then checking for a sibling module.[jt]sx? file.
|
|
export async function getEntries() {
|
|
const pluginsJson = await glob('**/src/**/plugin.json', { 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 });
|
|
})
|
|
);
|
|
|
|
return plugins.reduce<Record<string, string>>((result, modules) => {
|
|
return modules.reduce((innerResult, module) => {
|
|
const pluginPath = path.dirname(module);
|
|
const pluginName = path.relative(process.cwd(), pluginPath).replace(/src\/?/i, '');
|
|
const entryName = pluginName === '' ? 'module' : `${pluginName}/module`;
|
|
|
|
innerResult[entryName] = module;
|
|
return innerResult;
|
|
}, result);
|
|
}, {});
|
|
}
|