@arc-js/initiator 0.0.4 → 0.0.5

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.
Files changed (3) hide show
  1. package/index.js +22 -5
  2. package/index.min.js +2 -2
  3. package/package.json +1 -1
package/index.js CHANGED
@@ -194687,7 +194687,8 @@ class ConfigGenerator {
194687
194687
  srcDir: config.srcDir || pajoExports.Pajo.join(dirname, 'src') || '',
194688
194688
  outputFile: config.outputFile || pajoExports.Pajo.join(dirname, 'src\\auto-config.ts') || '',
194689
194689
  modulesDir: config.modulesDir || pajoExports.Pajo.join(dirname, 'src\\modules') || '',
194690
- rootConfigPath: config.rootConfigPath || pajoExports.Pajo.join(dirname, 'config.json') || ''
194690
+ rootConfigPath: config.rootConfigPath || pajoExports.Pajo.join(dirname, 'config.json') || '',
194691
+ projectRoot: config.projectRoot || dirname || ''
194691
194692
  };
194692
194693
  console.log(`--> ConfigGenerator config:: `, this.config);
194693
194694
  }
@@ -194733,21 +194734,37 @@ class ConfigGenerator {
194733
194734
  fs.writeFileSync(this.config.outputFile, content, 'utf-8');
194734
194735
  });
194735
194736
  }
194737
+ getRelativeImportPath(targetPath) {
194738
+ const outputDir = path.dirname(this.config.outputFile);
194739
+ const relative = path.relative(outputDir, targetPath);
194740
+ let importPath = relative.replace(/\\/g, '/');
194741
+ if (!importPath.startsWith('.') && !importPath.startsWith('/')) {
194742
+ importPath = './' + importPath;
194743
+ }
194744
+ importPath = importPath.replace(/\.json$/, '');
194745
+ return importPath;
194746
+ }
194736
194747
  generateFileContent() {
194737
194748
  const { rootConfigPath, modulesDir } = this.config;
194738
194749
  const sortedModules = Array.from(this.modules).sort();
194739
194750
  const rootConfigExists = fs.existsSync(rootConfigPath);
194740
- const baseConfig = rootConfigExists
194741
- ? ` 'app': (() => import('../config.json').then(module => module.default || module))`
194751
+ console.log(`📄 Root config exists: ${rootConfigExists} at ${rootConfigPath}`);
194752
+ const baseImportPath = rootConfigExists
194753
+ ? this.getRelativeImportPath(rootConfigPath)
194754
+ : null;
194755
+ const baseConfig = rootConfigExists && baseImportPath
194756
+ ? ` 'app': (() => import('${baseImportPath}').then(module => module.default || module))`
194742
194757
  : ` 'app': (() => Promise.resolve({}))`;
194743
194758
  const modulesImports = sortedModules.map(moduleName => {
194744
194759
  const configPath = path.join(modulesDir, moduleName, 'config.json');
194745
194760
  const configExists = fs.existsSync(configPath);
194746
194761
  if (configExists) {
194747
- const relativePath = path.relative(path.dirname(this.config.outputFile), configPath).replace(/\\/g, '/');
194748
- return ` '${moduleName}': (() => import('${relativePath}').then(module => module.default || module))`;
194762
+ const importPath = this.getRelativeImportPath(configPath);
194763
+ console.log(`📄 Module ${moduleName} config: ${configPath} -> ${importPath}`);
194764
+ return ` '${moduleName}': (() => import('${importPath}').then(module => module.default || module))`;
194749
194765
  }
194750
194766
  else {
194767
+ console.log(`⚠️ Module ${moduleName} config not found: ${configPath}`);
194751
194768
  return ` '${moduleName}': (() => Promise.resolve({}))`;
194752
194769
  }
194753
194770
  }).join(',\n');
package/index.min.js CHANGED
@@ -376,12 +376,12 @@ ${e}
376
376
  }
377
377
  };
378
378
 
