70 lines
2.3 KiB
JavaScript
70 lines
2.3 KiB
JavaScript
import pathLib, { dirname } from 'path';
|
|
import fs from 'fs';
|
|
import { fileURLToPath } from 'url';
|
|
|
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
|
// This file is read by dashboard and cli and needs to be present under process.cwd()
|
|
// It mainly serves as an example and it allows to run the dashboard locally
|
|
// from within this repo.
|
|
|
|
/**
|
|
* @returns {string[]}
|
|
*/
|
|
function getAllLionScopedPackagePaths() {
|
|
const rootPath = pathLib.resolve(__dirname, '../../packages');
|
|
const filesAndDirs = fs.readdirSync(rootPath);
|
|
const packages = filesAndDirs.filter(f => {
|
|
const filePath = pathLib.join(rootPath, f);
|
|
if (fs.lstatSync(filePath).isDirectory()) {
|
|
let pkgJson;
|
|
try {
|
|
pkgJson = JSON.parse(fs.readFileSync(pathLib.resolve(filePath, './package.json')));
|
|
// eslint-disable-next-line no-empty
|
|
} catch (_) {
|
|
return false;
|
|
}
|
|
return pkgJson.name && pkgJson.name.startsWith('@lion/');
|
|
}
|
|
return false;
|
|
});
|
|
return packages.map(p => pathLib.join(rootPath, p));
|
|
}
|
|
|
|
const lionScopedPackagePaths = getAllLionScopedPackagePaths();
|
|
|
|
export default {
|
|
metaConfig: {
|
|
categoryConfig: [
|
|
{
|
|
// This is the name found in package.json
|
|
project: '@lion/overlays',
|
|
majorVersion: 1,
|
|
// These conditions will be run on overy filePath
|
|
categories: {
|
|
overlays: localFilePath => {
|
|
const names = ['dialog', 'tooltip'];
|
|
const fromPackages = names.some(p => localFilePath.startsWith(`./packages/${p}`));
|
|
const fromRoot =
|
|
names.some(p => localFilePath.startsWith(`./ui-${p}`)) ||
|
|
localFilePath.startsWith('./overlays.js');
|
|
return fromPackages || fromRoot;
|
|
},
|
|
// etc...
|
|
},
|
|
},
|
|
],
|
|
},
|
|
// By predefening groups, we can do a query for programs/collections...
|
|
// Select via " providence analyze --search-target-collection 'exampleCollection' "
|
|
searchTargetCollections: {
|
|
'@lion-targets': lionScopedPackagePaths,
|
|
// ...
|
|
},
|
|
referenceCollections: {
|
|
// Usually the references are different from the targets.
|
|
// In this demo file, we test @lion usage amongst itself
|
|
// Select via " providence analyze --reference-collection 'exampleCollection' "
|
|
'@lion-references': lionScopedPackagePaths,
|
|
},
|
|
};
|