@bemedev/codebase 0.1.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -8
- package/lib/_virtual/_rolldown/runtime.cjs +23 -0
- package/lib/analyse.cjs +48 -62
- package/lib/analyse.cjs.map +1 -1
- package/lib/analyse.d.ts +21 -3
- package/lib/analyse.js +45 -60
- package/lib/analyse.js.map +1 -1
- package/lib/analyse.utils.cjs +154 -205
- package/lib/analyse.utils.cjs.map +1 -1
- package/lib/analyse.utils.d.ts +1 -2
- package/lib/analyse.utils.js +153 -203
- package/lib/analyse.utils.js.map +1 -1
- package/lib/cli/cli.cjs +28 -27
- package/lib/cli/cli.cjs.map +1 -1
- package/lib/cli/cli.d.ts +0 -1
- package/lib/cli/cli.js +25 -24
- package/lib/cli/cli.js.map +1 -1
- package/lib/cli/constants.cjs +6 -5
- package/lib/cli/constants.cjs.map +1 -1
- package/lib/cli/constants.d.ts +0 -1
- package/lib/cli/constants.js +5 -3
- package/lib/cli/constants.js.map +1 -1
- package/lib/cli/index.cjs +6 -6
- package/lib/cli/index.cjs.map +1 -1
- package/lib/cli/index.d.ts +0 -1
- package/lib/cli/index.js +7 -4
- package/lib/cli/index.js.map +1 -1
- package/lib/constants.cjs +26 -28
- package/lib/constants.cjs.map +1 -1
- package/lib/constants.d.ts +0 -1
- package/lib/constants.js +24 -26
- package/lib/constants.js.map +1 -1
- package/lib/exports.cjs +51 -72
- package/lib/exports.cjs.map +1 -1
- package/lib/exports.d.ts +1 -2
- package/lib/exports.js +49 -70
- package/lib/exports.js.map +1 -1
- package/lib/functions/add.cjs +71 -84
- package/lib/functions/add.cjs.map +1 -1
- package/lib/functions/add.d.ts +1 -2
- package/lib/functions/add.js +68 -82
- package/lib/functions/add.js.map +1 -1
- package/lib/functions/generate.cjs +53 -56
- package/lib/functions/generate.cjs.map +1 -1
- package/lib/functions/generate.d.ts +1 -2
- package/lib/functions/generate.js +51 -54
- package/lib/functions/generate.js.map +1 -1
- package/lib/functions/index.cjs +11 -16
- package/lib/functions/index.d.ts +0 -1
- package/lib/functions/index.js +5 -5
- package/lib/functions/init.cjs +68 -97
- package/lib/functions/init.cjs.map +1 -1
- package/lib/functions/init.d.ts +0 -1
- package/lib/functions/init.js +66 -95
- package/lib/functions/init.js.map +1 -1
- package/lib/functions/remove.cjs +85 -103
- package/lib/functions/remove.cjs.map +1 -1
- package/lib/functions/remove.d.ts +1 -2
- package/lib/functions/remove.js +82 -101
- package/lib/functions/remove.js.map +1 -1
- package/lib/helpers.cjs +32 -38
- package/lib/helpers.cjs.map +1 -1
- package/lib/helpers.d.ts +3 -4
- package/lib/helpers.js +30 -36
- package/lib/helpers.js.map +1 -1
- package/lib/imports.cjs +88 -124
- package/lib/imports.cjs.map +1 -1
- package/lib/imports.d.ts +2 -3
- package/lib/imports.js +86 -122
- package/lib/imports.js.map +1 -1
- package/lib/index.cjs +22 -24
- package/lib/index.d.ts +4 -4
- package/lib/index.js +8 -6
- package/lib/schemas.cjs +53 -64
- package/lib/schemas.cjs.map +1 -1
- package/lib/schemas.d.ts +1 -2
- package/lib/schemas.js +43 -36
- package/lib/schemas.js.map +1 -1
- package/lib/types.d.ts +0 -1
- package/lib/utils.cjs +9 -10
- package/lib/utils.cjs.map +1 -1
- package/lib/utils.d.ts +0 -1
- package/lib/utils.js +8 -8
- package/lib/utils.js.map +1 -1
- package/package.json +56 -44
- package/CHANGE_LOG.md +0 -161
- package/lib/analyse.d.ts.map +0 -1
- package/lib/analyse.utils.d.ts.map +0 -1
- package/lib/cli/cli.d.ts.map +0 -1
- package/lib/cli/constants.d.ts.map +0 -1
- package/lib/cli/index.d.ts.map +0 -1
- package/lib/constants.d.ts.map +0 -1
- package/lib/exports.d.ts.map +0 -1
- package/lib/functions/add.d.ts.map +0 -1
- package/lib/functions/generate.d.ts.map +0 -1
- package/lib/functions/index.cjs.map +0 -1
- package/lib/functions/index.d.ts.map +0 -1
- package/lib/functions/index.js.map +0 -1
- package/lib/functions/init.d.ts.map +0 -1
- package/lib/functions/remove.d.ts.map +0 -1
- package/lib/helpers.d.ts.map +0 -1
- package/lib/imports.d.ts.map +0 -1
- package/lib/index.cjs.map +0 -1
- package/lib/index.d.ts.map +0 -1
- package/lib/index.js.map +0 -1
- package/lib/schemas.d.ts.map +0 -1
- package/lib/types.d.ts.map +0 -1
- package/lib/utils.d.ts.map +0 -1
package/README.md
CHANGED
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|