379
- export default translations;`}generateTypeDefinitions(){if(0===this.keys.length)return"string";let r={};return this.keys.forEach(e=>{var t=e.module||"core";r[t]||(r[t]=[]),r[t].push(e.key)}),Object.entries(r).map(([e,t])=>{t=t.filter((e,t,r)=>r.indexOf(e)===t).map(e=>`"${e}"`).join(" | ");return"core"===e?t:e+":"+t}).join(" | ")}}function TranslationInitiator(){return __awaiter(this,arguments,void 0,function*(e=__dirname$2){new TranslationGenerator({},e).generate().then(()=>{}).catch(e=>{})})}let __filename$1=url.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&"SCRIPT"===_documentCurrentScript.tagName.toUpperCase()&&_documentCurrentScript.src||new URL("index.js",document.baseURI).href),__dirname$1=path.dirname(__filename$1);class ConfigGenerator{constructor(e={},t=__dirname$1){this.modules=new Set,this.config={srcDir:e.srcDir||pajoExports.Pajo.join(t,"src")||"",outputFile:e.outputFile||pajoExports.Pajo.join(t,"src\\auto-config.ts")||"",modulesDir:e.modulesDir||pajoExports.Pajo.join(t,"src\\modules")||"",rootConfigPath:e.rootConfigPath||pajoExports.Pajo.join(t,"config.json")||""}}generate(){return __awaiter(this,void 0,void 0,function*(){yield this.discoverModules(),yield this.generateAutoConfigFile()})}discoverModules(){return __awaiter(this,void 0,void 0,function*(){try{var e;if(fs.existsSync(this.config.modulesDir))for(e of fs.readdirSync(this.config.modulesDir,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)){var t=path.join(this.config.modulesDir,e,"config.json");fs.existsSync(t)&&this.modules.add(e)}}catch(e){}})}generateAutoConfigFile(){return __awaiter(this,void 0,void 0,function*(){var e=path.dirname(this.config.outputFile),e=(fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0}),this.generateFileContent());fs.writeFileSync(this.config.outputFile,e,"utf-8")})}generateFileContent(){let{rootConfigPath:e,modulesDir:r}=this.config;var t=Array.from(this.modules).sort(),n=fs.existsSync(e)?" 'app': (() => import('../config.json').then(module => module.default || module))":" 'app': (() => Promise.resolve({}))",t=t.map(e=>{var t=path.join(r,e,"config.json");return fs.existsSync(t)?` '${e}': (() => import('${path.relative(path.dirname(this.config.outputFile),t).replace(/\\/g,"/")}').then(module => module.default || module))`:` '${e}': (() => Promise.resolve({}))`}).join(",\n");return`export const configs = {
379
+ export default translations;`}generateTypeDefinitions(){if(0===this.keys.length)return"string";let r={};return this.keys.forEach(e=>{var t=e.module||"core";r[t]||(r[t]=[]),r[t].push(e.key)}),Object.entries(r).map(([e,t])=>{t=t.filter((e,t,r)=>r.indexOf(e)===t).map(e=>`"${e}"`).join(" | ");return"core"===e?t:e+":"+t}).join(" | ")}}function TranslationInitiator(){return __awaiter(this,arguments,void 0,function*(e=__dirname$2){new TranslationGenerator({},e).generate().then(()=>{}).catch(e=>{})})}let __filename$1=url.fileURLToPath("undefined"==typeof document?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&"SCRIPT"===_documentCurrentScript.tagName.toUpperCase()&&_documentCurrentScript.src||new URL("index.js",document.baseURI).href),__dirname$1=path.dirname(__filename$1);class ConfigGenerator{constructor(e={},t=__dirname$1){this.modules=new Set,this.config={srcDir:e.srcDir||pajoExports.Pajo.join(t,"src")||"",outputFile:e.outputFile||pajoExports.Pajo.join(t,"src\\auto-config.ts")||"",modulesDir:e.modulesDir||pajoExports.Pajo.join(t,"src\\modules")||"",rootConfigPath:e.rootConfigPath||pajoExports.Pajo.join(t,"config.json")||"",projectRoot:e.projectRoot||t||""}}generate(){return __awaiter(this,void 0,void 0,function*(){yield this.discoverModules(),yield this.generateAutoConfigFile()})}discoverModules(){return __awaiter(this,void 0,void 0,function*(){try{var e;if(fs.existsSync(this.config.modulesDir))for(e of fs.readdirSync(this.config.modulesDir,{withFileTypes:!0}).filter(e=>e.isDirectory()).map(e=>e.name)){var t=path.join(this.config.modulesDir,e,"config.json");fs.existsSync(t)&&this.modules.add(e)}}catch(e){}})}generateAutoConfigFile(){return __awaiter(this,void 0,void 0,function*(){var e=path.dirname(this.config.outputFile),e=(fs.existsSync(e)||fs.mkdirSync(e,{recursive:!0}),this.generateFileContent());fs.writeFileSync(this.config.outputFile,e,"utf-8")})}getRelativeImportPath(e){var t=path.dirname(this.config.outputFile);let r=path.relative(t,e).replace(/\\/g,"/");return r=(r=r.startsWith(".")||r.startsWith("/")?r:"./"+r).replace(/\.json$/,"")}generateFileContent(){let{rootConfigPath:e,modulesDir:r}=this.config;var t=Array.from(this.modules).sort(),n=fs.existsSync(e),i=n?this.getRelativeImportPath(e):null,n=n&&i?` 'app': (() => import('${i}').then(module => module.default || module))`:" 'app': (() => Promise.resolve({}))",i=t.map(e=>{var t=path.join(r,e,"config.json");return fs.existsSync(t)?` '${e}': (() => import('${this.getRelativeImportPath(t)}').then(module => module.default || module))`:` '${e}': (() => Promise.resolve({}))`}).join(",\n");return`export const configs = {
380
380
  'base': {
381
381
  ${n}
382
382
  },
383
383
  'modules': {
384
- ${0<t.length?t:" // No modules with config.json found"}
384
+ ${0<i.length?i:" // No modules with config.json found"}
385
385
  }
386
386
  };
387
387
 
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "publishConfig": {
4
4
  "access": "public"
5
5
  },
6
- "version": "0.0.4",
6
+ "version": "0.0.5",
7
7
  "description": "INITIATOR est un système de gestion de configuration modulaire pour les applications React avec TypeScript/JavaScript. Il fournit une gestion centralisée des configurations, un chargement dynamique des modules, et une intégration transparente avec les variables d'environnement.",
8
8
  "main": "index.js",
9
9
  "keywords": [],