@bemedev/codebase 0.0.8 → 0.1.1

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/CHANGE_LOG.md CHANGED
@@ -6,6 +6,34 @@
6
6
 
7
7
  <summary>
8
8
 
9
+ ### Version [0.1.1] --> _2025/09/04 19:40_
10
+
11
+ </summary>
12
+
13
+ - Fix remove function with the correct absolute path
14
+
15
+ </details>
16
+
17
+ <br/>
18
+
19
+ <details>
20
+
21
+ <summary>
22
+
23
+ ### Version [0.1.0] --> _2025/09/04 19:00_
24
+
25
+ </summary>
26
+
27
+ - Fix duplicate inside config json
28
+
29
+ </details>
30
+
31
+ <br/>
32
+
33
+ <details>
34
+
35
+ <summary>
36
+
9
37
  ### Version [0.0.8] --> _2025/09/04 17:00_
10
38
 
11
39
  </summary>
@@ -10,14 +10,18 @@ const processFileAnalysis = (analysis, cwd, additionals, pathsEntries, files, CO
10
10
  const keys = Object.keys(CODEBASE_ANALYSIS);
11
11
  analysis.imports.forEach(({ moduleSpecifier }) => {
12
12
  const _path = path.relative(cwd, path.resolve(path.dirname(relativePath), moduleSpecifier)).replaceAll('/', '.');
13
- const toAdd = CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];
14
- if (!toAdd)
15
- return;
16
- additionals.push([_path, toAdd]);
17
13
  const all = additionals
18
14
  .concat(pathsEntries)
19
15
  .map(([key]) => key)
20
16
  .concat(files);
17
+ const canAdd = all.every(p => p !== _path);
18
+ if (!canAdd)
19
+ return;
20
+ const toAdd = CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];
21
+ if (!toAdd)
22
+ return;
23
+ additionals.push([_path, toAdd]);
24
+ all.push(_path);
21
25
  const imports = toAdd.imports.filter(({ moduleSpecifier }) => {
22
26
  const _path = helpers.transformModule({
23
27
  cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"add.cjs","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} 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 toAdd =\n CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];\n if (!toAdd) return;\n\n additionals.push([_path, toAdd]);\n\n const all = additionals\n .concat(pathsEntries)\n .map(([key]) => key)\n .concat(files);\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 =>\n keys.includes(p),\n );\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"],"names":["relative","resolve","dirname","transformModule","join","JSON_FILE_NAME","FILES_PROPERTY","getFolderPath","PATH_PROPERTY","consoleStars","writeFileAnalysis"],"mappings":"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"}
1
+ {"version":3,"file":"add.cjs","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} 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 =>\n keys.includes(p),\n );\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"],"names":["relative","resolve","dirname","transformModule","join","JSON_FILE_NAME","FILES_PROPERTY","getFolderPath","PATH_PROPERTY","consoleStars","writeFileAnalysis"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/functions/add.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AA+DjE,eAAO,MAAM,GAAG,GACd,mBAAmB,gBAAgB,EACnC,GAAG,OAAO,MAAM,EAAE,mBA8DnB,CAAC"}
1
+ {"version":3,"file":"add.d.ts","sourceRoot":"","sources":["../../src/functions/add.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,gBAAgB,EAAqB,MAAM,YAAY,CAAC;AAmEjE,eAAO,MAAM,GAAG,GACd,mBAAmB,gBAAgB,EACnC,GAAG,OAAO,MAAM,EAAE,mBA8DnB,CAAC"}
@@ -8,14 +8,18 @@ const processFileAnalysis = (analysis, cwd, additionals, pathsEntries, files, CO
8
8
  const keys = Object.keys(CODEBASE_ANALYSIS);
9
9
  analysis.imports.forEach(({ moduleSpecifier }) => {
10
10
  const _path = relative(cwd, resolve(dirname(relativePath), moduleSpecifier)).replaceAll('/', '.');
11
- const toAdd = CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];
12
- if (!toAdd)
13
- return;
14
- additionals.push([_path, toAdd]);
15
11
  const all = additionals
16
12
  .concat(pathsEntries)
17
13
  .map(([key]) => key)
18
14
  .concat(files);
15
+ const canAdd = all.every(p => p !== _path);
16
+ if (!canAdd)
17
+ return;
18
+ const toAdd = CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];
19
+ if (!toAdd)
20
+ return;
21
+ additionals.push([_path, toAdd]);
22
+ all.push(_path);
19
23
  const imports = toAdd.imports.filter(({ moduleSpecifier }) => {
20
24
  const _path = transformModule({
21
25
  cwd,
@@ -1 +1 @@
1
- {"version":3,"file":"add.js","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} 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 toAdd =\n CODEBASE_ANALYSIS[_path] ?? CODEBASE_ANALYSIS[`${_path}.index`];\n if (!toAdd) return;\n\n additionals.push([_path, toAdd]);\n\n const all = additionals\n .concat(pathsEntries)\n .map(([key]) => key)\n .concat(files);\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 =>\n keys.includes(p),\n );\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"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"add.js","sources":["../../src/functions/add.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} 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 =>\n keys.includes(p),\n );\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"],"names":[],"mappings":"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"}
@@ -74,7 +74,7 @@ const remove = (CODEBASE_ANALYSIS, ...paths) => {
74
74
  }
75
75
  const formatteds = safesToRemove.map(key => {
76
76
  const _path = `${key.replaceAll('.', '/')}.ts`;
77
- const absolute = path.join(cwd, root, _path);
77
+ const absolute = path.join(root, _path);
78
78
  return [key, absolute];
79
79
  });
80
80
  console.log(`🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`);
@@ -87,8 +87,8 @@ const remove = (CODEBASE_ANALYSIS, ...paths) => {
87
87
  file?.set(constants.FILES_PROPERTY, files.filter(key1 => key1 !== key));
88
88
  success++;
89
89
  }
90
- catch (error) {
91
- console.error(` - ❌ Erreur, ${key} :`, error);
90
+ catch {
91
+ console.error(` - ❌ Erreur, ${key} :`);
92
92
  }
93
93
  });
94
94
  file.save();
@@ -1 +1 @@
1
- {"version":3,"file":"remove.cjs","sources":["../../src/functions/remove.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { unlinkSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport { consoleStars, getFolderPath, transformModule } from '../helpers';\nimport { CodebaseAnalysis, FileAnalysis } from '../schemas';\n\nconst transformModules = (\n entries: [string, FileAnalysis][],\n ...files: string[]\n) => {\n const cwd = process.cwd();\n const out = entries\n .map(\n ([key, { imports, relativePath }]) =>\n [key, relativePath, imports] as const,\n )\n .map(([key, relativePath, imports]) => {\n const specifiers = imports\n .map(({ moduleSpecifier }) => {\n return transformModule({\n cwd,\n relativePath,\n moduleSpecifier,\n });\n })\n .map(_path => [_path, `${_path}.index`]) // Ajouter les variantes .index\n .flat()\n .filter(s => files.includes(s));\n\n return [key, Array.from(new Set(specifiers))] as const;\n });\n\n return out;\n};\n\nexport const remove = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn('No files specified for removal.');\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 root = getFolderPath(file.get(PATH_PROPERTY) as string);\n const files = file.get(FILES_PROPERTY) as string[];\n\n const entries2 = Object.entries(CODEBASE_ANALYSIS).filter(([key]) =>\n files.includes(key),\n );\n\n const entries = entries2.filter(([key]) =>\n paths.some(p => key.startsWith(p)),\n );\n\n // Vérifier les dépendances avant suppression\n const safesToRemove: string[] = [];\n const cannotsRemove: [string, string[]][] = [];\n\n entries.forEach(([key]) => {\n const modules = transformModules(entries2, ...files);\n const importedFroms = modules\n .filter(([, specifiers]) => specifiers.includes(key))\n .map(([k]) => k);\n\n const check = importedFroms.length > 0;\n\n console.log('modules', '=>', importedFroms);\n console.log('key', '=>', key);\n\n if (check) return cannotsRemove.push([key, importedFroms]);\n return safesToRemove.push(key);\n });\n\n consoleStars();\n console.log(\n `🔧 Suppression des fichiers (${entries.length} fichiers)...`,\n );\n\n // Afficher les fichiers qui ne peuvent pas être supprimés\n if (cannotsRemove.length > 0) {\n const len = cannotsRemove.length;\n const one =\n \"fichier ne peut pas être supprimé (importé dans d'autres fichiers)\";\n const many =\n \"fichiers ne peuvent pas être supprimés (importés dans d'autres fichiers)\";\n\n console.warn(`⚠️ ${len} ${len === 1 ? one : many} :`);\n cannotsRemove.forEach(([key, modules]) => {\n console.warn(` - ⚠️ ${key} importé par :`);\n modules.forEach(m => console.warn(` -> 📌 ${m}`));\n });\n }\n\n if (safesToRemove.length === 0) {\n console.warn('❌ Aucun fichier ne peut être supprimé.');\n return consoleStars();\n }\n\n const formatteds = safesToRemove.map(key => {\n const _path = `${key.replaceAll('.', '/')}.ts`;\n const absolute = join(cwd, root, _path);\n return [key, absolute] as const;\n });\n\n console.log(\n `🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`,\n );\n\n let success = 0;\n const length = formatteds.length;\n\n formatteds.forEach(([key, path]) => {\n try {\n unlinkSync(path);\n console.log(` - 🗑️ ${key}`);\n file?.set(\n FILES_PROPERTY,\n files.filter(key1 => key1 !== key),\n );\n success++;\n } catch (error) {\n console.error(` - ❌ Erreur, ${key} :`, error);\n }\n });\n\n file.save();\n console.log(`🗑️ Fichiers supprimés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n consoleStars();\n return false;\n }\n consoleStars();\n return true;\n};\n"],"names":["transformModule","join","JSON_FILE_NAME","getFolderPath","PATH_PROPERTY","FILES_PROPERTY","consoleStars","unlinkSync"],"mappings":"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"}
1
+ {"version":3,"file":"remove.cjs","sources":["../../src/functions/remove.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { unlinkSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport { consoleStars, getFolderPath, transformModule } from '../helpers';\nimport { CodebaseAnalysis, FileAnalysis } from '../schemas';\n\nconst transformModules = (\n entries: [string, FileAnalysis][],\n ...files: string[]\n) => {\n const cwd = process.cwd();\n const out = entries\n .map(\n ([key, { imports, relativePath }]) =>\n [key, relativePath, imports] as const,\n )\n .map(([key, relativePath, imports]) => {\n const specifiers = imports\n .map(({ moduleSpecifier }) => {\n return transformModule({\n cwd,\n relativePath,\n moduleSpecifier,\n });\n })\n .map(_path => [_path, `${_path}.index`]) // Ajouter les variantes .index\n .flat()\n .filter(s => files.includes(s));\n\n return [key, Array.from(new Set(specifiers))] as const;\n });\n\n return out;\n};\n\nexport const remove = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn('No files specified for removal.');\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 root = getFolderPath(file.get(PATH_PROPERTY) as string);\n const files = file.get(FILES_PROPERTY) as string[];\n\n const entries2 = Object.entries(CODEBASE_ANALYSIS).filter(([key]) =>\n files.includes(key),\n );\n\n const entries = entries2.filter(([key]) =>\n paths.some(p => key.startsWith(p)),\n );\n\n // Vérifier les dépendances avant suppression\n const safesToRemove: string[] = [];\n const cannotsRemove: [string, string[]][] = [];\n\n entries.forEach(([key]) => {\n const modules = transformModules(entries2, ...files);\n const importedFroms = modules\n .filter(([, specifiers]) => specifiers.includes(key))\n .map(([k]) => k);\n\n const check = importedFroms.length > 0;\n\n console.log('modules', '=>', importedFroms);\n console.log('key', '=>', key);\n\n if (check) return cannotsRemove.push([key, importedFroms]);\n return safesToRemove.push(key);\n });\n\n consoleStars();\n console.log(\n `🔧 Suppression des fichiers (${entries.length} fichiers)...`,\n );\n\n // Afficher les fichiers qui ne peuvent pas être supprimés\n if (cannotsRemove.length > 0) {\n const len = cannotsRemove.length;\n const one =\n \"fichier ne peut pas être supprimé (importé dans d'autres fichiers)\";\n const many =\n \"fichiers ne peuvent pas être supprimés (importés dans d'autres fichiers)\";\n\n console.warn(`⚠️ ${len} ${len === 1 ? one : many} :`);\n cannotsRemove.forEach(([key, modules]) => {\n console.warn(` - ⚠️ ${key} importé par :`);\n modules.forEach(m => console.warn(` -> 📌 ${m}`));\n });\n }\n\n if (safesToRemove.length === 0) {\n console.warn('❌ Aucun fichier ne peut être supprimé.');\n return consoleStars();\n }\n\n const formatteds = safesToRemove.map(key => {\n const _path = `${key.replaceAll('.', '/')}.ts`;\n const absolute = join(root, _path);\n return [key, absolute] as const;\n });\n\n console.log(\n `🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`,\n );\n\n let success = 0;\n const length = formatteds.length;\n\n formatteds.forEach(([key, path]) => {\n try {\n unlinkSync(path);\n console.log(` - 🗑️ ${key}`);\n file?.set(\n FILES_PROPERTY,\n files.filter(key1 => key1 !== key),\n );\n success++;\n } catch {\n console.error(` - ❌ Erreur, ${key} :`);\n }\n });\n\n file.save();\n console.log(`🗑️ Fichiers supprimés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n consoleStars();\n return false;\n }\n consoleStars();\n return true;\n};\n"],"names":["transformModule","join","JSON_FILE_NAME","getFolderPath","PATH_PROPERTY","FILES_PROPERTY","consoleStars","unlinkSync"],"mappings":"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"}
@@ -72,7 +72,7 @@ const remove = (CODEBASE_ANALYSIS, ...paths) => {
72
72
  }
73
73
  const formatteds = safesToRemove.map(key => {
74
74
  const _path = `${key.replaceAll('.', '/')}.ts`;
75
- const absolute = join(cwd, root, _path);
75
+ const absolute = join(root, _path);
76
76
  return [key, absolute];
77
77
  });
78
78
  console.log(`🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`);
@@ -85,8 +85,8 @@ const remove = (CODEBASE_ANALYSIS, ...paths) => {
85
85
  file?.set(FILES_PROPERTY, files.filter(key1 => key1 !== key));
86
86
  success++;
87
87
  }
88
- catch (error) {
89
- console.error(` - ❌ Erreur, ${key} :`, error);
88
+ catch {
89
+ console.error(` - ❌ Erreur, ${key} :`);
90
90
  }
91
91
  });
92
92
  file.save();
@@ -1 +1 @@
1
- {"version":3,"file":"remove.js","sources":["../../src/functions/remove.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { unlinkSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport { consoleStars, getFolderPath, transformModule } from '../helpers';\nimport { CodebaseAnalysis, FileAnalysis } from '../schemas';\n\nconst transformModules = (\n entries: [string, FileAnalysis][],\n ...files: string[]\n) => {\n const cwd = process.cwd();\n const out = entries\n .map(\n ([key, { imports, relativePath }]) =>\n [key, relativePath, imports] as const,\n )\n .map(([key, relativePath, imports]) => {\n const specifiers = imports\n .map(({ moduleSpecifier }) => {\n return transformModule({\n cwd,\n relativePath,\n moduleSpecifier,\n });\n })\n .map(_path => [_path, `${_path}.index`]) // Ajouter les variantes .index\n .flat()\n .filter(s => files.includes(s));\n\n return [key, Array.from(new Set(specifiers))] as const;\n });\n\n return out;\n};\n\nexport const remove = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn('No files specified for removal.');\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 root = getFolderPath(file.get(PATH_PROPERTY) as string);\n const files = file.get(FILES_PROPERTY) as string[];\n\n const entries2 = Object.entries(CODEBASE_ANALYSIS).filter(([key]) =>\n files.includes(key),\n );\n\n const entries = entries2.filter(([key]) =>\n paths.some(p => key.startsWith(p)),\n );\n\n // Vérifier les dépendances avant suppression\n const safesToRemove: string[] = [];\n const cannotsRemove: [string, string[]][] = [];\n\n entries.forEach(([key]) => {\n const modules = transformModules(entries2, ...files);\n const importedFroms = modules\n .filter(([, specifiers]) => specifiers.includes(key))\n .map(([k]) => k);\n\n const check = importedFroms.length > 0;\n\n console.log('modules', '=>', importedFroms);\n console.log('key', '=>', key);\n\n if (check) return cannotsRemove.push([key, importedFroms]);\n return safesToRemove.push(key);\n });\n\n consoleStars();\n console.log(\n `🔧 Suppression des fichiers (${entries.length} fichiers)...`,\n );\n\n // Afficher les fichiers qui ne peuvent pas être supprimés\n if (cannotsRemove.length > 0) {\n const len = cannotsRemove.length;\n const one =\n \"fichier ne peut pas être supprimé (importé dans d'autres fichiers)\";\n const many =\n \"fichiers ne peuvent pas être supprimés (importés dans d'autres fichiers)\";\n\n console.warn(`⚠️ ${len} ${len === 1 ? one : many} :`);\n cannotsRemove.forEach(([key, modules]) => {\n console.warn(` - ⚠️ ${key} importé par :`);\n modules.forEach(m => console.warn(` -> 📌 ${m}`));\n });\n }\n\n if (safesToRemove.length === 0) {\n console.warn('❌ Aucun fichier ne peut être supprimé.');\n return consoleStars();\n }\n\n const formatteds = safesToRemove.map(key => {\n const _path = `${key.replaceAll('.', '/')}.ts`;\n const absolute = join(cwd, root, _path);\n return [key, absolute] as const;\n });\n\n console.log(\n `🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`,\n );\n\n let success = 0;\n const length = formatteds.length;\n\n formatteds.forEach(([key, path]) => {\n try {\n unlinkSync(path);\n console.log(` - 🗑️ ${key}`);\n file?.set(\n FILES_PROPERTY,\n files.filter(key1 => key1 !== key),\n );\n success++;\n } catch (error) {\n console.error(` - ❌ Erreur, ${key} :`, error);\n }\n });\n\n file.save();\n console.log(`🗑️ Fichiers supprimés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n consoleStars();\n return false;\n }\n consoleStars();\n return true;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"remove.js","sources":["../../src/functions/remove.ts"],"sourcesContent":["import edit, { JsonEditor } from 'edit-json-file';\nimport { unlinkSync } from 'node:fs';\nimport { join } from 'node:path';\nimport {\n FILES_PROPERTY,\n JSON_FILE_NAME,\n PATH_PROPERTY,\n} from '../constants';\nimport { consoleStars, getFolderPath, transformModule } from '../helpers';\nimport { CodebaseAnalysis, FileAnalysis } from '../schemas';\n\nconst transformModules = (\n entries: [string, FileAnalysis][],\n ...files: string[]\n) => {\n const cwd = process.cwd();\n const out = entries\n .map(\n ([key, { imports, relativePath }]) =>\n [key, relativePath, imports] as const,\n )\n .map(([key, relativePath, imports]) => {\n const specifiers = imports\n .map(({ moduleSpecifier }) => {\n return transformModule({\n cwd,\n relativePath,\n moduleSpecifier,\n });\n })\n .map(_path => [_path, `${_path}.index`]) // Ajouter les variantes .index\n .flat()\n .filter(s => files.includes(s));\n\n return [key, Array.from(new Set(specifiers))] as const;\n });\n\n return out;\n};\n\nexport const remove = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n ...paths: string[]\n) => {\n const isEmpty = paths.length === 0;\n if (isEmpty) return console.warn('No files specified for removal.');\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 root = getFolderPath(file.get(PATH_PROPERTY) as string);\n const files = file.get(FILES_PROPERTY) as string[];\n\n const entries2 = Object.entries(CODEBASE_ANALYSIS).filter(([key]) =>\n files.includes(key),\n );\n\n const entries = entries2.filter(([key]) =>\n paths.some(p => key.startsWith(p)),\n );\n\n // Vérifier les dépendances avant suppression\n const safesToRemove: string[] = [];\n const cannotsRemove: [string, string[]][] = [];\n\n entries.forEach(([key]) => {\n const modules = transformModules(entries2, ...files);\n const importedFroms = modules\n .filter(([, specifiers]) => specifiers.includes(key))\n .map(([k]) => k);\n\n const check = importedFroms.length > 0;\n\n console.log('modules', '=>', importedFroms);\n console.log('key', '=>', key);\n\n if (check) return cannotsRemove.push([key, importedFroms]);\n return safesToRemove.push(key);\n });\n\n consoleStars();\n console.log(\n `🔧 Suppression des fichiers (${entries.length} fichiers)...`,\n );\n\n // Afficher les fichiers qui ne peuvent pas être supprimés\n if (cannotsRemove.length > 0) {\n const len = cannotsRemove.length;\n const one =\n \"fichier ne peut pas être supprimé (importé dans d'autres fichiers)\";\n const many =\n \"fichiers ne peuvent pas être supprimés (importés dans d'autres fichiers)\";\n\n console.warn(`⚠️ ${len} ${len === 1 ? one : many} :`);\n cannotsRemove.forEach(([key, modules]) => {\n console.warn(` - ⚠️ ${key} importé par :`);\n modules.forEach(m => console.warn(` -> 📌 ${m}`));\n });\n }\n\n if (safesToRemove.length === 0) {\n console.warn('❌ Aucun fichier ne peut être supprimé.');\n return consoleStars();\n }\n\n const formatteds = safesToRemove.map(key => {\n const _path = `${key.replaceAll('.', '/')}.ts`;\n const absolute = join(root, _path);\n return [key, absolute] as const;\n });\n\n console.log(\n `🗑️ Suppression des fichiers (${safesToRemove.length} fichiers)...`,\n );\n\n let success = 0;\n const length = formatteds.length;\n\n formatteds.forEach(([key, path]) => {\n try {\n unlinkSync(path);\n console.log(` - 🗑️ ${key}`);\n file?.set(\n FILES_PROPERTY,\n files.filter(key1 => key1 !== key),\n );\n success++;\n } catch {\n console.error(` - ❌ Erreur, ${key} :`);\n }\n });\n\n file.save();\n console.log(`🗑️ Fichiers supprimés! (${success}/${length})`);\n file = undefined;\n } catch {\n console.error(`❌ Erreur lors de la création des fichiers`);\n consoleStars();\n return false;\n }\n consoleStars();\n return true;\n};\n"],"names":[],"mappings":"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"}
package/lib/helpers.cjs CHANGED
@@ -17,9 +17,7 @@ const writeFileAnalysis = (fileAnalysis, folderPath) => {
17
17
  // Créer le dossier de destination si nécessaire
18
18
  fs.mkdirSync(destDir, { recursive: true });
19
19
  let fileContent = fileAnalysis.text;
20
- constants.REPLACERS.init
21
- // .filter(() => false)
22
- .forEach(([search, replace]) => {
20
+ constants.REPLACERS.init.forEach(([search, replace]) => {
23
21
  fileContent = fileContent.replaceAll(search, replace);
24
22
  });
25
23
  // Écrire le contenu du fichier types
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.cjs","sources":["../src/helpers.ts"],"sourcesContent":["import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { REPLACERS } from './constants';\nimport { FileAnalysis } from './schemas';\n\nexport type TransformModuleArgs = {\n cwd?: string;\n relativePath: string;\n moduleSpecifier: string;\n};\n\nexport const transformModule = ({\n cwd = process.cwd(),\n relativePath,\n moduleSpecifier,\n}: TransformModuleArgs) => {\n const out = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n return out;\n};\n\nexport const writeFileAnalysis = (\n fileAnalysis: FileAnalysis,\n folderPath: string,\n) => {\n const relativePath = fileAnalysis.relativePath;\n\n // Créer le chemin de destination dans .bemedev en maintenant la structure\n const destPath = join(folderPath, relativePath);\n const destDir = dirname(destPath);\n\n try {\n // Créer le dossier de destination si nécessaire\n mkdirSync(destDir, { recursive: true });\n\n let fileContent = fileAnalysis.text;\n REPLACERS.init\n // .filter(() => false)\n .forEach(([search, replace]) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n // Écrire le contenu du fichier types\n writeFileSync(destPath, fileContent, 'utf8');\n\n console.log(` ✅ ${relativePath}`);\n return relativePath.slice(0, -3).replaceAll('/', '.');\n } catch (error) {\n return console.error(` ❌ Erreur pour ${relativePath}:`, error);\n }\n};\n\nexport const consoleStars = () => {\n console.log();\n console.log('*'.repeat(30));\n console.log();\n};\n\nexport const toArray = <T>(value?: T | T[]): T[] => {\n return Array.isArray(value) ? value : !value ? [] : [value];\n};\n\nexport const getFolderPath = (root: string) => {\n const cwd = process.cwd();\n const srcExists = existsSync(join(cwd, 'src'));\n const folderPath = srcExists ? join(cwd, 'src', root) : join(cwd, root);\n\n return folderPath;\n};\n"],"names":["relative","resolve","dirname","join","mkdirSync","REPLACERS","writeFileSync","existsSync"],"mappings":";;;;;;AAWO,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,EACZ,eAAe,GACK,KAAI;IACxB,MAAM,GAAG,GAAGA,aAAQ,CAClB,GAAG,EACHC,YAAO,CAACC,YAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAChD,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAEtB,IAAA,OAAO,GAAG;AACZ;MAEa,iBAAiB,GAAG,CAC/B,YAA0B,EAC1B,UAAkB,KAChB;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;;IAG9C,MAAM,QAAQ,GAAGC,SAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAGD,YAAO,CAAC,QAAQ,CAAC;AAEjC,IAAA,IAAI;;QAEFE,YAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI;AACnC,QAAAC,mBAAS,CAAC;;aAEP,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAI;YAC7B,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;;AAGJ,QAAAC,gBAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAE5C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAA,CAAE,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACvD;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;IACjE;AACF;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,OAAO,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE;AACf;AAEO,MAAM,OAAO,GAAG,CAAI,KAAe,KAAS;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AAC7D;AAEO,MAAM,aAAa,GAAG,CAAC,IAAY,KAAI;AAC5C,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,SAAS,GAAGC,aAAU,CAACJ,SAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,GAAGA,SAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAGA,SAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAEvE,IAAA,OAAO,UAAU;AACnB;;;;;;;;"}
1
+ {"version":3,"file":"helpers.cjs","sources":["../src/helpers.ts"],"sourcesContent":["import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { REPLACERS } from './constants';\nimport { FileAnalysis } from './schemas';\n\nexport type TransformModuleArgs = {\n cwd?: string;\n relativePath: string;\n moduleSpecifier: string;\n};\n\nexport const transformModule = ({\n cwd = process.cwd(),\n relativePath,\n moduleSpecifier,\n}: TransformModuleArgs) => {\n const out = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n return out;\n};\n\nexport const writeFileAnalysis = (\n fileAnalysis: FileAnalysis,\n folderPath: string,\n) => {\n const relativePath = fileAnalysis.relativePath;\n\n // Créer le chemin de destination dans .bemedev en maintenant la structure\n const destPath = join(folderPath, relativePath);\n const destDir = dirname(destPath);\n\n try {\n // Créer le dossier de destination si nécessaire\n mkdirSync(destDir, { recursive: true });\n\n let fileContent = fileAnalysis.text;\n REPLACERS.init.forEach(([search, replace]) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n // Écrire le contenu du fichier types\n writeFileSync(destPath, fileContent, 'utf8');\n\n console.log(` ✅ ${relativePath}`);\n return relativePath.slice(0, -3).replaceAll('/', '.');\n } catch (error) {\n return console.error(` ❌ Erreur pour ${relativePath}:`, error);\n }\n};\n\nexport const consoleStars = () => {\n console.log();\n console.log('*'.repeat(30));\n console.log();\n};\n\nexport const toArray = <T>(value?: T | T[]): T[] => {\n return Array.isArray(value) ? value : !value ? [] : [value];\n};\n\nexport const getFolderPath = (root: string) => {\n const cwd = process.cwd();\n const srcExists = existsSync(join(cwd, 'src'));\n const folderPath = srcExists ? join(cwd, 'src', root) : join(cwd, root);\n\n return folderPath;\n};\n"],"names":["relative","resolve","dirname","join","mkdirSync","REPLACERS","writeFileSync","existsSync"],"mappings":";;;;;;AAWO,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,EACZ,eAAe,GACK,KAAI;IACxB,MAAM,GAAG,GAAGA,aAAQ,CAClB,GAAG,EACHC,YAAO,CAACC,YAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAChD,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAEtB,IAAA,OAAO,GAAG;AACZ;MAEa,iBAAiB,GAAG,CAC/B,YAA0B,EAC1B,UAAkB,KAChB;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;;IAG9C,MAAM,QAAQ,GAAGC,SAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAGD,YAAO,CAAC,QAAQ,CAAC;AAEjC,IAAA,IAAI;;QAEFE,YAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI;AACnC,QAAAC,mBAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAI;YAC3C,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;;AAGF,QAAAC,gBAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAE5C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAA,CAAE,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACvD;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;IACjE;AACF;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,OAAO,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE;AACf;AAEO,MAAM,OAAO,GAAG,CAAI,KAAe,KAAS;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AAC7D;AAEO,MAAM,aAAa,GAAG,CAAC,IAAY,KAAI;AAC5C,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,SAAS,GAAGC,aAAU,CAACJ,SAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,GAAGA,SAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAGA,SAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAEvE,IAAA,OAAO,UAAU;AACnB;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,yCAI7B,mBAAmB,WAOrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,cAAc,YAAY,EAC1B,YAAY,MAAM,kBA2BnB,CAAC;AAEF,eAAO,MAAM,YAAY,YAIxB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAG,CAAC,EAE7C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,WAMzC,CAAC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAEzC,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,eAAe,EAAE,MAAM,CAAC;CACzB,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,yCAI7B,mBAAmB,WAOrB,CAAC;AAEF,eAAO,MAAM,iBAAiB,GAC5B,cAAc,YAAY,EAC1B,YAAY,MAAM,kBAyBnB,CAAC;AAEF,eAAO,MAAM,YAAY,YAIxB,CAAC;AAEF,eAAO,MAAM,OAAO,GAAI,CAAC,EAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,KAAG,CAAC,EAE7C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,MAAM,WAMzC,CAAC"}
package/lib/helpers.js CHANGED
@@ -15,9 +15,7 @@ const writeFileAnalysis = (fileAnalysis, folderPath) => {
15
15
  // Créer le dossier de destination si nécessaire
16
16
  mkdirSync(destDir, { recursive: true });
17
17
  let fileContent = fileAnalysis.text;
18
- REPLACERS.init
19
- // .filter(() => false)
20
- .forEach(([search, replace]) => {
18
+ REPLACERS.init.forEach(([search, replace]) => {
21
19
  fileContent = fileContent.replaceAll(search, replace);
22
20
  });
23
21
  // Écrire le contenu du fichier types
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sources":["../src/helpers.ts"],"sourcesContent":["import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { REPLACERS } from './constants';\nimport { FileAnalysis } from './schemas';\n\nexport type TransformModuleArgs = {\n cwd?: string;\n relativePath: string;\n moduleSpecifier: string;\n};\n\nexport const transformModule = ({\n cwd = process.cwd(),\n relativePath,\n moduleSpecifier,\n}: TransformModuleArgs) => {\n const out = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n return out;\n};\n\nexport const writeFileAnalysis = (\n fileAnalysis: FileAnalysis,\n folderPath: string,\n) => {\n const relativePath = fileAnalysis.relativePath;\n\n // Créer le chemin de destination dans .bemedev en maintenant la structure\n const destPath = join(folderPath, relativePath);\n const destDir = dirname(destPath);\n\n try {\n // Créer le dossier de destination si nécessaire\n mkdirSync(destDir, { recursive: true });\n\n let fileContent = fileAnalysis.text;\n REPLACERS.init\n // .filter(() => false)\n .forEach(([search, replace]) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n // Écrire le contenu du fichier types\n writeFileSync(destPath, fileContent, 'utf8');\n\n console.log(` ✅ ${relativePath}`);\n return relativePath.slice(0, -3).replaceAll('/', '.');\n } catch (error) {\n return console.error(` ❌ Erreur pour ${relativePath}:`, error);\n }\n};\n\nexport const consoleStars = () => {\n console.log();\n console.log('*'.repeat(30));\n console.log();\n};\n\nexport const toArray = <T>(value?: T | T[]): T[] => {\n return Array.isArray(value) ? value : !value ? [] : [value];\n};\n\nexport const getFolderPath = (root: string) => {\n const cwd = process.cwd();\n const srcExists = existsSync(join(cwd, 'src'));\n const folderPath = srcExists ? join(cwd, 'src', root) : join(cwd, root);\n\n return folderPath;\n};\n"],"names":[],"mappings":";;;;AAWO,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,EACZ,eAAe,GACK,KAAI;IACxB,MAAM,GAAG,GAAG,QAAQ,CAClB,GAAG,EACH,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAChD,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAEtB,IAAA,OAAO,GAAG;AACZ;MAEa,iBAAiB,GAAG,CAC/B,YAA0B,EAC1B,UAAkB,KAChB;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;;IAG9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AAEjC,IAAA,IAAI;;QAEF,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI;AACnC,QAAA,SAAS,CAAC;;aAEP,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAI;YAC7B,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;;AAGJ,QAAA,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAE5C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAA,CAAE,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACvD;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;IACjE;AACF;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,OAAO,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE;AACf;AAEO,MAAM,OAAO,GAAG,CAAI,KAAe,KAAS;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AAC7D;AAEO,MAAM,aAAa,GAAG,CAAC,IAAY,KAAI;AAC5C,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAEvE,IAAA,OAAO,UAAU;AACnB;;;;"}
1
+ {"version":3,"file":"helpers.js","sources":["../src/helpers.ts"],"sourcesContent":["import { existsSync, mkdirSync, writeFileSync } from 'node:fs';\nimport { dirname, join, relative, resolve } from 'node:path';\nimport { REPLACERS } from './constants';\nimport { FileAnalysis } from './schemas';\n\nexport type TransformModuleArgs = {\n cwd?: string;\n relativePath: string;\n moduleSpecifier: string;\n};\n\nexport const transformModule = ({\n cwd = process.cwd(),\n relativePath,\n moduleSpecifier,\n}: TransformModuleArgs) => {\n const out = relative(\n cwd,\n resolve(dirname(relativePath), moduleSpecifier),\n ).replaceAll('/', '.');\n\n return out;\n};\n\nexport const writeFileAnalysis = (\n fileAnalysis: FileAnalysis,\n folderPath: string,\n) => {\n const relativePath = fileAnalysis.relativePath;\n\n // Créer le chemin de destination dans .bemedev en maintenant la structure\n const destPath = join(folderPath, relativePath);\n const destDir = dirname(destPath);\n\n try {\n // Créer le dossier de destination si nécessaire\n mkdirSync(destDir, { recursive: true });\n\n let fileContent = fileAnalysis.text;\n REPLACERS.init.forEach(([search, replace]) => {\n fileContent = fileContent.replaceAll(search, replace);\n });\n\n // Écrire le contenu du fichier types\n writeFileSync(destPath, fileContent, 'utf8');\n\n console.log(` ✅ ${relativePath}`);\n return relativePath.slice(0, -3).replaceAll('/', '.');\n } catch (error) {\n return console.error(` ❌ Erreur pour ${relativePath}:`, error);\n }\n};\n\nexport const consoleStars = () => {\n console.log();\n console.log('*'.repeat(30));\n console.log();\n};\n\nexport const toArray = <T>(value?: T | T[]): T[] => {\n return Array.isArray(value) ? value : !value ? [] : [value];\n};\n\nexport const getFolderPath = (root: string) => {\n const cwd = process.cwd();\n const srcExists = existsSync(join(cwd, 'src'));\n const folderPath = srcExists ? join(cwd, 'src', root) : join(cwd, root);\n\n return folderPath;\n};\n"],"names":[],"mappings":";;;;AAWO,MAAM,eAAe,GAAG,CAAC,EAC9B,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,EACnB,YAAY,EACZ,eAAe,GACK,KAAI;IACxB,MAAM,GAAG,GAAG,QAAQ,CAClB,GAAG,EACH,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,CAChD,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;AAEtB,IAAA,OAAO,GAAG;AACZ;MAEa,iBAAiB,GAAG,CAC/B,YAA0B,EAC1B,UAAkB,KAChB;AACF,IAAA,MAAM,YAAY,GAAG,YAAY,CAAC,YAAY;;IAG9C,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,YAAY,CAAC;AAC/C,IAAA,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;AAEjC,IAAA,IAAI;;QAEF,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;AAEvC,QAAA,IAAI,WAAW,GAAG,YAAY,CAAC,IAAI;AACnC,QAAA,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAI;YAC3C,WAAW,GAAG,WAAW,CAAC,UAAU,CAAC,MAAM,EAAE,OAAO,CAAC;AACvD,QAAA,CAAC,CAAC;;AAGF,QAAA,aAAa,CAAC,QAAQ,EAAE,WAAW,EAAE,MAAM,CAAC;AAE5C,QAAA,OAAO,CAAC,GAAG,CAAC,OAAO,YAAY,CAAA,CAAE,CAAC;AAClC,QAAA,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC;IACvD;IAAE,OAAO,KAAK,EAAE;QACd,OAAO,OAAO,CAAC,KAAK,CAAC,CAAA,gBAAA,EAAmB,YAAY,CAAA,CAAA,CAAG,EAAE,KAAK,CAAC;IACjE;AACF;AAEO,MAAM,YAAY,GAAG,MAAK;IAC/B,OAAO,CAAC,GAAG,EAAE;IACb,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAE;AACf;AAEO,MAAM,OAAO,GAAG,CAAI,KAAe,KAAS;IACjD,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,CAAC,KAAK,GAAG,EAAE,GAAG,CAAC,KAAK,CAAC;AAC7D;AAEO,MAAM,aAAa,GAAG,CAAC,IAAY,KAAI;AAC5C,IAAA,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACzB,MAAM,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC;AAEvE,IAAA,OAAO,UAAU;AACnB;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bemedev/codebase",
3
- "version": "0.0.8",
3
+ "version": "0.1.1",
4
4
  "description": "The CLI for to generate codebase, and import partially a library. From @bemedev",
5
5
  "author": {
6
6
  "email": "bri_lvi@icloud.com",