|
|
5
5
|

|
|
6
6
|
|
|
7
|
-
A powerful CLI to generate and analyze your TypeScript/JavaScript
|
|
8
|
-
This tool allows partial importing of libraries and generates
|
|
9
|
-
analyses of your source code.
|
|
7
|
+
A powerful CLI to generate and analyze your TypeScript/JavaScript
|
|
8
|
+
codebase. This tool allows partial importing of libraries and generates
|
|
9
|
+
comprehensive analyses of your source code.
|
|
10
10
|
|
|
11
11
|
## 🚀 Main Features
|
|
12
12
|
|
|
@@ -71,15 +71,15 @@ pnpm add -D @bemedev/codebase
|
|
|
71
71
|
### Programmatic API
|
|
72
72
|
|
|
73
73
|
```typescript
|
|
74
|
-
import { generate, analyze } from
|
|
74
|
+
import { generate, analyze } from "@bemedev/codebase";
|
|
75
75
|
|
|
76
76
|
// Analyze the codebase
|
|
77
|
-
const analysis = analyze(
|
|
77
|
+
const analysis = analyze("src");
|
|
78
78
|
|
|
79
79
|
// Generate an analysis file
|
|
80
80
|
await generate({
|
|
81
|
-
output:
|
|
82
|
-
excludes: [
|
|
81
|
+
output: "my-codebase.json",
|
|
82
|
+
excludes: ["node_modules", "dist"],
|
|
83
83
|
});
|
|
84
84
|
```
|
|
85
85
|
|
|
@@ -192,7 +192,7 @@ If you find a bug, please
|
|
|
192
192
|
|
|
193
193
|
<br/>
|
|
194
194
|
|
|
195
|
-
## [
|
|
195
|
+
## [CHANGELOG](CHANGELOG.md)
|
|
196
196
|
|
|
197
197
|
<br/>
|
|
198
198
|
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region \0rolldown/runtime.js
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __copyProps = (to, from, except, desc) => {
|
|
9
|
+
if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
|
|
10
|
+
key = keys[i];
|
|
11
|
+
if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
|
|
12
|
+
get: ((k) => from[k]).bind(null, key),
|
|
13
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
|
|
19
|
+
value: mod,
|
|
20
|
+
enumerable: true
|
|
21
|
+
}) : target, mod));
|
|
22
|
+
//#endregion
|
|
23
|
+
exports.__toESM = __toESM;
|
package/lib/analyse.cjs
CHANGED
|
@@ -1,68 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_utils = require("./utils.cjs");
|
|
4
|
+
const require_constants = require("./constants.cjs");
|
|
5
|
+
const require_schemas = require("./schemas.cjs");
|
|
6
|
+
const require_analyse_utils = require("./analyse.utils.cjs");
|
|
7
|
+
const require_exports = require("./exports.cjs");
|
|
8
|
+
const require_helpers = require("./helpers.cjs");
|
|
9
|
+
const require_imports = require("./imports.cjs");
|
|
10
|
+
let valibot = require("valibot");
|
|
11
|
+
valibot = require_runtime.__toESM(valibot);
|
|
12
|
+
let path = require("path");
|
|
13
|
+
let ts_morph = require("ts-morph");
|
|
14
|
+
//#region src/analyse.ts
|
|
12
15
|
/**
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const analyze = ({ src =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const relativePath = path.relative(src, filePath);
|
|
34
|
-
// Générer le texte modifié avec JSDoc pour les exports
|
|
35
|
-
const _text = analyse_utils.addJSDocToSourceText(sourceFile);
|
|
36
|
-
// #region Analyser les imports et exports
|
|
37
|
-
const imports$1 = imports.analyzeImports(sourceFile);
|
|
38
|
-
const exports$1 = _exports.analyzeExports(sourceFile);
|
|
39
|
-
// #endregion
|
|
40
|
-
// Construire les imports à partir de fileAnalysis.imports
|
|
41
|
-
const importsStrings = imports.buildImportStrings(imports$1);
|
|
42
|
-
// Combiner imports et contenu
|
|
43
|
-
const importsSection = importsStrings.length > 0 ? importsStrings.join('\n') : '';
|
|
44
|
-
const text = importsSection === ''
|
|
45
|
-
? _text
|
|
46
|
-
: `${importsSection}
|
|
16
|
+
* Analyse tous les fichiers TypeScript dans src/ (sauf src/scripts/)
|
|
17
|
+
*/
|
|
18
|
+
const analyze = ({ src = require_constants.SRC_DIR, excludes: _excludes } = {}) => {
|
|
19
|
+
console.log("🔍 Analyse du codebase en cours...");
|
|
20
|
+
const excludes = require_helpers.toArray(_excludes);
|
|
21
|
+
const sourceFiles = new ts_morph.Project({ tsConfigFilePath: (0, path.join)(process.cwd(), "tsconfig.json") }).addSourceFilesAtPaths([
|
|
22
|
+
`${src}/**/*.ts`,
|
|
23
|
+
`!${src}/**/*.test.ts`,
|
|
24
|
+
`!${src}/**/*.spec.ts`
|
|
25
|
+
].concat(excludes.map((exclude) => `!${exclude}`)));
|
|
26
|
+
const analysis = {};
|
|
27
|
+
let processedCount = 0;
|
|
28
|
+
for (const sourceFile of sourceFiles) {
|
|
29
|
+
const relativePath = (0, path.relative)(src, sourceFile.getFilePath());
|
|
30
|
+
const _text = require_analyse_utils.addJSDocToSourceText(sourceFile);
|
|
31
|
+
const imports = require_imports.analyzeImports(sourceFile);
|
|
32
|
+
const exports = require_exports.analyzeExports(sourceFile);
|
|
33
|
+
const importsStrings = require_imports.buildImportStrings(imports);
|
|
34
|
+
const importsSection = importsStrings.length > 0 ? importsStrings.join("\n") : "";
|
|
35
|
+
const text = importsSection === "" ? _text : `${importsSection}
|
|
47
36
|
|
|
48
37
|
${_text}
|
|
49
38
|
`;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
// #endregion
|
|
62
|
-
}
|
|
63
|
-
console.log(`✅ Analyse terminée: ${processedCount} fichiers analysés`);
|
|
64
|
-
return analysis;
|
|
39
|
+
analysis[require_utils.pathToDotNotation(relativePath)] = {
|
|
40
|
+
relativePath,
|
|
41
|
+
imports,
|
|
42
|
+
exports,
|
|
43
|
+
text
|
|
44
|
+
};
|
|
45
|
+
processedCount++;
|
|
46
|
+
if (processedCount % 50 === 0) console.log(`📊 Analysé ${processedCount}/${sourceFiles.length} fichiers...`);
|
|
47
|
+
}
|
|
48
|
+
console.log(`✅ Analyse terminée: ${processedCount} fichiers analysés`);
|
|
49
|
+
return valibot.parse(require_schemas.CodebaseAnalysisSchema, analysis);
|
|
65
50
|
};
|
|
66
|
-
|
|
51
|
+
//#endregion
|
|
67
52
|
exports.analyze = analyze;
|
|
68
|
-
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=analyse.cjs.map
|
package/lib/analyse.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyse.cjs","sources":["../src/analyse.ts"],"sourcesContent":["import { join, relative } from
|
|
1
|
+
{"version":3,"file":"analyse.cjs","names":["SRC_DIR","toArray","Project","addJSDocToSourceText","analyzeImports","analyzeExports","buildImportStrings","pathToDotNotation","v","CodebaseAnalysisSchema"],"sources":["../src/analyse.ts"],"sourcesContent":["import { join, relative } from \"path\";\nimport { Project } from \"ts-morph\";\nimport * as v from \"valibot\";\nimport { addJSDocToSourceText } from \"./analyse.utils\";\nimport { SRC_DIR } from \"./constants\";\nimport { analyzeExports } from \"./exports\";\nimport { toArray } from \"./helpers\";\nimport { analyzeImports, buildImportStrings } from \"./imports\";\nimport { CodebaseAnalysisSchema } from \"./schemas\";\nimport { pathToDotNotation } from \"./utils\";\n\nexport type AnalyzeOptions = {\n src?: string;\n excludes?: string | string[];\n};\n\n/**\n * Analyse tous les fichiers TypeScript dans src/ (sauf src/scripts/)\n */\nexport const analyze = ({\n src = SRC_DIR,\n excludes: _excludes,\n}: AnalyzeOptions = {}) => {\n console.log(\"🔍 Analyse du codebase en cours...\");\n const excludes = toArray(_excludes);\n\n // Initialiser le projet ts-morph\n const project = new Project({\n tsConfigFilePath: join(process.cwd(), \"tsconfig.json\"),\n });\n\n // Ajouter tous les fichiers TypeScript du dossier src\n const sourceFiles = project.addSourceFilesAtPaths(\n [\n `${src}/**/*.ts`,\n `!${src}/**/*.test.ts`, // Exclude test files\n `!${src}/**/*.spec.ts`, // Exclude spec files\n ].concat(excludes.map((exclude) => `!${exclude}`)),\n );\n\n const analysis: v.InferInput<typeof CodebaseAnalysisSchema> = {};\n let processedCount = 0;\n\n for (const sourceFile of sourceFiles) {\n const filePath = sourceFile.getFilePath();\n const relativePath = relative(src, filePath);\n\n // Générer le texte modifié avec JSDoc pour les exports\n\n const _text = addJSDocToSourceText(sourceFile);\n\n // #region Analyser les imports et exports\n const imports = analyzeImports(sourceFile);\n const exports = analyzeExports(sourceFile);\n // #endregion\n\n // Construire les imports à partir de fileAnalysis.imports\n const importsStrings = buildImportStrings(imports);\n\n // Combiner imports et contenu\n const importsSection =\n importsStrings.length > 0 ? importsStrings.join(\"\\n\") : \"\";\n\n const text =\n importsSection === \"\"\n ? _text\n : `${importsSection}\n\n${_text}\n `;\n\n analysis[pathToDotNotation(relativePath)] = {\n relativePath,\n imports,\n exports,\n text,\n };\n\n processedCount++;\n\n // #region Afficher l'avancement de l'analyse par palliers de 50\n if (processedCount % 50 === 0) {\n console.log(\n `📊 Analysé ${processedCount}/${sourceFiles.length} fichiers...`,\n );\n }\n // #endregion\n }\n\n console.log(`✅ Analyse terminée: ${processedCount} fichiers analysés`);\n return v.parse(CodebaseAnalysisSchema, analysis);\n};\n"],"mappings":";;;;;;;;;;;;;;;;;AAmBA,MAAa,WAAW,EACtB,MAAMA,kBAAAA,SACN,UAAU,cACQ,EAAE,KAAK;AACzB,SAAQ,IAAI,qCAAqC;CACjD,MAAM,WAAWC,gBAAAA,QAAQ,UAAU;CAQnC,MAAM,cALU,IAAIC,SAAAA,QAAQ,EAC1B,mBAAA,GAAA,KAAA,MAAuB,QAAQ,KAAK,EAAE,gBAAgB,EACvD,CAAC,CAG0B,sBAC1B;EACE,GAAG,IAAI;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACT,CAAC,OAAO,SAAS,KAAK,YAAY,IAAI,UAAU,CAAC,CACnD;CAED,MAAM,WAAwD,EAAE;CAChE,IAAI,iBAAiB;AAErB,MAAK,MAAM,cAAc,aAAa;EAEpC,MAAM,gBAAA,GAAA,KAAA,UAAwB,KADb,WAAW,aAAa,CACG;EAI5C,MAAM,QAAQC,sBAAAA,qBAAqB,WAAW;EAG9C,MAAM,UAAUC,gBAAAA,eAAe,WAAW;EAC1C,MAAM,UAAUC,gBAAAA,eAAe,WAAW;EAI1C,MAAM,iBAAiBC,gBAAAA,mBAAmB,QAAQ;EAGlD,MAAM,iBACJ,eAAe,SAAS,IAAI,eAAe,KAAK,KAAK,GAAG;EAE1D,MAAM,OACJ,mBAAmB,KACf,QACA,GAAG,eAAe;;EAE1B,MAAM;;AAGJ,WAASC,cAAAA,kBAAkB,aAAa,IAAI;GAC1C;GACA;GACA;GACA;GACD;AAED;AAGA,MAAI,iBAAiB,OAAO,EAC1B,SAAQ,IACN,cAAc,eAAe,GAAG,YAAY,OAAO,cACpD;;AAKL,SAAQ,IAAI,uBAAuB,eAAe,oBAAoB;AACtE,QAAOC,QAAE,MAAMC,gBAAAA,wBAAwB,SAAS"}
|
package/lib/analyse.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { CodebaseAnalysis } from './schemas';
|
|
2
1
|
export type AnalyzeOptions = {
|
|
3
2
|
src?: string;
|
|
4
3
|
excludes?: string | string[];
|
|
@@ -6,5 +5,24 @@ export type AnalyzeOptions = {
|
|
|
6
5
|
/**
|
|
7
6
|
* Analyse tous les fichiers TypeScript dans src/ (sauf src/scripts/)
|
|
8
7
|
*/
|
|
9
|
-
export declare const analyze: ({ src, excludes: _excludes, }?: AnalyzeOptions) =>
|
|
10
|
-
|
|
8
|
+
export declare const analyze: ({ src, excludes: _excludes, }?: AnalyzeOptions) => {
|
|
9
|
+
[x: string]: {
|
|
10
|
+
relativePath: string;
|
|
11
|
+
imports: {
|
|
12
|
+
moduleSpecifier: string;
|
|
13
|
+
kind: "default" | "named" | "namespace" | "side-effect";
|
|
14
|
+
namedImports?: string[] | undefined;
|
|
15
|
+
default?: string | undefined;
|
|
16
|
+
isDynamic?: boolean | undefined;
|
|
17
|
+
isTypeOnly?: boolean | undefined;
|
|
18
|
+
}[];
|
|
19
|
+
exports?: {
|
|
20
|
+
name: string;
|
|
21
|
+
kind: "default" | "named" | "namespace";
|
|
22
|
+
text?: string | undefined;
|
|
23
|
+
moduleSpecifier?: string | undefined;
|
|
24
|
+
declarationKind?: "function" | "class" | "variable" | "interface" | "type" | "enum" | "const" | "let" | undefined;
|
|
25
|
+
}[] | undefined;
|
|
26
|
+
text: string;
|
|
27
|
+
};
|
|
28
|
+
};
|
package/lib/analyse.js
CHANGED
|
@@ -1,66 +1,51 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import { analyzeExports } from
|
|
6
|
-
import { toArray } from
|
|
7
|
-
import { analyzeImports, buildImportStrings } from
|
|
8
|
-
import
|
|
9
|
-
|
|
1
|
+
import { pathToDotNotation } from "./utils.js";
|
|
2
|
+
import { SRC_DIR } from "./constants.js";
|
|
3
|
+
import { CodebaseAnalysisSchema } from "./schemas.js";
|
|
4
|
+
import { addJSDocToSourceText } from "./analyse.utils.js";
|
|
5
|
+
import { analyzeExports } from "./exports.js";
|
|
6
|
+
import { toArray } from "./helpers.js";
|
|
7
|
+
import { analyzeImports, buildImportStrings } from "./imports.js";
|
|
8
|
+
import * as v from "valibot";
|
|
9
|
+
import { join, relative } from "path";
|
|
10
|
+
import { Project } from "ts-morph";
|
|
11
|
+
//#region src/analyse.ts
|
|
10
12
|
/**
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
const analyze = ({ src = SRC_DIR, excludes: _excludes
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
const relativePath = relative(src, filePath);
|
|
32
|
-
// Générer le texte modifié avec JSDoc pour les exports
|
|
33
|
-
const _text = addJSDocToSourceText(sourceFile);
|
|
34
|
-
// #region Analyser les imports et exports
|
|
35
|
-
const imports = analyzeImports(sourceFile);
|
|
36
|
-
const exports$1 = analyzeExports(sourceFile);
|
|
37
|
-
// #endregion
|
|
38
|
-
// Construire les imports à partir de fileAnalysis.imports
|
|
39
|
-
const importsStrings = buildImportStrings(imports);
|
|
40
|
-
// Combiner imports et contenu
|
|
41
|
-
const importsSection = importsStrings.length > 0 ? importsStrings.join('\n') : '';
|
|
42
|
-
const text = importsSection === ''
|
|
43
|
-
? _text
|
|
44
|
-
: `${importsSection}
|
|
13
|
+
* Analyse tous les fichiers TypeScript dans src/ (sauf src/scripts/)
|
|
14
|
+
*/
|
|
15
|
+
const analyze = ({ src = SRC_DIR, excludes: _excludes } = {}) => {
|
|
16
|
+
console.log("🔍 Analyse du codebase en cours...");
|
|
17
|
+
const excludes = toArray(_excludes);
|
|
18
|
+
const sourceFiles = new Project({ tsConfigFilePath: join(process.cwd(), "tsconfig.json") }).addSourceFilesAtPaths([
|
|
19
|
+
`${src}/**/*.ts`,
|
|
20
|
+
`!${src}/**/*.test.ts`,
|
|
21
|
+
`!${src}/**/*.spec.ts`
|
|
22
|
+
].concat(excludes.map((exclude) => `!${exclude}`)));
|
|
23
|
+
const analysis = {};
|
|
24
|
+
let processedCount = 0;
|
|
25
|
+
for (const sourceFile of sourceFiles) {
|
|
26
|
+
const relativePath = relative(src, sourceFile.getFilePath());
|
|
27
|
+
const _text = addJSDocToSourceText(sourceFile);
|
|
28
|
+
const imports = analyzeImports(sourceFile);
|
|
29
|
+
const exports = analyzeExports(sourceFile);
|
|
30
|
+
const importsStrings = buildImportStrings(imports);
|
|
31
|
+
const importsSection = importsStrings.length > 0 ? importsStrings.join("\n") : "";
|
|
32
|
+
const text = importsSection === "" ? _text : `${importsSection}
|
|
45
33
|
|
|
46
34
|
${_text}
|
|
47
35
|
`;
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
// #endregion
|
|
60
|
-
}
|
|
61
|
-
console.log(`✅ Analyse terminée: ${processedCount} fichiers analysés`);
|
|
62
|
-
return analysis;
|
|
36
|
+
analysis[pathToDotNotation(relativePath)] = {
|
|
37
|
+
relativePath,
|
|
38
|
+
imports,
|
|
39
|
+
exports,
|
|
40
|
+
text
|
|
41
|
+
};
|
|
42
|
+
processedCount++;
|
|
43
|
+
if (processedCount % 50 === 0) console.log(`📊 Analysé ${processedCount}/${sourceFiles.length} fichiers...`);
|
|
44
|
+
}
|
|
45
|
+
console.log(`✅ Analyse terminée: ${processedCount} fichiers analysés`);
|
|
46
|
+
return v.parse(CodebaseAnalysisSchema, analysis);
|
|
63
47
|
};
|
|
64
|
-
|
|
48
|
+
//#endregion
|
|
65
49
|
export { analyze };
|
|
66
|
-
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=analyse.js.map
|
package/lib/analyse.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analyse.js","sources":["../src/analyse.ts"],"sourcesContent":["import { join, relative } from
|
|
1
|
+
{"version":3,"file":"analyse.js","names":[],"sources":["../src/analyse.ts"],"sourcesContent":["import { join, relative } from \"path\";\nimport { Project } from \"ts-morph\";\nimport * as v from \"valibot\";\nimport { addJSDocToSourceText } from \"./analyse.utils\";\nimport { SRC_DIR } from \"./constants\";\nimport { analyzeExports } from \"./exports\";\nimport { toArray } from \"./helpers\";\nimport { analyzeImports, buildImportStrings } from \"./imports\";\nimport { CodebaseAnalysisSchema } from \"./schemas\";\nimport { pathToDotNotation } from \"./utils\";\n\nexport type AnalyzeOptions = {\n src?: string;\n excludes?: string | string[];\n};\n\n/**\n * Analyse tous les fichiers TypeScript dans src/ (sauf src/scripts/)\n */\nexport const analyze = ({\n src = SRC_DIR,\n excludes: _excludes,\n}: AnalyzeOptions = {}) => {\n console.log(\"🔍 Analyse du codebase en cours...\");\n const excludes = toArray(_excludes);\n\n // Initialiser le projet ts-morph\n const project = new Project({\n tsConfigFilePath: join(process.cwd(), \"tsconfig.json\"),\n });\n\n // Ajouter tous les fichiers TypeScript du dossier src\n const sourceFiles = project.addSourceFilesAtPaths(\n [\n `${src}/**/*.ts`,\n `!${src}/**/*.test.ts`, // Exclude test files\n `!${src}/**/*.spec.ts`, // Exclude spec files\n ].concat(excludes.map((exclude) => `!${exclude}`)),\n );\n\n const analysis: v.InferInput<typeof CodebaseAnalysisSchema> = {};\n let processedCount = 0;\n\n for (const sourceFile of sourceFiles) {\n const filePath = sourceFile.getFilePath();\n const relativePath = relative(src, filePath);\n\n // Générer le texte modifié avec JSDoc pour les exports\n\n const _text = addJSDocToSourceText(sourceFile);\n\n // #region Analyser les imports et exports\n const imports = analyzeImports(sourceFile);\n const exports = analyzeExports(sourceFile);\n // #endregion\n\n // Construire les imports à partir de fileAnalysis.imports\n const importsStrings = buildImportStrings(imports);\n\n // Combiner imports et contenu\n const importsSection =\n importsStrings.length > 0 ? importsStrings.join(\"\\n\") : \"\";\n\n const text =\n importsSection === \"\"\n ? _text\n : `${importsSection}\n\n${_text}\n `;\n\n analysis[pathToDotNotation(relativePath)] = {\n relativePath,\n imports,\n exports,\n text,\n };\n\n processedCount++;\n\n // #region Afficher l'avancement de l'analyse par palliers de 50\n if (processedCount % 50 === 0) {\n console.log(\n `📊 Analysé ${processedCount}/${sourceFiles.length} fichiers...`,\n );\n }\n // #endregion\n }\n\n console.log(`✅ Analyse terminée: ${processedCount} fichiers analysés`);\n return v.parse(CodebaseAnalysisSchema, analysis);\n};\n"],"mappings":";;;;;;;;;;;;;;AAmBA,MAAa,WAAW,EACtB,MAAM,SACN,UAAU,cACQ,EAAE,KAAK;AACzB,SAAQ,IAAI,qCAAqC;CACjD,MAAM,WAAW,QAAQ,UAAU;CAQnC,MAAM,cALU,IAAI,QAAQ,EAC1B,kBAAkB,KAAK,QAAQ,KAAK,EAAE,gBAAgB,EACvD,CAAC,CAG0B,sBAC1B;EACE,GAAG,IAAI;EACP,IAAI,IAAI;EACR,IAAI,IAAI;EACT,CAAC,OAAO,SAAS,KAAK,YAAY,IAAI,UAAU,CAAC,CACnD;CAED,MAAM,WAAwD,EAAE;CAChE,IAAI,iBAAiB;AAErB,MAAK,MAAM,cAAc,aAAa;EAEpC,MAAM,eAAe,SAAS,KADb,WAAW,aAAa,CACG;EAI5C,MAAM,QAAQ,qBAAqB,WAAW;EAG9C,MAAM,UAAU,eAAe,WAAW;EAC1C,MAAM,UAAU,eAAe,WAAW;EAI1C,MAAM,iBAAiB,mBAAmB,QAAQ;EAGlD,MAAM,iBACJ,eAAe,SAAS,IAAI,eAAe,KAAK,KAAK,GAAG;EAE1D,MAAM,OACJ,mBAAmB,KACf,QACA,GAAG,eAAe;;EAE1B,MAAM;;AAGJ,WAAS,kBAAkB,aAAa,IAAI;GAC1C;GACA;GACA;GACA;GACD;AAED;AAGA,MAAI,iBAAiB,OAAO,EAC1B,SAAQ,IACN,cAAc,eAAe,GAAG,YAAY,OAAO,cACpD;;AAKL,SAAQ,IAAI,uBAAuB,eAAe,oBAAoB;AACtE,QAAO,EAAE,MAAM,wBAAwB,SAAS"}
|