@bemedev/codebase 0.0.7 → 0.0.8

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,20 @@
6
6
 
7
7
  <summary>
8
8
 
9
+ ### Version [0.0.8] --> _2025/09/04 17:00_
10
+
11
+ </summary>
12
+
13
+ - Fix writing paths inside tsconfig.json
14
+
15
+ </details>
16
+
17
+ <br/>
18
+
19
+ <details>
20
+
21
+ <summary>
22
+
9
23
  ### Version [0.0.7] --> _2025/09/04 16:45_
10
24
 
11
25
  </summary>
@@ -62,7 +62,7 @@ const init = (CODEBASE_ANALYSIS, { root, json }) => {
62
62
  const baseUrl = tsconfig.compilerOptions.baseUrl;
63
63
  if (typeof baseUrl === 'string') {
64
64
  // Si baseUrl est défini, calculer le chemin relatif par rapport à baseUrl
65
- relativePath = path.join(baseUrl, relativePath);
65
+ relativePath = path.relative(baseUrl, relativePath);
66
66
  }
67
67
  else {
68
68
  // Si baseUrl n'est pas défini, utiliser le chemin absolu
@@ -1 +1 @@
1
- {"version":3,"file":"init.cjs","sources":["../../src/functions/init.ts"],"sourcesContent":["import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from 'node:fs';\nimport { join, relative } from 'node:path';\nimport { PATH_KEY, PROPERTIES } from '../constants';\nimport { getFolderPath, writeFileAnalysis } from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport interface InitOptions {\n /**\n * Emplacement personnalisé pour le dossier .bemedev\n * Par défaut: 'src/.bemedev' si src existe, sinon '.bemedev' à la racine\n */\n root: string;\n json: string;\n}\n\nexport const createTypesStructure = (\n folderPath: string,\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {\n return key.endsWith('types') || key.endsWith('constants');\n });\n\n const PATHS: string[] = [];\n\n console.log(\n `🔧 Création de la structure de types (${entries.length} fichiers)...`,\n );\n\n for (const [, fileAnalysis] of entries) {\n const file = writeFileAnalysis(fileAnalysis, folderPath);\n if (file) PATHS.push(file);\n }\n\n console.log(`✅ Structure de types créée avec succès!`);\n return PATHS;\n};\n\nexport const init = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n { root, json }: InitOptions,\n) => {\n const cwd = process.cwd();\n const configFile = join(cwd, json);\n const configExists = existsSync(configFile);\n\n if (configExists) return true;\n const folderPath = getFolderPath(root);\n\n // 1. Créer le dossier\n try {\n mkdirSync(folderPath, { recursive: true });\n console.log(`✅ Dossier .bemedev créé dans: ${root}`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du dossier .bemedev:`,\n error,\n );\n return false;\n }\n\n let files: string[] = [];\n // 1.5. Créer la structure des fichiers types\n try {\n files = createTypesStructure(folderPath, CODEBASE_ANALYSIS);\n } catch {\n console.error(\n `❌ Erreur lors de la création de la structure de types:`,\n );\n return false;\n }\n\n // 2. Mettre à jour le tsconfig.json\n const tsconfigPath = join(cwd, 'tsconfig.json');\n\n if (existsSync(tsconfigPath)) {\n try {\n const tsconfigContent = readFileSync(tsconfigPath, 'utf8');\n const tsconfig = JSON.parse(tsconfigContent);\n\n // Initialiser compilerOptions et paths si ils n'existent pas\n if (!tsconfig.compilerOptions) {\n tsconfig.compilerOptions = {};\n }\n\n if (!tsconfig.compilerOptions.paths) {\n tsconfig.compilerOptions.paths = {};\n }\n\n // Ajouter le path #bemedev/*\n let relativePath = relative(process.cwd(), folderPath);\n const baseUrl = tsconfig.compilerOptions.baseUrl;\n\n if (typeof baseUrl === 'string') {\n // Si baseUrl est défini, calculer le chemin relatif par rapport à baseUrl\n\n relativePath = join(baseUrl, relativePath);\n } else {\n // Si baseUrl n'est pas défini, utiliser le chemin absolu\n tsconfig.compilerOptions.baseUrl = '.';\n }\n\n tsconfig.compilerOptions.paths[PATH_KEY] = [`${relativePath}/*`];\n\n writeFileSync(\n tsconfigPath,\n JSON.stringify(tsconfig, null, 2),\n 'utf8',\n );\n console.log(`✅ Path #bemedev/* ajouté au tsconfig.json`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la mise à jour du tsconfig.json:`,\n error,\n );\n return false;\n }\n } else {\n console.warn(`⚠️ Fichier tsconfig.json introuvable, path non ajouté`);\n }\n\n // 3. Créer le fichier .bemedev.json à la racine\n\n const config = {\n version: '1.0.0',\n [PROPERTIES.PATH]: root,\n [PROPERTIES.FILES]: files,\n };\n\n try {\n writeFileSync(configFile, JSON.stringify(config, null, 2), 'utf8');\n console.log(`✅ Fichier .bemedev.json créé à la racine du projet`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du fichier .bemedev.json:`,\n error,\n );\n return false;\n }\n\n console.log(`🎉 Initialisation de bemedev terminée avec succès!`);\n return true;\n};\n"],"names":["writeFileAnalysis","join","existsSync","getFolderPath","mkdirSync","readFileSync","relative","PATH_KEY","writeFileSync","PROPERTIES"],"mappings":"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"}
1
+ {"version":3,"file":"init.cjs","sources":["../../src/functions/init.ts"],"sourcesContent":["import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from 'node:fs';\nimport { join, relative } from 'node:path';\nimport { PATH_KEY, PROPERTIES } from '../constants';\nimport { getFolderPath, writeFileAnalysis } from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport interface InitOptions {\n /**\n * Emplacement personnalisé pour le dossier .bemedev\n * Par défaut: 'src/.bemedev' si src existe, sinon '.bemedev' à la racine\n */\n root: string;\n json: string;\n}\n\nexport const createTypesStructure = (\n folderPath: string,\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {\n return key.endsWith('types') || key.endsWith('constants');\n });\n\n const PATHS: string[] = [];\n\n console.log(\n `🔧 Création de la structure de types (${entries.length} fichiers)...`,\n );\n\n for (const [, fileAnalysis] of entries) {\n const file = writeFileAnalysis(fileAnalysis, folderPath);\n if (file) PATHS.push(file);\n }\n\n console.log(`✅ Structure de types créée avec succès!`);\n return PATHS;\n};\n\nexport const init = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n { root, json }: InitOptions,\n) => {\n const cwd = process.cwd();\n const configFile = join(cwd, json);\n const configExists = existsSync(configFile);\n\n if (configExists) return true;\n const folderPath = getFolderPath(root);\n\n // 1. Créer le dossier\n try {\n mkdirSync(folderPath, { recursive: true });\n console.log(`✅ Dossier .bemedev créé dans: ${root}`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du dossier .bemedev:`,\n error,\n );\n return false;\n }\n\n let files: string[] = [];\n // 1.5. Créer la structure des fichiers types\n try {\n files = createTypesStructure(folderPath, CODEBASE_ANALYSIS);\n } catch {\n console.error(\n `❌ Erreur lors de la création de la structure de types:`,\n );\n return false;\n }\n\n // 2. Mettre à jour le tsconfig.json\n const tsconfigPath = join(cwd, 'tsconfig.json');\n\n if (existsSync(tsconfigPath)) {\n try {\n const tsconfigContent = readFileSync(tsconfigPath, 'utf8');\n const tsconfig = JSON.parse(tsconfigContent);\n\n // Initialiser compilerOptions et paths si ils n'existent pas\n if (!tsconfig.compilerOptions) {\n tsconfig.compilerOptions = {};\n }\n\n if (!tsconfig.compilerOptions.paths) {\n tsconfig.compilerOptions.paths = {};\n }\n\n // Ajouter le path #bemedev/*\n let relativePath = relative(process.cwd(), folderPath);\n const baseUrl = tsconfig.compilerOptions.baseUrl;\n\n if (typeof baseUrl === 'string') {\n // Si baseUrl est défini, calculer le chemin relatif par rapport à baseUrl\n\n relativePath = relative(baseUrl, relativePath);\n } else {\n // Si baseUrl n'est pas défini, utiliser le chemin absolu\n tsconfig.compilerOptions.baseUrl = '.';\n }\n\n tsconfig.compilerOptions.paths[PATH_KEY] = [`${relativePath}/*`];\n\n writeFileSync(\n tsconfigPath,\n JSON.stringify(tsconfig, null, 2),\n 'utf8',\n );\n console.log(`✅ Path #bemedev/* ajouté au tsconfig.json`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la mise à jour du tsconfig.json:`,\n error,\n );\n return false;\n }\n } else {\n console.warn(`⚠️ Fichier tsconfig.json introuvable, path non ajouté`);\n }\n\n // 3. Créer le fichier .bemedev.json à la racine\n\n const config = {\n version: '1.0.0',\n [PROPERTIES.PATH]: root,\n [PROPERTIES.FILES]: files,\n };\n\n try {\n writeFileSync(configFile, JSON.stringify(config, null, 2), 'utf8');\n console.log(`✅ Fichier .bemedev.json créé à la racine du projet`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du fichier .bemedev.json:`,\n error,\n );\n return false;\n }\n\n console.log(`🎉 Initialisation de bemedev terminée avec succès!`);\n return true;\n};\n"],"names":["writeFileAnalysis","join","existsSync","getFolderPath","mkdirSync","readFileSync","relative","PATH_KEY","writeFileSync","PROPERTIES"],"mappings":"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"}
@@ -60,7 +60,7 @@ const init = (CODEBASE_ANALYSIS, { root, json }) => {
60
60
  const baseUrl = tsconfig.compilerOptions.baseUrl;
61
61
  if (typeof baseUrl === 'string') {
62
62
  // Si baseUrl est défini, calculer le chemin relatif par rapport à baseUrl
63
- relativePath = join(baseUrl, relativePath);
63
+ relativePath = relative(baseUrl, relativePath);
64
64
  }
65
65
  else {
66
66
  // Si baseUrl n'est pas défini, utiliser le chemin absolu
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sources":["../../src/functions/init.ts"],"sourcesContent":["import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from 'node:fs';\nimport { join, relative } from 'node:path';\nimport { PATH_KEY, PROPERTIES } from '../constants';\nimport { getFolderPath, writeFileAnalysis } from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport interface InitOptions {\n /**\n * Emplacement personnalisé pour le dossier .bemedev\n * Par défaut: 'src/.bemedev' si src existe, sinon '.bemedev' à la racine\n */\n root: string;\n json: string;\n}\n\nexport const createTypesStructure = (\n folderPath: string,\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {\n return key.endsWith('types') || key.endsWith('constants');\n });\n\n const PATHS: string[] = [];\n\n console.log(\n `🔧 Création de la structure de types (${entries.length} fichiers)...`,\n );\n\n for (const [, fileAnalysis] of entries) {\n const file = writeFileAnalysis(fileAnalysis, folderPath);\n if (file) PATHS.push(file);\n }\n\n console.log(`✅ Structure de types créée avec succès!`);\n return PATHS;\n};\n\nexport const init = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n { root, json }: InitOptions,\n) => {\n const cwd = process.cwd();\n const configFile = join(cwd, json);\n const configExists = existsSync(configFile);\n\n if (configExists) return true;\n const folderPath = getFolderPath(root);\n\n // 1. Créer le dossier\n try {\n mkdirSync(folderPath, { recursive: true });\n console.log(`✅ Dossier .bemedev créé dans: ${root}`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du dossier .bemedev:`,\n error,\n );\n return false;\n }\n\n let files: string[] = [];\n // 1.5. Créer la structure des fichiers types\n try {\n files = createTypesStructure(folderPath, CODEBASE_ANALYSIS);\n } catch {\n console.error(\n `❌ Erreur lors de la création de la structure de types:`,\n );\n return false;\n }\n\n // 2. Mettre à jour le tsconfig.json\n const tsconfigPath = join(cwd, 'tsconfig.json');\n\n if (existsSync(tsconfigPath)) {\n try {\n const tsconfigContent = readFileSync(tsconfigPath, 'utf8');\n const tsconfig = JSON.parse(tsconfigContent);\n\n // Initialiser compilerOptions et paths si ils n'existent pas\n if (!tsconfig.compilerOptions) {\n tsconfig.compilerOptions = {};\n }\n\n if (!tsconfig.compilerOptions.paths) {\n tsconfig.compilerOptions.paths = {};\n }\n\n // Ajouter le path #bemedev/*\n let relativePath = relative(process.cwd(), folderPath);\n const baseUrl = tsconfig.compilerOptions.baseUrl;\n\n if (typeof baseUrl === 'string') {\n // Si baseUrl est défini, calculer le chemin relatif par rapport à baseUrl\n\n relativePath = join(baseUrl, relativePath);\n } else {\n // Si baseUrl n'est pas défini, utiliser le chemin absolu\n tsconfig.compilerOptions.baseUrl = '.';\n }\n\n tsconfig.compilerOptions.paths[PATH_KEY] = [`${relativePath}/*`];\n\n writeFileSync(\n tsconfigPath,\n JSON.stringify(tsconfig, null, 2),\n 'utf8',\n );\n console.log(`✅ Path #bemedev/* ajouté au tsconfig.json`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la mise à jour du tsconfig.json:`,\n error,\n );\n return false;\n }\n } else {\n console.warn(`⚠️ Fichier tsconfig.json introuvable, path non ajouté`);\n }\n\n // 3. Créer le fichier .bemedev.json à la racine\n\n const config = {\n version: '1.0.0',\n [PROPERTIES.PATH]: root,\n [PROPERTIES.FILES]: files,\n };\n\n try {\n writeFileSync(configFile, JSON.stringify(config, null, 2), 'utf8');\n console.log(`✅ Fichier .bemedev.json créé à la racine du projet`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du fichier .bemedev.json:`,\n error,\n );\n return false;\n }\n\n console.log(`🎉 Initialisation de bemedev terminée avec succès!`);\n return true;\n};\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sources":["../../src/functions/init.ts"],"sourcesContent":["import {\n existsSync,\n mkdirSync,\n readFileSync,\n writeFileSync,\n} from 'node:fs';\nimport { join, relative } from 'node:path';\nimport { PATH_KEY, PROPERTIES } from '../constants';\nimport { getFolderPath, writeFileAnalysis } from '../helpers';\nimport { CodebaseAnalysis } from '../schemas';\n\nexport interface InitOptions {\n /**\n * Emplacement personnalisé pour le dossier .bemedev\n * Par défaut: 'src/.bemedev' si src existe, sinon '.bemedev' à la racine\n */\n root: string;\n json: string;\n}\n\nexport const createTypesStructure = (\n folderPath: string,\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n) => {\n const entries = Object.entries(CODEBASE_ANALYSIS).filter(([key]) => {\n return key.endsWith('types') || key.endsWith('constants');\n });\n\n const PATHS: string[] = [];\n\n console.log(\n `🔧 Création de la structure de types (${entries.length} fichiers)...`,\n );\n\n for (const [, fileAnalysis] of entries) {\n const file = writeFileAnalysis(fileAnalysis, folderPath);\n if (file) PATHS.push(file);\n }\n\n console.log(`✅ Structure de types créée avec succès!`);\n return PATHS;\n};\n\nexport const init = (\n CODEBASE_ANALYSIS: CodebaseAnalysis,\n { root, json }: InitOptions,\n) => {\n const cwd = process.cwd();\n const configFile = join(cwd, json);\n const configExists = existsSync(configFile);\n\n if (configExists) return true;\n const folderPath = getFolderPath(root);\n\n // 1. Créer le dossier\n try {\n mkdirSync(folderPath, { recursive: true });\n console.log(`✅ Dossier .bemedev créé dans: ${root}`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du dossier .bemedev:`,\n error,\n );\n return false;\n }\n\n let files: string[] = [];\n // 1.5. Créer la structure des fichiers types\n try {\n files = createTypesStructure(folderPath, CODEBASE_ANALYSIS);\n } catch {\n console.error(\n `❌ Erreur lors de la création de la structure de types:`,\n );\n return false;\n }\n\n // 2. Mettre à jour le tsconfig.json\n const tsconfigPath = join(cwd, 'tsconfig.json');\n\n if (existsSync(tsconfigPath)) {\n try {\n const tsconfigContent = readFileSync(tsconfigPath, 'utf8');\n const tsconfig = JSON.parse(tsconfigContent);\n\n // Initialiser compilerOptions et paths si ils n'existent pas\n if (!tsconfig.compilerOptions) {\n tsconfig.compilerOptions = {};\n }\n\n if (!tsconfig.compilerOptions.paths) {\n tsconfig.compilerOptions.paths = {};\n }\n\n // Ajouter le path #bemedev/*\n let relativePath = relative(process.cwd(), folderPath);\n const baseUrl = tsconfig.compilerOptions.baseUrl;\n\n if (typeof baseUrl === 'string') {\n // Si baseUrl est défini, calculer le chemin relatif par rapport à baseUrl\n\n relativePath = relative(baseUrl, relativePath);\n } else {\n // Si baseUrl n'est pas défini, utiliser le chemin absolu\n tsconfig.compilerOptions.baseUrl = '.';\n }\n\n tsconfig.compilerOptions.paths[PATH_KEY] = [`${relativePath}/*`];\n\n writeFileSync(\n tsconfigPath,\n JSON.stringify(tsconfig, null, 2),\n 'utf8',\n );\n console.log(`✅ Path #bemedev/* ajouté au tsconfig.json`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la mise à jour du tsconfig.json:`,\n error,\n );\n return false;\n }\n } else {\n console.warn(`⚠️ Fichier tsconfig.json introuvable, path non ajouté`);\n }\n\n // 3. Créer le fichier .bemedev.json à la racine\n\n const config = {\n version: '1.0.0',\n [PROPERTIES.PATH]: root,\n [PROPERTIES.FILES]: files,\n };\n\n try {\n writeFileSync(configFile, JSON.stringify(config, null, 2), 'utf8');\n console.log(`✅ Fichier .bemedev.json créé à la racine du projet`);\n } catch (error) {\n console.error(\n `❌ Erreur lors de la création du fichier .bemedev.json:`,\n error,\n );\n return false;\n }\n\n console.log(`🎉 Initialisation de bemedev terminée avec succès!`);\n return true;\n};\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bemedev/codebase",
3
- "version": "0.0.7",
3
+ "version": "0.0.8",
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",