@ts-for-gir/cli 4.0.0-beta.2 → 4.0.0-beta.3

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.
@@ -2,11 +2,9 @@
2
2
  * The ModuleLoader is used for reading gir modules from the file system and to solve conflicts (e.g. Gtk-3.0 and Gtk-4.0 would be a conflict)
3
3
  */
4
4
  import inquirer from 'inquirer';
5
- import glob from 'tiny-glob';
6
- import { basename } from 'path';
7
- import { readFile } from 'fs/promises';
5
+ import { glob } from 'glob';
6
+ import { basename, join } from 'path';
8
7
  import { bold } from 'colorette';
9
- import { parser } from '@gi.ts/parser';
10
8
  import { DependencyManager, ResolveType, GirModule, Logger, splitModuleName, union, isIterable, WARN_NO_GIR_FILE_FOUND_FOR_PACKAGE, } from '@ts-for-gir/lib';
11
9
  import { Config } from './config.js';
12
10
  export class ModuleLoader {
@@ -130,7 +128,7 @@ export class ModuleLoader {
130
128
  * @param girModulesGroupedMap
131
129
  * @param packageName
132
130
  */
133
- findPackageNamesDependOnPackage(girModulesGroupedMap, packageName) {
131
+ findGirFilesDependOnPackage(girModulesGroupedMap, packageName) {
134
132
  const girModules = [];
135
133
  for (const girModulesGrouped of Object.values(girModulesGroupedMap)) {
136
134
  for (const girModuleResolvedBy of girModulesGrouped.modules) {
@@ -151,10 +149,10 @@ export class ModuleLoader {
151
149
  * @param girModulesGroupedMap
152
150
  * @param packageName
153
151
  */
154
- findPackageNamesDependOnPackages(girModulesGroupedMap, packageNames) {
152
+ findGirFilesDependOnPackages(girModulesGroupedMap, packageNames) {
155
153
  let girModules = [];
156
154
  for (const packageName of packageNames) {
157
- girModules = girModules.concat(this.findPackageNamesDependOnPackage(girModulesGroupedMap, packageName));
155
+ girModules = [...girModules, ...this.findGirFilesDependOnPackage(girModulesGroupedMap, packageName)];
158
156
  }
159
157
  return girModules;
160
158
  }
@@ -207,7 +205,7 @@ export class ModuleLoader {
207
205
  while (goBack) {
208
206
  versionAnswer = await this.askForVersionsPrompt(girModulesGrouped);
209
207
  // Check modules that depend on the unchosen modules
210
- wouldIgnoreDeps = this.findPackageNamesDependOnPackages(girModulesGroupedMap, versionAnswer.unselected);
208
+ wouldIgnoreDeps = this.findGirFilesDependOnPackages(girModulesGroupedMap, versionAnswer.unselected);
211
209
  // Do not check dependencies that have already been ignored
212
210
  wouldIgnoreDeps = wouldIgnoreDeps.filter((dep) => !ignore.includes(dep.packageName));
213
211
  ignoreDepsAnswer = await this.askIgnoreDepsPrompt(wouldIgnoreDeps);
@@ -289,11 +287,11 @@ export class ModuleLoader {
289
287
  * is required so that all dependencies can be found internally when generating the dependency imports for the module .d.ts file
290
288
  * @param girModules
291
289
  */
292
- setTraverseDependenciesForModules(girModules) {
290
+ async initGirModules(girModules) {
293
291
  for (const girModule of girModules) {
294
292
  const result = {};
295
293
  this.traverseDependencies(girModule.packageName, result);
296
- girModule.module.transitiveDependencies = Object.values(result);
294
+ await girModule.module.initTransitiveDependencies(Object.values(result));
297
295
  }
298
296
  }
299
297
  /**
@@ -306,10 +304,8 @@ export class ModuleLoader {
306
304
  if (!dependency.exists || dependency.path === null) {
307
305
  return null;
308
306
  }
309
- this.log.log(`Parsing ${dependency.path}...`);
310
- const fileContents = await readFile(dependency.path, 'utf8');
311
- const result = parser.parseGir(fileContents);
312
- const girModule = GirModule.load(result, this.config, this.dependencyManager);
307
+ this.log.log(`Loading ${dependency.packageName}...`);
308
+ const girModule = await GirModule.load(dependency, this.config, this.dependencyManager);
313
309
  // Figure out transitive module dependencies
314
310
  this.extendDependencyMapByGirModule(girModule);
315
311
  return girModule;
@@ -362,6 +358,7 @@ export class ModuleLoader {
362
358
  packageName: girModule.packageName,
363
359
  module: girModule,
364
360
  resolvedBy,
361
+ path: dependency.path,
365
362
  };
366
363
  girModules.push(addModule);
367
364
  newModuleFound = true;
@@ -375,17 +372,12 @@ export class ModuleLoader {
375
372
  };
376
373
  }
377
374
  // Figure out transitive module dependencies
378
- this.setTraverseDependenciesForModules(girModules);
375
+ await this.initGirModules(girModules);
379
376
  // Load girModules for dependencies
380
377
  for (const girModule of girModules) {
381
378
  // Load dependencies
382
379
  const transitiveDependencies = girModule.module.transitiveDependencies;
383
380
  if (transitiveDependencies.length > 0) {
384
- for (const transitiveDependency of transitiveDependencies) {
385
- if (ignoreDependencies.includes(transitiveDependency.packageName)) {
386
- this.log.warn(`Load dependency "${transitiveDependency.packageName}" which is in the ignore list, if this should really be ignored also ignore "${girModule.packageName}"`);
387
- }
388
- }
389
381
  await this.loadGirModules(transitiveDependencies, ignoreDependencies, girModules, ResolveType.DEPENDENCE, failedGirModules);
390
382
  }
391
383
  }
@@ -399,52 +391,43 @@ export class ModuleLoader {
399
391
  * @param modules
400
392
  * @param ignore
401
393
  */
402
- async findPackageNames(modules, ignore = []) {
403
- const foundModules = new Set();
404
- for (let i = 0; i < modules.length; i++) {
405
- if (modules[i]) {
406
- const filename = `${modules[i]}.gir`;
407
- let files = [];
408
- for (const girDirectory of this.config.girDirectories) {
409
- try {
410
- files = files.concat(await glob(filename, { cwd: girDirectory }));
411
- }
412
- catch (error) {
413
- this.log.warn(`Error on finding "${filename}" in "${girDirectory}"`, error);
414
- }
415
- }
416
- let globModules = files.map((file) => basename(file, '.gir'));
417
- // Filter out the ignored modules
418
- globModules = globModules.filter((mod) => {
419
- const isIgnored = ignore.includes(mod);
420
- if (isIgnored) {
421
- this.log.warn(`Ignore ${mod}`);
422
- }
423
- return !isIgnored;
424
- });
425
- globModules.forEach((mod) => foundModules.add(mod));
394
+ async findGirFiles(globPackageNames, ignore = []) {
395
+ const foundFiles = new Set();
396
+ for (let i = 0; i < globPackageNames.length; i++) {
397
+ if (!globPackageNames[i]) {
398
+ continue;
426
399
  }
400
+ const filename = `${globPackageNames[i]}.gir`;
401
+ const pattern = this.config.girDirectories.map((girDirectory) => join(girDirectory, filename));
402
+ const ignoreGirs = ignore.map((girDirectory) => girDirectory + '.gir');
403
+ const files = await glob(pattern, { ignore: ignoreGirs });
404
+ files.forEach((file) => foundFiles.add(file));
427
405
  }
428
- return foundModules;
406
+ return foundFiles;
429
407
  }
430
- packageNamesToDependencies(packageNames) {
431
- return Array.from(packageNames).map((packageName) => {
408
+ async girFilePathToDependencies(girFiles) {
409
+ const dependencies = [];
410
+ for (const girFile of girFiles) {
411
+ const packageName = basename(girFile, '.gir');
432
412
  const { namespace, version } = splitModuleName(packageName);
433
- return this.dependencyManager.get(namespace, version);
434
- });
413
+ const dep = await this.dependencyManager.get(namespace, version);
414
+ dependencies.push(dep);
415
+ }
416
+ return dependencies;
435
417
  }
436
418
  /**
437
- * Loads all found `packageNames` and sorts out those that the user does not want to use including their dependencies
419
+ * Loads all found `packageNames`
438
420
  * @param girDirectories
439
421
  * @param packageNames
422
+ * @param doNotAskForVersionOnConflict Set this to false if you want to get a prompt for each version conflict
440
423
  */
441
424
  async getModulesResolved(packageNames, ignore = [], doNotAskForVersionOnConflict = true) {
442
- const foundPackageNames = await this.findPackageNames([...packageNames], ignore);
425
+ const girFiles = await this.findGirFiles([...packageNames], ignore);
443
426
  // Always require these because GJS does...
444
- const GLib = this.dependencyManager.get('GLib', '2.0');
445
- const Gio = this.dependencyManager.get('Gio', '2.0');
446
- const GObject = this.dependencyManager.get('GObject', '2.0');
447
- const dependencies = this.packageNamesToDependencies(foundPackageNames);
427
+ const GLib = await this.dependencyManager.get('GLib', '2.0');
428
+ const Gio = await this.dependencyManager.get('Gio', '2.0');
429
+ const GObject = await this.dependencyManager.get('GObject', '2.0');
430
+ const dependencies = await this.girFilePathToDependencies(girFiles);
448
431
  const { loaded, failed } = await this.loadGirModules([
449
432
  GLib,
450
433
  Gio,
@@ -464,16 +447,22 @@ export class ModuleLoader {
464
447
  return { keep, grouped, ignore, failed };
465
448
  }
466
449
  /**
467
- * Find modules with the possibility to use wild cards for module names. E.g. `Gtk*` or `'*'`
450
+ * Find modules
468
451
  * @param girDirectories
469
452
  * @param modules
470
453
  */
471
454
  async getModules(modules, ignore = []) {
472
- const foundPackageNames = await this.findPackageNames(modules, ignore);
473
- const dependencies = this.packageNamesToDependencies(foundPackageNames);
455
+ const girFiles = await this.findGirFiles(modules, ignore);
456
+ const dependencies = await this.girFilePathToDependencies(girFiles);
474
457
  const { loaded, failed } = await this.loadGirModules(dependencies, ignore);
475
458
  const grouped = this.groupGirFiles(loaded);
476
459
  return { grouped, loaded, failed: Array.from(failed) };
477
460
  }
461
+ /** Start parsing the gir modules */
462
+ parse(girModules) {
463
+ for (const girModule of girModules) {
464
+ girModule.module.parse();
465
+ }
466
+ }
478
467
  }
479
468
  //# sourceMappingURL=module-loader.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"module-loader.js","sourceRoot":"","sources":["../src/module-loader.ts"],"names":[],"mappings":"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"}
package/lib/start.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  import yargs from 'yargs';
3
3
  import { hideBin } from 'yargs/helpers';
4
- import { generate, list, doc } from './commands/index.js';
4
+ import { generate, list, doc, copy } from './commands/index.js';
5
5
  import { Config } from './config.js';
6
6
  void yargs(hideBin(process.argv))
7
7
  .scriptName(Config.appName)
@@ -9,6 +9,7 @@ void yargs(hideBin(process.argv))
9
9
  .usage(Config.usage)
10
10
  .command(generate.command, generate.description, generate.builder, generate.handler)
11
11
  .command(list.command, list.description, list.builder, list.handler)
12
+ .command(copy.command, copy.description, copy.builder, copy.handler)
12
13
  .command(doc.command, doc.description, doc.builder, doc.handler)
13
14
  .demandCommand(1)
14
15
  .help().argv;
package/lib/start.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAA;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;KACnF,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KACnE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;KAC/D,aAAa,CAAC,CAAC,CAAC;KAChB,IAAI,EAAE,CAAC,IAAI,CAAA"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../src/start.ts"],"names":[],"mappings":";AACA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AAEpC,KAAK,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;KAC5B,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC;KAC1B,MAAM,EAAE;KACR,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;KACnB,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,OAAO,CAAC;KACnF,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KACnE,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC;KACnE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC;KAC/D,aAAa,CAAC,CAAC,CAAC;KAChB,IAAI,EAAE,CAAC,IAAI,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ts-for-gir/cli",
3
- "version": "4.0.0-beta.2",
3
+ "version": "4.0.0-beta.3",
4
4
  "description": "TypeScript type definition generator for GObject introspection GIR files",
5
5
  "module": "lib/index.js",
6
6
  "main": "lib/index.js",
@@ -54,28 +54,28 @@
54
54
  ],
55
55
  "devDependencies": {
56
56
  "@types/inquirer": "^9.0.7",
57
- "@types/node": "^20.11.27",
57
+ "@types/node": "^20.12.7",
58
58
  "@types/yargs": "^17.0.32",
59
- "@typescript-eslint/eslint-plugin": "^7.2.0",
60
- "@typescript-eslint/parser": "^7.2.0",
59
+ "@typescript-eslint/eslint-plugin": "^7.7.0",
60
+ "@typescript-eslint/parser": "^7.7.0",
61
61
  "eslint": "^8.57.0",
62
62
  "eslint-config-prettier": "^9.1.0",
63
63
  "eslint-plugin-prettier": "^5.1.3",
64
64
  "prettier": "^3.2.5",
65
65
  "rimraf": "^5.0.5",
66
66
  "ts-node": "^10.9.2",
67
- "typescript": "^5.4.2"
67
+ "typescript": "^5.4.5"
68
68
  },
69
69
  "dependencies": {
70
70
  "@gi.ts/parser": "^2.0.0",
71
- "@ts-for-gir/generator-base": "^4.0.0-beta.2",
72
- "@ts-for-gir/generator-html-doc": "^4.0.0-beta.2",
73
- "@ts-for-gir/generator-typescript": "^4.0.0-beta.2",
74
- "@ts-for-gir/lib": "^4.0.0-beta.2",
71
+ "@ts-for-gir/generator-base": "^4.0.0-beta.3",
72
+ "@ts-for-gir/generator-html-doc": "^4.0.0-beta.3",
73
+ "@ts-for-gir/generator-typescript": "^4.0.0-beta.3",
74
+ "@ts-for-gir/lib": "^4.0.0-beta.3",
75
75
  "colorette": "^2.0.20",
76
76
  "cosmiconfig": "^9.0.0",
77
- "inquirer": "^9.2.16",
78
- "tiny-glob": "^0.2.9",
77
+ "glob": "^10.3.12",
78
+ "inquirer": "^9.2.19",
79
79
  "yargs": "^17.7.2"
80
80
  }
81
81
  }
@@ -0,0 +1,94 @@
1
+ /**
2
+ * Everything you need for the `ts-for-gir copy` command is located here
3
+ */
4
+
5
+ import { Argv, BuilderCallback } from 'yargs'
6
+ import { copyFile, mkdir } from 'fs/promises'
7
+ import { basename, join } from 'path'
8
+ import { ModuleLoader } from '../module-loader.js'
9
+ import { Config } from '../config.js'
10
+ import { Logger, ERROR_NO_MODULES_FOUND } from '@ts-for-gir/lib'
11
+
12
+ import type { ConfigFlags, UserConfig, GirModuleResolvedBy } from '@ts-for-gir/lib'
13
+
14
+ const command = 'copy [modules..]'
15
+
16
+ const description = 'Scan for *.gir files and copy them to a new directory'
17
+
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ const builder: BuilderCallback<any, ConfigFlags> = (yargs: Argv<any>) => {
20
+ const optionNames = Object.keys(Config.copyOptions)
21
+ for (const optionName of optionNames) {
22
+ yargs = yargs.option(optionName, Config.copyOptions[optionName])
23
+ }
24
+ return yargs.example(examples) as Argv<ConfigFlags>
25
+ }
26
+
27
+ const copyGirFile = async (config: UserConfig, depModule: GirModuleResolvedBy) => {
28
+ if (!depModule.path) {
29
+ Logger.danger(`- ${depModule.packageName} not found`)
30
+ return
31
+ }
32
+ if (!config.outdir) {
33
+ Logger.error(`outdir not found`)
34
+ return
35
+ }
36
+ const filename = basename(depModule.path)
37
+ const dest = join(config.outdir, filename)
38
+ if (depModule.path === dest) {
39
+ Logger.yellow(`Skip ${depModule.path}`)
40
+ return
41
+ }
42
+ Logger.success(`Copy ${depModule.path}`)
43
+ await copyFile(depModule.path, dest)
44
+ }
45
+
46
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
47
+ const handler = async (args: ConfigFlags) => {
48
+ const config = await Config.load(args)
49
+ const generateConfig = Config.getOptionsGeneration(config)
50
+ const moduleLoader = new ModuleLoader(generateConfig)
51
+ const { grouped, failed } = await moduleLoader.getModules(config.modules, config.ignore)
52
+ const moduleGroups = Object.values(grouped)
53
+ if (Object.keys(grouped).length === 0) {
54
+ return Logger.error(ERROR_NO_MODULES_FOUND(config.girDirectories))
55
+ }
56
+
57
+ if (!config.outdir) {
58
+ Logger.error(`outdir not found`)
59
+ return
60
+ }
61
+
62
+ await mkdir(config.outdir, { recursive: true }).catch((err) => {
63
+ Logger.error(`Failed to copy gir files to ${config.outdir}: ${err}`)
64
+ })
65
+
66
+ for (const module of moduleGroups) {
67
+ for (const mod of module.modules) {
68
+ await copyGirFile(config, mod)
69
+ }
70
+ }
71
+
72
+ if (failed.length > 0) {
73
+ Logger.danger('\nDependencies not found:')
74
+ for (const fail of failed) {
75
+ Logger.white(`- ${fail}`)
76
+ }
77
+ }
78
+ }
79
+
80
+ const examples: ReadonlyArray<[string, string?]> = [
81
+ [`${Config.appName} copy -o ./gir`, `Copy found *.gir files to ./gir`],
82
+ [
83
+ `${Config.appName} copy -g /usr/share/gir-1.0 --ignore=Gtk-3.0 xrandr-1.3 -o ./gir`,
84
+ 'Copy all found *.gir files in /usr/share/gir-1.0 excluding Gtk-3.0 and xrandr-1.3 to ./gir',
85
+ ],
86
+ ]
87
+
88
+ export const copy = {
89
+ command,
90
+ description,
91
+ builder,
92
+ handler,
93
+ examples,
94
+ }
@@ -28,7 +28,7 @@ const builder: BuilderCallback<any, ConfigFlags> = (yargs: Argv<any>) => {
28
28
  const handler = async (args: ConfigFlags) => {
29
29
  const config = await Config.load(args)
30
30
 
31
- const generateConfig = Config.getGenerateConfig(config)
31
+ const generateConfig = Config.getOptionsGeneration(config)
32
32
  const moduleLoader = new ModuleLoader(generateConfig)
33
33
  const { keep } = await moduleLoader.getModulesResolved(
34
34
  config.modules,
@@ -30,7 +30,7 @@ const builder: BuilderCallback<any, ConfigFlags> = (yargs: Argv<any>) => {
30
30
  const handler = async (args: ConfigFlags) => {
31
31
  const config = await Config.load(args)
32
32
 
33
- const generateConfig = Config.getGenerateConfig(config)
33
+ const generateConfig = Config.getOptionsGeneration(config)
34
34
  const moduleLoader = new ModuleLoader(generateConfig)
35
35
  const { keep } = await moduleLoader.getModulesResolved(
36
36
  config.modules,
@@ -42,6 +42,8 @@ const handler = async (args: ConfigFlags) => {
42
42
  return Logger.error(ERROR_NO_MODULES_FOUND(config.girDirectories))
43
43
  }
44
44
 
45
+ moduleLoader.parse(keep)
46
+
45
47
  const tsForGir = new GenerationHandler(generateConfig, GeneratorType.TYPES)
46
48
 
47
49
  const girModules = Array.from(keep).map((girModuleResolvedBy) => girModuleResolvedBy.module)
@@ -77,10 +79,6 @@ class TypeScriptFormatter extends Formatter {
77
79
  })
78
80
  } catch (error) {
79
81
  return Promise.resolve(input)
80
- // TODO: Don't return invalid TypeScript, useful for debugging for now.
81
- // console.error('Failed to format output...')
82
- // console.error(input)
83
- // throw error
84
82
  }
85
83
  }
86
84
  }
@@ -1,3 +1,4 @@
1
+ export * from './copy.js'
1
2
  export * from './doc.js'
2
3
  export * from './generate.js'
3
4
  export * from './list.js'
@@ -25,7 +25,7 @@ const builder: BuilderCallback<any, ConfigFlags> = (yargs: Argv<any>) => {
25
25
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
26
  const handler = async (args: ConfigFlags) => {
27
27
  const config = await Config.load(args)
28
- const generateConfig = Config.getGenerateConfig(config)
28
+ const generateConfig = Config.getOptionsGeneration(config)
29
29
  const moduleLoader = new ModuleLoader(generateConfig)
30
30
  const { grouped, failed } = await moduleLoader.getModules(config.modules, config.ignore)
31
31
  const moduleGroups = Object.values(grouped)
@@ -43,10 +43,16 @@ const handler = async (args: ConfigFlags) => {
43
43
  (moduleGroup) => moduleGroup.modules[0].resolvedBy === ResolveType.DEPENDENCE,
44
44
  )
45
45
 
46
+ Logger.info('\nSearch for gir files in:')
47
+ for (const dir of config.girDirectories) {
48
+ Logger.white(`- ${dir}`)
49
+ }
50
+
46
51
  Logger.info('\nSelected Modules:')
47
52
  for (const moduleGroup of byHandModules) {
48
53
  for (const depModule of moduleGroup.modules) {
49
54
  Logger.white(`- ${depModule.packageName}`)
55
+ Logger.gray(` - ${depModule.path}`)
50
56
  }
51
57
  }
52
58
 
@@ -55,6 +61,7 @@ const handler = async (args: ConfigFlags) => {
55
61
  for (const moduleGroup of depModules) {
56
62
  for (const depModule of moduleGroup.modules) {
57
63
  Logger.white(`- ${depModule.packageName}`)
64
+ Logger.gray(`- ${depModule.path}`)
58
65
  }
59
66
  }
60
67
  }
@@ -65,6 +72,7 @@ const handler = async (args: ConfigFlags) => {
65
72
  Logger.white(`- ${moduleGroup.namespace}`)
66
73
  for (const conflictModule of moduleGroup.modules) {
67
74
  Logger.white(` - ${conflictModule.packageName}`)
75
+ Logger.gray(` - ${conflictModule.path}`)
68
76
  }
69
77
  }
70
78
  }
package/src/config.ts CHANGED
@@ -6,9 +6,10 @@ import { Options } from 'yargs'
6
6
  import { cosmiconfig, Options as ConfigSearchOptions } from 'cosmiconfig'
7
7
  import { join, extname, dirname, resolve } from 'path'
8
8
  import { writeFile } from 'fs/promises'
9
+ import { existsSync } from 'fs'
9
10
  import { merge, isEqual, Logger, APP_NAME, APP_USAGE, ERROR_CONFIG_EXTENSION_UNSUPPORTED } from '@ts-for-gir/lib'
10
11
 
11
- import type { UserConfig, ConfigFlags, UserConfigLoadResult, GenerateConfig } from '@ts-for-gir/lib'
12
+ import type { UserConfig, ConfigFlags, UserConfigLoadResult, OptionsGeneration } from '@ts-for-gir/lib'
12
13
 
13
14
  export class Config {
14
15
  static appName = APP_NAME
@@ -175,6 +176,17 @@ export class Config {
175
176
  static listOptions = {
176
177
  modules: this.options.modules,
177
178
  girDirectories: Config.options.girDirectories,
179
+ root: this.options.root,
180
+ ignore: Config.options.ignore,
181
+ configName: Config.options.configName,
182
+ verbose: Config.options.verbose,
183
+ }
184
+
185
+ static copyOptions = {
186
+ modules: this.options.modules,
187
+ girDirectories: Config.options.girDirectories,
188
+ root: this.options.root,
189
+ outdir: Config.options.outdir,
178
190
  ignore: Config.options.ignore,
179
191
  configName: Config.options.configName,
180
192
  verbose: Config.options.verbose,
@@ -183,6 +195,7 @@ export class Config {
183
195
  static docOptions = {
184
196
  modules: this.options.modules,
185
197
  girDirectories: Config.options.girDirectories,
198
+ root: this.options.root,
186
199
  outdir: Config.options.outdir,
187
200
  ignore: Config.options.ignore,
188
201
  verbose: Config.options.verbose,
@@ -254,8 +267,8 @@ export class Config {
254
267
  return configFile
255
268
  }
256
269
 
257
- public static getGenerateConfig(config: UserConfig): GenerateConfig {
258
- const generateConfig: GenerateConfig = {
270
+ public static getOptionsGeneration(config: UserConfig): OptionsGeneration {
271
+ const generateConfig: OptionsGeneration = {
259
272
  girDirectories: config.girDirectories,
260
273
  root: config.root,
261
274
  outdir: config.outdir,
@@ -420,14 +433,11 @@ function getDefaultGirDirectories(): string[] {
420
433
  const girDirectories = [
421
434
  '/usr/local/share/gir-1.0',
422
435
  '/usr/share/gir-1.0',
436
+ '/usr/share/*/gir-1.0',
423
437
  '/usr/share/gnome-shell',
424
438
  '/usr/share/gnome-shell/gir-1.0',
425
- '/usr/lib64/mutter-10',
426
- '/usr/lib64/mutter-11',
427
- '/usr/lib64/mutter-12',
428
- '/usr/lib/x86_64-linux-gnu/mutter-10',
429
- '/usr/lib/x86_64-linux-gnu/mutter-11',
430
- '/usr/lib/x86_64-linux-gnu/mutter-12',
439
+ '/usr/lib64/mutter-*',
440
+ '/usr/lib/x86_64-linux-gnu/mutter-*',
431
441
  ]
432
442
  // NixOS and other distributions does not have a /usr/local/share directory.
433
443
  // Instead, the nix store paths with Gir files are set as XDG_DATA_DIRS.
@@ -435,7 +445,7 @@ function getDefaultGirDirectories(): string[] {
435
445
  const dataDirs = process.env['XDG_DATA_DIRS']?.split(':') || []
436
446
  for (let dataDir of dataDirs) {
437
447
  dataDir = join(dataDir, 'gir-1.0')
438
- if (!girDirectories.includes(dataDir)) {
448
+ if (!girDirectories.includes(dataDir) && existsSync(dataDir)) {
439
449
  girDirectories.push(dataDir)
440
450
  }
441
451
  }
@@ -12,14 +12,14 @@ import { GeneratorType, Generator } from '@ts-for-gir/generator-base'
12
12
  import { TypeDefinitionGenerator } from '@ts-for-gir/generator-typescript'
13
13
  // import { HtmlDocGenerator } from '@ts-for-gir/generator-html-doc'
14
14
 
15
- import type { GenerateConfig, NSRegistry } from '@ts-for-gir/lib'
15
+ import type { OptionsGeneration, NSRegistry } from '@ts-for-gir/lib'
16
16
 
17
17
  export class GenerationHandler {
18
18
  log: Logger
19
19
  generator: Generator
20
20
 
21
21
  constructor(
22
- private readonly config: GenerateConfig,
22
+ private readonly config: OptionsGeneration,
23
23
  type: GeneratorType,
24
24
  ) {
25
25
  this.log = new Logger(config.verbose, 'GenerationHandler')
@@ -61,8 +61,6 @@ export class GenerationHandler {
61
61
 
62
62
  for (const girModule of girModules) {
63
63
  this.log.log(` - ${girModule.packageName} ...`)
64
- girModule.start(girModules)
65
-
66
64
  await this.generator.generate(registry, girModule)
67
65
  }
68
66