mirror of
https://github.com/elastic/kibana.git
synced 2025-04-25 02:09:32 -04:00
* refact(NA): apply root_input_dir=src to each already created pkg * refact(NA): update package generator * fix(NA): correctly use rootDir * fix(NA): use root input dir on latest introduced pkgs for jsts_transpiler macro * chore(NA): merge with main * chore(NA): first attempt to complete removal of src folder on a small group of pkgs * Revert "chore(NA): first attempt to complete removal of src folder on a small group of pkgs" This reverts commitb6f34b7530
. * chore(NA): remove src folder requirement from xpack pkgs * chore(NA): remove src folder from analytics pkgs * chore(NA): remove src folder from home pkgs * chore(NA): remove src folder from shared_ux pkgs * fix(NA): remove missing src folder inputs on sharedux pkg * chore(NA): remove src folder from kbn-a* pkgs * chore(NA): remove src folder from kbn-b* pkgs * chore(NA): remove src folder from kbn-c* pkgs * chore(NA): correct exclude pattern for each changed pkg * chore(NA): remove src folder from kbn-y* pkgs * chore(NA): remove src folder from kbn-e* pkgs * chore(NA): remove src folder from kbn-f* and kbn-g* pkgs * chore(NA): remove src folder from kbn-f* and kbn-g* pkgs * chore(NA): remove src folder from kbn-h** pkgs * [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' * Revert "chore(NA): remove src folder from kbn-h** pkgs" This reverts commitdcdf72bcc1
. * fix(NA): grammar location * test(NA): fix tests for kbn/config-schema * test(NA): fix tests for kbn/config-schema * chore(NA): multiple errors fixed * chore(NA): remove kuery grammar fix * fix(NA): @kbn/ace imports * fix(NA): grammar location * fix(NA): add missing files to tsconfigs * [CI] Auto-commit changed files from 'node scripts/build_plugin_list_docs' * chore(NA): complete tsconfigs * Revert "chore(NA): complete tsconfigs" This reverts commitf48c616864
. * chore(NA): remove src folder from kbn-core* pkgs * chore(NA): remove src folder from kbn-u* pkgs * chore(NA): remove src folder from kbn-ui-shared-deps* pkgs * chore(NA): fix problems on core pkgs * chore(NA): fix problems on core pkgs * [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' * fix(NA): shared_built_assets correct location' * test(NA): update @kbn/optimizer integration snapshots * chore(NA): remove src folder from kbn-t* p1 pkgs * chore(NA): remove src folder from kbn-t* p2 pkgs * chore(NA): update rootDir on utility types pkg * chore(NA): include missing files on @kbn/test * chore(NA): include missing files on @kbn/test * fix(NA): new jest preset paths on @kbn/test * chore(NA): fix eslint * fix(NA): new jest preset paths on @kbn/test * chore(NA): remove exclusion for mocks folde on @kbn/test * fix(NA): several imports from target_node * fix(NA): @kbn/test mocha and jest types clash * chore(NA): remove src folder from kbn-storybook pkg * chore(NA): remove src folder from kbn-stdio-dev-helpers pkg * chore(NA): remove src folder from kbn-std pkg * chore(NA): remove src folder from kbn-sort-pkg-json pkg * chore(NA): remove src folder from kbn-some-dev-log and kbn-shared-ux-utility pkgs * chore(NA): remove src folder from kbn-ux-storybook pkg * chore(NA): remove src folder from kbn-shared-ux-services pkg * chore(NA): remove src folder from kbn-shared-ux-components pkg * chore(NA): remove src folder from kbn-shared-svg pkg * chore(NA): remove src folder from kbn-server-http-tools pkg * chore(NA): remove src folder from kbn-securitysolution-* pkgs * chore(NA): remove src folder from kbn-r-* pkgs * chore(NA): remove src folder from kbn-p* pkgs * chore(NA): remove src folder from kbn-o* pkgs * chore(NA): remove src folder from kbn-m* pkgs * chore(NA): remove src folder from kbn-j,k,l* pkgs * chore(NA): remove src folder from kbn-j,k,l* pkgs * chore(NA): remove src folder from kbn-io-ts-utils* pkgs * chore(NA): remove src folder from kbn-* pkgs except a few * chore(NA): update @kbn/generate * fix(NA): wrong exclusion on kbn-storybook * chore(NA): remove src folder from kbn-monaco pkg * chore(NA): remove src folder from kbn-interpreter pkg * fix(NA): wrong exclusion on kbn-storybook * chore(NA): update every require for target_*/src * chore(NA): remover src folder from @kbn/handlebars * fix(NA): license for @kbn/handlebars * chore(NA): copy templates as part of the jsts_transpiler macro for @kbn/storybook * chore(NA): update handlebars * fix(NA): @kbn/plugin-generator import paths * fix(NA): bundle sizes * fix(NA): web bundle for @kbn/i18n-react * Revert "fix(NA): bundle sizes" This reverts commit8aefe84fbc
. * Revert "Revert "fix(NA): bundle sizes"" This reverts commite9d87d72a4
. * fix(NA): @kbn/docs-utils index.ts path expectation * chore(NA): merge and solve conflicts with main * fix(NA): relative import to index * chore(NA): merge and solve conflicts with main * [CI] Auto-commit changed files from 'node scripts/precommit_hook.js --ref HEAD~1..HEAD --fix' * chore(NA): apply eslint fix * [CI] Auto-commit changed files from 'node scripts/eslint --no-cache --fix' Co-authored-by: Kibana Machine <42973632+kibanamachine@users.noreply.github.com>
90 lines
3 KiB
TypeScript
90 lines
3 KiB
TypeScript
/*
|
|
* 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 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 or the Server
|
|
* Side Public License, v 1.
|
|
*/
|
|
|
|
import Path from 'path';
|
|
|
|
import { RepoSourceClassifier } from '@kbn/repo-source-classifier';
|
|
import { ImportResolver } from '@kbn/import-resolver';
|
|
import { REPO_ROOT } from '@kbn/utils';
|
|
import { getRepoFiles } from '@kbn/get-repo-files';
|
|
import { run } from '@kbn/dev-cli-runner';
|
|
import { createFlagError } from '@kbn/dev-cli-errors';
|
|
|
|
import { TypeTree } from './src/type_tree';
|
|
|
|
run(
|
|
async ({ flags }) => {
|
|
const resolver = ImportResolver.create(REPO_ROOT);
|
|
const classifier = new RepoSourceClassifier(resolver);
|
|
|
|
const include = flags._.length ? flags._ : [process.cwd()];
|
|
let exclude;
|
|
if (flags.exclude) {
|
|
if (Array.isArray(flags.exclude)) {
|
|
exclude = flags.exclude;
|
|
} else if (typeof flags.exclude === 'string') {
|
|
exclude = [flags.exclude];
|
|
} else {
|
|
throw createFlagError('expected --exclude value to be a string');
|
|
}
|
|
}
|
|
|
|
const typeFlags = String(flags.types)
|
|
.split(',')
|
|
.map((f) => f.trim())
|
|
.filter(Boolean);
|
|
|
|
const includeTypes: string[] = [];
|
|
const excludeTypes: string[] = [];
|
|
for (const type of typeFlags) {
|
|
if (type.startsWith('!')) {
|
|
excludeTypes.push(type.slice(1));
|
|
} else {
|
|
includeTypes.push(type);
|
|
}
|
|
}
|
|
|
|
const tree = new TypeTree();
|
|
const cwd = process.cwd();
|
|
for (const { abs } of await getRepoFiles(include, exclude)) {
|
|
const { type } = classifier.classify(abs);
|
|
if ((includeTypes.length && !includeTypes.includes(type)) || excludeTypes.includes(type)) {
|
|
continue;
|
|
}
|
|
|
|
tree.add(type, Path.relative(cwd, abs));
|
|
}
|
|
|
|
if (!!flags.flat) {
|
|
for (const file of tree.toList()) {
|
|
process.stdout.write(`${file}\n`);
|
|
}
|
|
} else {
|
|
process.stdout.write(tree.print({ expand: !!flags.expand }));
|
|
}
|
|
},
|
|
{
|
|
description: 'run the repo-source-classifier on the source files and produce a report',
|
|
usage: `node scripts/classify_source <...paths>`,
|
|
flags: {
|
|
string: ['exclude', 'types'],
|
|
boolean: ['expand', 'flat'],
|
|
help: `
|
|
<...paths> include paths to select specific files which should be reported
|
|
by default all files in the cwd are classified. Can be specified
|
|
multiple times
|
|
--exclude exclude specific paths from the classification. Can be specified
|
|
multiple times
|
|
--types limit the types reported to the types in this comma separated list
|
|
to exclude a type prefix it with !
|
|
--expand prevent collapsing entries that are of the same type
|
|
--flat just print file names
|
|
`,
|
|
},
|
|
}
|
|
);
|