@bemedev/codebase 0.1.2 → 0.2.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 +1 -2
- 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 -118
- package/lib/imports.cjs.map +1 -1
- package/lib/imports.d.ts +2 -3
- package/lib/imports.js +86 -116
- 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 -63
- package/lib/schemas.cjs.map +1 -1
- package/lib/schemas.d.ts +5 -2
- package/lib/schemas.js +43 -35
- 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 -143
- 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/lib/functions/add.cjs
CHANGED
|
@@ -1,89 +1,76 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_constants = require("../constants.cjs");
|
|
4
|
+
const require_helpers = require("../helpers.cjs");
|
|
5
|
+
let path = require("path");
|
|
6
|
+
let edit_json_file = require("edit-json-file");
|
|
7
|
+
edit_json_file = require_runtime.__toESM(edit_json_file);
|
|
8
|
+
//#region src/functions/add.ts
|
|
8
9
|
const processFileAnalysis = (analysis, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
});
|
|
36
|
-
const toAdd2 = { ...toAdd, imports };
|
|
37
|
-
const canRecurse = toAdd2.imports.length > 0;
|
|
38
|
-
if (canRecurse) {
|
|
39
|
-
processFileAnalysis(toAdd2, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS);
|
|
40
|
-
}
|
|
41
|
-
});
|
|
10
|
+
const relativePath = analysis.relativePath;
|
|
11
|
+
const keys = Object.keys(CODEBASE_ANALYSIS);
|
|
12
|
+
analysis.imports.forEach(({ moduleSpecifier }) => {
|
|
13
|
+
const _path = (0, path.relative)(cwd, (0, path.resolve)((0, path.dirname)(relativePath), moduleSpecifier)).replaceAll("/", ".");
|
|
14
|
+
const all = additionals.concat(pathsEntries).map(([key]) => key).concat(files);
|
|
15
|
+
if (!all.every((p) => p !== _path)) return;
|
|
16
|
+
const toAdd = CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];
|
|
17
|
+
if (!toAdd) return;
|
|
18
|
+
additionals.push([_path, toAdd]);
|
|
19
|
+
all.push(_path);
|
|
20
|
+
const imports = toAdd.imports.filter(({ moduleSpecifier }) => {
|
|
21
|
+
const _path = require_helpers.transformModule({
|
|
22
|
+
cwd,
|
|
23
|
+
relativePath: toAdd.relativePath,
|
|
24
|
+
moduleSpecifier
|
|
25
|
+
});
|
|
26
|
+
const array = [_path, `${_path}.index`].filter((p) => keys.includes(p));
|
|
27
|
+
if (array.length < 1) return false;
|
|
28
|
+
return array.every((p) => !all.includes(p));
|
|
29
|
+
});
|
|
30
|
+
const toAdd2 = {
|
|
31
|
+
...toAdd,
|
|
32
|
+
imports
|
|
33
|
+
};
|
|
34
|
+
if (toAdd2.imports.length > 0) processFileAnalysis(toAdd2, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS);
|
|
35
|
+
});
|
|
42
36
|
};
|
|
43
37
|
const add = (CODEBASE_ANALYSIS, ...paths) => {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
file = undefined;
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
console.error(`❌ Erreur lors de la création des fichiers`);
|
|
82
|
-
return false;
|
|
83
|
-
}
|
|
84
|
-
helpers.consoleStars();
|
|
85
|
-
return true;
|
|
38
|
+
if (paths.length === 0) return console.warn("No files specified for addition.");
|
|
39
|
+
try {
|
|
40
|
+
const cwd = process.cwd();
|
|
41
|
+
let file = (0, edit_json_file.default)((0, path.join)(cwd, require_constants.JSON_FILE_NAME));
|
|
42
|
+
if (!file) return;
|
|
43
|
+
const files = file.get(require_constants.FILES_PROPERTY);
|
|
44
|
+
const root = require_helpers.getFolderPath(file.get(require_constants.PATH_PROPERTY));
|
|
45
|
+
const additionals = [];
|
|
46
|
+
const pathsEntries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => paths.some((p) => key.startsWith(p))).filter(([key]) => !files.includes(key));
|
|
47
|
+
pathsEntries.forEach(([, analysis]) => {
|
|
48
|
+
processFileAnalysis(analysis, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS);
|
|
49
|
+
});
|
|
50
|
+
const entries = new Set(pathsEntries.concat(additionals).filter(([, val]) => !!val));
|
|
51
|
+
require_helpers.consoleStars();
|
|
52
|
+
console.log(`🔧 Création des fichiers (${entries.size} fichiers)...`);
|
|
53
|
+
let success = 0;
|
|
54
|
+
const length = entries.size;
|
|
55
|
+
entries.forEach(([, fileAnalysis]) => {
|
|
56
|
+
const _path = require_helpers.writeFileAnalysis(fileAnalysis, root);
|
|
57
|
+
if (_path) {
|
|
58
|
+
files.push(_path);
|
|
59
|
+
file?.set(require_constants.FILES_PROPERTY, files);
|
|
60
|
+
success++;
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
file.save();
|
|
64
|
+
console.log(`✅ Fichiers créés! (${success}/${length})`);
|
|
65
|
+
file = void 0;
|
|
66
|
+
} catch {
|
|
67
|
+
console.error(`❌ Erreur lors de la création des fichiers`);
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
require_helpers.consoleStars();
|
|
71
|
+
return true;
|
|
86
72
|
};
|
|
87
|
-
|
|
73
|
+
//#endregion
|
|
88
74
|
exports.add = add;
|
|
89
|
-
|
|
75
|
+
|
|
76
|
+
//# sourceMappingURL=add.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.cjs","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from
|
|
1
|
+
{"version":3,"file":"add.cjs","names":["transformModule","JSON_FILE_NAME","FILES_PROPERTY","getFolderPath","PATH_PROPERTY","writeFileAnalysis"],"sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from \"edit-json-file\";\nimport { dirname, join, relative, resolve } from \"node:path\";\nimport { FILES_PROPERTY, JSON_FILE_NAME, PATH_PROPERTY } from \"../constants\";\nimport {\n consoleStars,\n getFolderPath,\n transformModule,\n writeFileAnalysis,\n} from \"../helpers\";\nimport { CodebaseAnalysis, type FileAnalysis } from \"../schemas\";\nimport type { NOmit } from \"../types\";\n\nconst processFileAnalysis = (\n analysis: NOmit<FileAnalysis, \"exports\">,\n cwd: string,\n additionals: [string, NOmit<FileAnalysis, \"exports\">][],\n pathsEntries: [string, NOmit<FileAnalysis, \"exports\">][],\n files: string[],\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const relativePath = analysis.relativePath;\n\n const keys = Object.keys(CODEBASE_ANALYSIS);\n analysis.imports.forEach(({ moduleSpecifier }) => {\n const _path = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll(\"/\", \".\");\n\n const all = additionals\n .concat(pathsEntries)\n .map(([key]) => key)\n .concat(files);\n\n const canAdd = all.every((p) => p !== _path);\n if (!canAdd) return;\n\n const toAdd =\n CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];\n if (!toAdd) return;\n\n additionals.push([_path, toAdd]);\n all.push(_path);\n\n const imports = toAdd.imports.filter(({ moduleSpecifier }) => {\n const _path = transformModule({\n cwd,\n relativePath: toAdd.relativePath,\n moduleSpecifier,\n });\n\n const array = [_path, `${_path}.index`].filter((p) => keys.includes(p));\n\n if (array.length < 1) return false;\n\n return array.every((p) => !all.includes(p));\n });\n\n const toAdd2 = { ...toAdd, imports };\n const canRecurse = toAdd2.imports.length > 0;\n\n if (canRecurse) {\n processFileAnalysis(\n toAdd2,\n cwd,\n additionals,\n pathsEntries,\n files,\n CODEBASE_ANALYSIS,\n );\n }\n });\n};\n\nexport const add = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn(\"No files specified for addition.\");\n try {\n const cwd = process.cwd();\n const json = join(cwd, JSON_FILE_NAME);\n let file: JsonEditor | undefined = edit(json);\n\n if (!file) return;\n\n const files = file.get(FILES_PROPERTY) as string[];\n const root = getFolderPath(file.get(PATH_PROPERTY) as string);\n\n // Release resources\n\n const additionals: [string, NOmit<FileAnalysis, \"exports\">][] = [];\n\n const pathsEntries = Object.entries(CODEBASE_ANALYSIS)\n .filter(([key]) => paths.some((p) => key.startsWith(p)))\n .filter(([key]) => !files.includes(key));\n\n pathsEntries.forEach(([, analysis]) => {\n processFileAnalysis(\n analysis,\n cwd,\n additionals,\n pathsEntries,\n files,\n CODEBASE_ANALYSIS,\n );\n });\n\n const entries = new Set(\n pathsEntries.concat(additionals).filter(([, val]) => !!val),\n );\n\n consoleStars();\n console.log(`🔧 Création des fichiers (${entries.size} fichiers)...`);\n\n let success = 0;\n const length = entries.size;\n\n entries.forEach(([, fileAnalysis]) => {\n const _path = writeFileAnalysis(fileAnalysis, root);\n if (_path) {\n files.push(_path);\n file?.set(FILES_PROPERTY, files);\n success++;\n }\n });\n\n file.save();\n console.log(`✅ Fichiers créés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n return false;\n }\n\n consoleStars();\n return true;\n};\n"],"mappings":";;;;;;;;AAYA,MAAM,uBACJ,UACA,KACA,aACA,cACA,OACA,sBACG;CACH,MAAM,eAAe,SAAS;CAE9B,MAAM,OAAO,OAAO,KAAK,kBAAkB;AAC3C,UAAS,QAAQ,SAAS,EAAE,sBAAsB;EAChD,MAAM,SAAA,GAAA,KAAA,UACJ,MAAA,GAAA,KAAA,UAAA,GAAA,KAAA,SACgB,aAAa,EAAE,gBAAgB,CAChD,CAAC,WAAW,KAAK,IAAI;EAEtB,MAAM,MAAM,YACT,OAAO,aAAa,CACpB,KAAK,CAAC,SAAS,IAAI,CACnB,OAAO,MAAM;AAGhB,MAAI,CADW,IAAI,OAAO,MAAM,MAAM,MAAM,CAC/B;EAEb,MAAM,QACJ,kBAAkB,UAAU,kBAAkB,GAAG,MAAM;AACzD,MAAI,CAAC,MAAO;AAEZ,cAAY,KAAK,CAAC,OAAO,MAAM,CAAC;AAChC,MAAI,KAAK,MAAM;EAEf,MAAM,UAAU,MAAM,QAAQ,QAAQ,EAAE,sBAAsB;GAC5D,MAAM,QAAQA,gBAAAA,gBAAgB;IAC5B;IACA,cAAc,MAAM;IACpB;IACD,CAAC;GAEF,MAAM,QAAQ,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,MAAM,KAAK,SAAS,EAAE,CAAC;AAEvE,OAAI,MAAM,SAAS,EAAG,QAAO;AAE7B,UAAO,MAAM,OAAO,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;IAC3C;EAEF,MAAM,SAAS;GAAE,GAAG;GAAO;GAAS;AAGpC,MAFmB,OAAO,QAAQ,SAAS,EAGzC,qBACE,QACA,KACA,aACA,cACA,OACA,kBACD;GAEH;;AAGJ,MAAa,OACX,mBACA,GAAG,UACA;AAEH,KADgB,MAAM,WAAW,EACpB,QAAO,QAAQ,KAAK,mCAAmC;AACpE,KAAI;EACF,MAAM,MAAM,QAAQ,KAAK;EAEzB,IAAI,QAAA,GAAA,eAAA,UAAA,GAAA,KAAA,MADc,KAAKC,kBAAAA,eAAe,CACO;AAE7C,MAAI,CAAC,KAAM;EAEX,MAAM,QAAQ,KAAK,IAAIC,kBAAAA,eAAe;EACtC,MAAM,OAAOC,gBAAAA,cAAc,KAAK,IAAIC,kBAAAA,cAAc,CAAW;EAI7D,MAAM,cAA0D,EAAE;EAElE,MAAM,eAAe,OAAO,QAAQ,kBAAkB,CACnD,QAAQ,CAAC,SAAS,MAAM,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC,CACvD,QAAQ,CAAC,SAAS,CAAC,MAAM,SAAS,IAAI,CAAC;AAE1C,eAAa,SAAS,GAAG,cAAc;AACrC,uBACE,UACA,KACA,aACA,cACA,OACA,kBACD;IACD;EAEF,MAAM,UAAU,IAAI,IAClB,aAAa,OAAO,YAAY,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,IAAI,CAC5D;AAED,kBAAA,cAAc;AACd,UAAQ,IAAI,6BAA6B,QAAQ,KAAK,eAAe;EAErE,IAAI,UAAU;EACd,MAAM,SAAS,QAAQ;AAEvB,UAAQ,SAAS,GAAG,kBAAkB;GACpC,MAAM,QAAQC,gBAAAA,kBAAkB,cAAc,KAAK;AACnD,OAAI,OAAO;AACT,UAAM,KAAK,MAAM;AACjB,UAAM,IAAIH,kBAAAA,gBAAgB,MAAM;AAChC;;IAEF;AAEF,OAAK,MAAM;AACX,UAAQ,IAAI,sBAAsB,QAAQ,GAAG,OAAO,GAAG;AACvD,SAAO,KAAA;SACD;AACN,UAAQ,MAAM,4CAA4C;AAC1D,SAAO;;AAGT,iBAAA,cAAc;AACd,QAAO"}
|
package/lib/functions/add.d.ts
CHANGED
package/lib/functions/add.js
CHANGED
|
@@ -1,87 +1,73 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
|
|
1
|
+
import { FILES_PROPERTY, JSON_FILE_NAME, PATH_PROPERTY } from "../constants.js";
|
|
2
|
+
import { consoleStars, getFolderPath, transformModule, writeFileAnalysis } from "../helpers.js";
|
|
3
|
+
import { dirname, join, relative, resolve } from "path";
|
|
4
|
+
import edit from "edit-json-file";
|
|
5
|
+
//#region src/functions/add.ts
|
|
6
6
|
const processFileAnalysis = (analysis, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS) => {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
});
|
|
34
|
-
const toAdd2 = { ...toAdd, imports };
|
|
35
|
-
const canRecurse = toAdd2.imports.length > 0;
|
|
36
|
-
if (canRecurse) {
|
|
37
|
-
processFileAnalysis(toAdd2, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS);
|
|
38
|
-
}
|
|
39
|
-
});
|
|
7
|
+
const relativePath = analysis.relativePath;
|
|
8
|
+
const keys = Object.keys(CODEBASE_ANALYSIS);
|
|
9
|
+
analysis.imports.forEach(({ moduleSpecifier }) => {
|
|
10
|
+
const _path = relative(cwd, resolve(dirname(relativePath), moduleSpecifier)).replaceAll("/", ".");
|
|
11
|
+
const all = additionals.concat(pathsEntries).map(([key]) => key).concat(files);
|
|
12
|
+
if (!all.every((p) => p !== _path)) return;
|
|
13
|
+
const toAdd = CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];
|
|
14
|
+
if (!toAdd) return;
|
|
15
|
+
additionals.push([_path, toAdd]);
|
|
16
|
+
all.push(_path);
|
|
17
|
+
const imports = toAdd.imports.filter(({ moduleSpecifier }) => {
|
|
18
|
+
const _path = transformModule({
|
|
19
|
+
cwd,
|
|
20
|
+
relativePath: toAdd.relativePath,
|
|
21
|
+
moduleSpecifier
|
|
22
|
+
});
|
|
23
|
+
const array = [_path, `${_path}.index`].filter((p) => keys.includes(p));
|
|
24
|
+
if (array.length < 1) return false;
|
|
25
|
+
return array.every((p) => !all.includes(p));
|
|
26
|
+
});
|
|
27
|
+
const toAdd2 = {
|
|
28
|
+
...toAdd,
|
|
29
|
+
imports
|
|
30
|
+
};
|
|
31
|
+
if (toAdd2.imports.length > 0) processFileAnalysis(toAdd2, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS);
|
|
32
|
+
});
|
|
40
33
|
};
|
|
41
34
|
const add = (CODEBASE_ANALYSIS, ...paths) => {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
file = undefined;
|
|
77
|
-
}
|
|
78
|
-
catch {
|
|
79
|
-
console.error(`❌ Erreur lors de la création des fichiers`);
|
|
80
|
-
return false;
|
|
81
|
-
}
|
|
82
|
-
consoleStars();
|
|
83
|
-
return true;
|
|
35
|
+
if (paths.length === 0) return console.warn("No files specified for addition.");
|
|
36
|
+
try {
|
|
37
|
+
const cwd = process.cwd();
|
|
38
|
+
let file = edit(join(cwd, JSON_FILE_NAME));
|
|
39
|
+
if (!file) return;
|
|
40
|
+
const files = file.get(FILES_PROPERTY);
|
|
41
|
+
const root = getFolderPath(file.get(PATH_PROPERTY));
|
|
42
|
+
const additionals = [];
|
|
43
|
+
const pathsEntries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => paths.some((p) => key.startsWith(p))).filter(([key]) => !files.includes(key));
|
|
44
|
+
pathsEntries.forEach(([, analysis]) => {
|
|
45
|
+
processFileAnalysis(analysis, cwd, additionals, pathsEntries, files, CODEBASE_ANALYSIS);
|
|
46
|
+
});
|
|
47
|
+
const entries = new Set(pathsEntries.concat(additionals).filter(([, val]) => !!val));
|
|
48
|
+
consoleStars();
|
|
49
|
+
console.log(`🔧 Création des fichiers (${entries.size} fichiers)...`);
|
|
50
|
+
let success = 0;
|
|
51
|
+
const length = entries.size;
|
|
52
|
+
entries.forEach(([, fileAnalysis]) => {
|
|
53
|
+
const _path = writeFileAnalysis(fileAnalysis, root);
|
|
54
|
+
if (_path) {
|
|
55
|
+
files.push(_path);
|
|
56
|
+
file?.set(FILES_PROPERTY, files);
|
|
57
|
+
success++;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
file.save();
|
|
61
|
+
console.log(`✅ Fichiers créés! (${success}/${length})`);
|
|
62
|
+
file = void 0;
|
|
63
|
+
} catch {
|
|
64
|
+
console.error(`❌ Erreur lors de la création des fichiers`);
|
|
65
|
+
return false;
|
|
66
|
+
}
|
|
67
|
+
consoleStars();
|
|
68
|
+
return true;
|
|
84
69
|
};
|
|
85
|
-
|
|
70
|
+
//#endregion
|
|
86
71
|
export { add };
|
|
87
|
-
|
|
72
|
+
|
|
73
|
+
//# sourceMappingURL=add.js.map
|
package/lib/functions/add.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"add.js","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from
|
|
1
|
+
{"version":3,"file":"add.js","names":[],"sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from \"edit-json-file\";\nimport { dirname, join, relative, resolve } from \"node:path\";\nimport { FILES_PROPERTY, JSON_FILE_NAME, PATH_PROPERTY } from \"../constants\";\nimport {\n consoleStars,\n getFolderPath,\n transformModule,\n writeFileAnalysis,\n} from \"../helpers\";\nimport { CodebaseAnalysis, type FileAnalysis } from \"../schemas\";\nimport type { NOmit } from \"../types\";\n\nconst processFileAnalysis = (\n analysis: NOmit<FileAnalysis, \"exports\">,\n cwd: string,\n additionals: [string, NOmit<FileAnalysis, \"exports\">][],\n pathsEntries: [string, NOmit<FileAnalysis, \"exports\">][],\n files: string[],\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const relativePath = analysis.relativePath;\n\n const keys = Object.keys(CODEBASE_ANALYSIS);\n analysis.imports.forEach(({ moduleSpecifier }) => {\n const _path = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll(\"/\", \".\");\n\n const all = additionals\n .concat(pathsEntries)\n .map(([key]) => key)\n .concat(files);\n\n const canAdd = all.every((p) => p !== _path);\n if (!canAdd) return;\n\n const toAdd =\n CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];\n if (!toAdd) return;\n\n additionals.push([_path, toAdd]);\n all.push(_path);\n\n const imports = toAdd.imports.filter(({ moduleSpecifier }) => {\n const _path = transformModule({\n cwd,\n relativePath: toAdd.relativePath,\n moduleSpecifier,\n });\n\n const array = [_path, `${_path}.index`].filter((p) => keys.includes(p));\n\n if (array.length < 1) return false;\n\n return array.every((p) => !all.includes(p));\n });\n\n const toAdd2 = { ...toAdd, imports };\n const canRecurse = toAdd2.imports.length > 0;\n\n if (canRecurse) {\n processFileAnalysis(\n toAdd2,\n cwd,\n additionals,\n pathsEntries,\n files,\n CODEBASE_ANALYSIS,\n );\n }\n });\n};\n\nexport const add = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn(\"No files specified for addition.\");\n try {\n const cwd = process.cwd();\n const json = join(cwd, JSON_FILE_NAME);\n let file: JsonEditor | undefined = edit(json);\n\n if (!file) return;\n\n const files = file.get(FILES_PROPERTY) as string[];\n const root = getFolderPath(file.get(PATH_PROPERTY) as string);\n\n // Release resources\n\n const additionals: [string, NOmit<FileAnalysis, \"exports\">][] = [];\n\n const pathsEntries = Object.entries(CODEBASE_ANALYSIS)\n .filter(([key]) => paths.some((p) => key.startsWith(p)))\n .filter(([key]) => !files.includes(key));\n\n pathsEntries.forEach(([, analysis]) => {\n processFileAnalysis(\n analysis,\n cwd,\n additionals,\n pathsEntries,\n files,\n CODEBASE_ANALYSIS,\n );\n });\n\n const entries = new Set(\n pathsEntries.concat(additionals).filter(([, val]) => !!val),\n );\n\n consoleStars();\n console.log(`🔧 Création des fichiers (${entries.size} fichiers)...`);\n\n let success = 0;\n const length = entries.size;\n\n entries.forEach(([, fileAnalysis]) => {\n const _path = writeFileAnalysis(fileAnalysis, root);\n if (_path) {\n files.push(_path);\n file?.set(FILES_PROPERTY, files);\n success++;\n }\n });\n\n file.save();\n console.log(`✅ Fichiers créés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n return false;\n }\n\n consoleStars();\n return true;\n};\n"],"mappings":";;;;;AAYA,MAAM,uBACJ,UACA,KACA,aACA,cACA,OACA,sBACG;CACH,MAAM,eAAe,SAAS;CAE9B,MAAM,OAAO,OAAO,KAAK,kBAAkB;AAC3C,UAAS,QAAQ,SAAS,EAAE,sBAAsB;EAChD,MAAM,QAAQ,SACZ,KACA,QAAQ,QAAQ,aAAa,EAAE,gBAAgB,CAChD,CAAC,WAAW,KAAK,IAAI;EAEtB,MAAM,MAAM,YACT,OAAO,aAAa,CACpB,KAAK,CAAC,SAAS,IAAI,CACnB,OAAO,MAAM;AAGhB,MAAI,CADW,IAAI,OAAO,MAAM,MAAM,MAAM,CAC/B;EAEb,MAAM,QACJ,kBAAkB,UAAU,kBAAkB,GAAG,MAAM;AACzD,MAAI,CAAC,MAAO;AAEZ,cAAY,KAAK,CAAC,OAAO,MAAM,CAAC;AAChC,MAAI,KAAK,MAAM;EAEf,MAAM,UAAU,MAAM,QAAQ,QAAQ,EAAE,sBAAsB;GAC5D,MAAM,QAAQ,gBAAgB;IAC5B;IACA,cAAc,MAAM;IACpB;IACD,CAAC;GAEF,MAAM,QAAQ,CAAC,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,MAAM,KAAK,SAAS,EAAE,CAAC;AAEvE,OAAI,MAAM,SAAS,EAAG,QAAO;AAE7B,UAAO,MAAM,OAAO,MAAM,CAAC,IAAI,SAAS,EAAE,CAAC;IAC3C;EAEF,MAAM,SAAS;GAAE,GAAG;GAAO;GAAS;AAGpC,MAFmB,OAAO,QAAQ,SAAS,EAGzC,qBACE,QACA,KACA,aACA,cACA,OACA,kBACD;GAEH;;AAGJ,MAAa,OACX,mBACA,GAAG,UACA;AAEH,KADgB,MAAM,WAAW,EACpB,QAAO,QAAQ,KAAK,mCAAmC;AACpE,KAAI;EACF,MAAM,MAAM,QAAQ,KAAK;EAEzB,IAAI,OAA+B,KADtB,KAAK,KAAK,eAAe,CACO;AAE7C,MAAI,CAAC,KAAM;EAEX,MAAM,QAAQ,KAAK,IAAI,eAAe;EACtC,MAAM,OAAO,cAAc,KAAK,IAAI,cAAc,CAAW;EAI7D,MAAM,cAA0D,EAAE;EAElE,MAAM,eAAe,OAAO,QAAQ,kBAAkB,CACnD,QAAQ,CAAC,SAAS,MAAM,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC,CAAC,CACvD,QAAQ,CAAC,SAAS,CAAC,MAAM,SAAS,IAAI,CAAC;AAE1C,eAAa,SAAS,GAAG,cAAc;AACrC,uBACE,UACA,KACA,aACA,cACA,OACA,kBACD;IACD;EAEF,MAAM,UAAU,IAAI,IAClB,aAAa,OAAO,YAAY,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC,IAAI,CAC5D;AAED,gBAAc;AACd,UAAQ,IAAI,6BAA6B,QAAQ,KAAK,eAAe;EAErE,IAAI,UAAU;EACd,MAAM,SAAS,QAAQ;AAEvB,UAAQ,SAAS,GAAG,kBAAkB;GACpC,MAAM,QAAQ,kBAAkB,cAAc,KAAK;AACnD,OAAI,OAAO;AACT,UAAM,KAAK,MAAM;AACjB,UAAM,IAAI,gBAAgB,MAAM;AAChC;;IAEF;AAEF,OAAK,MAAM;AACX,UAAQ,IAAI,sBAAsB,QAAQ,GAAG,OAAO,GAAG;AACvD,SAAO,KAAA;SACD;AACN,UAAQ,MAAM,4CAA4C;AAC1D,SAAO;;AAGT,eAAc;AACd,QAAO"}
|
|
@@ -1,62 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
|
+
require("../_virtual/_rolldown/runtime.cjs");
|
|
3
|
+
const require_constants = require("../constants.cjs");
|
|
4
|
+
const require_analyse = require("../analyse.cjs");
|
|
5
|
+
let path = require("path");
|
|
6
|
+
let fs = require("fs");
|
|
7
|
+
//#region src/functions/generate.ts
|
|
8
8
|
const transformJSON = (data) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
CODEBASE_ANALYSIS,
|
|
33
|
-
};
|
|
9
|
+
let imports = 0;
|
|
10
|
+
let exports = 0;
|
|
11
|
+
let files = 0;
|
|
12
|
+
const entries = Object.entries(data).map(([key, { imports: _imports, relativePath, text, exports: _exports }]) => {
|
|
13
|
+
imports += _imports.length;
|
|
14
|
+
exports += _exports?.length ?? 0;
|
|
15
|
+
files++;
|
|
16
|
+
return [key, {
|
|
17
|
+
imports: _imports,
|
|
18
|
+
relativePath,
|
|
19
|
+
text,
|
|
20
|
+
exports: _exports?.filter(({ moduleSpecifier }) => moduleSpecifier !== void 0)
|
|
21
|
+
}];
|
|
22
|
+
});
|
|
23
|
+
const CODEBASE_ANALYSIS = Object.fromEntries(entries);
|
|
24
|
+
return {
|
|
25
|
+
STATS: {
|
|
26
|
+
files,
|
|
27
|
+
imports,
|
|
28
|
+
exports
|
|
29
|
+
},
|
|
30
|
+
CODEBASE_ANALYSIS
|
|
31
|
+
};
|
|
34
32
|
};
|
|
35
33
|
/**
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
const generate = ({ output =
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
57
|
-
return true;
|
|
34
|
+
* Fonction principale d'exécution
|
|
35
|
+
*/
|
|
36
|
+
const generate = ({ output = require_constants.CODEBASE_FILE, excludes, src = require_constants.SRC_DIR } = {}) => {
|
|
37
|
+
const _output = output.endsWith("codebase.json") ? output : `${output}.codebase.json`;
|
|
38
|
+
try {
|
|
39
|
+
const transformed = transformJSON(require_analyse.analyze({
|
|
40
|
+
src,
|
|
41
|
+
excludes
|
|
42
|
+
}));
|
|
43
|
+
(0, fs.writeFileSync)(_output, JSON.stringify(transformed, null, 2));
|
|
44
|
+
console.log(`📁 Analyse sauvegardée dans: ${(0, path.relative)(process.cwd(), _output)}`);
|
|
45
|
+
console.log(`📊 Statistiques:`);
|
|
46
|
+
console.log(` - Fichiers analysés: ${transformed.STATS.files}`);
|
|
47
|
+
console.log(` - Total imports: ${transformed.STATS.imports}`);
|
|
48
|
+
console.log(` - Total exports: ${transformed.STATS.exports}`);
|
|
49
|
+
} catch (error) {
|
|
50
|
+
console.error("❌ Erreur lors de l'analyse du codebase:", error);
|
|
51
|
+
process.exit(1);
|
|
52
|
+
}
|
|
53
|
+
return true;
|
|
58
54
|
};
|
|
59
|
-
|
|
55
|
+
//#endregion
|
|
60
56
|
exports.generate = generate;
|
|
61
57
|
exports.transformJSON = transformJSON;
|
|
62
|
-
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=generate.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.cjs","sources":["../../src/functions/generate.ts"],"sourcesContent":["import { writeFileSync } from
|
|
1
|
+
{"version":3,"file":"generate.cjs","names":["CODEBASE_FILE","SRC_DIR","analyze"],"sources":["../../src/functions/generate.ts"],"sourcesContent":["import { writeFileSync } from \"node:fs\";\nimport { relative } from \"node:path\";\nimport { CODEBASE_FILE, SRC_DIR } from \"../constants\";\nimport { analyze } from \"../analyse\";\nimport { CodebaseAnalysis } from \"../schemas\";\n\nexport const transformJSON = (data: CodebaseAnalysis) => {\n let imports = 0;\n let exports = 0;\n let files = 0;\n\n const entries = Object.entries(data).map(\n ([key, { imports: _imports, relativePath, text, exports: _exports }]) => {\n imports += _imports.length;\n exports += _exports?.length ?? 0;\n files++;\n\n const value: any = {\n imports: _imports,\n relativePath,\n text,\n exports: _exports?.filter(\n ({ moduleSpecifier }) => moduleSpecifier !== undefined,\n ),\n };\n\n return [key, value] as const;\n },\n );\n\n const CODEBASE_ANALYSIS = Object.fromEntries(entries);\n\n const STATS = {\n files,\n imports,\n exports,\n };\n\n return {\n STATS,\n CODEBASE_ANALYSIS,\n };\n};\n\nexport type GenerateOptions = {\n output?: string;\n excludes?: string[] | string;\n src?: string;\n};\n\n/**\n * Fonction principale d'exécution\n */\nexport const generate = ({\n output = CODEBASE_FILE,\n excludes,\n src = SRC_DIR,\n}: GenerateOptions = {}) => {\n const _output = output.endsWith(\"codebase.json\")\n ? output\n : `${output}.codebase.json`;\n\n try {\n const analysis = analyze({ src, excludes });\n const transformed = transformJSON(analysis);\n\n const json = JSON.stringify(transformed, null, 2);\n writeFileSync(_output, json);\n\n console.log(\n `📁 Analyse sauvegardée dans: ${relative(process.cwd(), _output)}`,\n );\n console.log(`📊 Statistiques:`);\n console.log(` - Fichiers analysés: ${transformed.STATS.files}`);\n console.log(` - Total imports: ${transformed.STATS.imports}`);\n console.log(` - Total exports: ${transformed.STATS.exports}`);\n } catch (error) {\n console.error(\"❌ Erreur lors de l'analyse du codebase:\", error);\n process.exit(1);\n }\n\n return true;\n};\n"],"mappings":";;;;;;;AAMA,MAAa,iBAAiB,SAA2B;CACvD,IAAI,UAAU;CACd,IAAI,UAAU;CACd,IAAI,QAAQ;CAEZ,MAAM,UAAU,OAAO,QAAQ,KAAK,CAAC,KAClC,CAAC,KAAK,EAAE,SAAS,UAAU,cAAc,MAAM,SAAS,gBAAgB;AACvE,aAAW,SAAS;AACpB,aAAW,UAAU,UAAU;AAC/B;AAWA,SAAO,CAAC,KATW;GACjB,SAAS;GACT;GACA;GACA,SAAS,UAAU,QAChB,EAAE,sBAAsB,oBAAoB,KAAA,EAC9C;GACF,CAEkB;GAEtB;CAED,MAAM,oBAAoB,OAAO,YAAY,QAAQ;AAQrD,QAAO;EACL,OAPY;GACZ;GACA;GACA;GACD;EAIC;EACD;;;;;AAYH,MAAa,YAAY,EACvB,SAASA,kBAAAA,eACT,UACA,MAAMC,kBAAAA,YACa,EAAE,KAAK;CAC1B,MAAM,UAAU,OAAO,SAAS,gBAAgB,GAC5C,SACA,GAAG,OAAO;AAEd,KAAI;EAEF,MAAM,cAAc,cADHC,gBAAAA,QAAQ;GAAE;GAAK;GAAU,CAAC,CACA;AAG3C,GAAA,GAAA,GAAA,eAAc,SADD,KAAK,UAAU,aAAa,MAAM,EAAE,CACrB;AAE5B,UAAQ,IACN,iCAAA,GAAA,KAAA,UAAyC,QAAQ,KAAK,EAAE,QAAQ,GACjE;AACD,UAAQ,IAAI,mBAAmB;AAC/B,UAAQ,IAAI,2BAA2B,YAAY,MAAM,QAAQ;AACjE,UAAQ,IAAI,uBAAuB,YAAY,MAAM,UAAU;AAC/D,UAAQ,IAAI,uBAAuB,YAAY,MAAM,UAAU;UACxD,OAAO;AACd,UAAQ,MAAM,2CAA2C,MAAM;AAC/D,UAAQ,KAAK,EAAE;;AAGjB,QAAO"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CodebaseAnalysis } from
|
|
1
|
+
import { CodebaseAnalysis } from "../schemas";
|
|
2
2
|
export declare const transformJSON: (data: CodebaseAnalysis) => {
|
|
3
3
|
STATS: {
|
|
4
4
|
files: number;
|
|
@@ -18,4 +18,3 @@ export type GenerateOptions = {
|
|
|
18
18
|
* Fonction principale d'exécution
|
|
19
19
|
*/
|
|
20
20
|
export declare const generate: ({ output, excludes, src, }?: GenerateOptions) => boolean;
|
|
21
|
-
//# sourceMappingURL=generate.d.ts.map
|