keymanapp / keyman

Keyman cross platform input methods system running on Android, iOS, Linux, macOS, Windows and mobile and desktop web
https://keyman.com/
Other
372 stars 102 forks source link

bug(developer): a package with a File element missing a Description element crashes kmc #11353

Closed mcdurdin closed 2 weeks ago

mcdurdin commented 2 weeks ago

kmc 17.0.316-beta.

Compiling a .kps that is missing <Description>...</Description> for a <File/> element causes the compiler to crash:

TypeError: Cannot read properties of undefined (reading 'trim')
  File "../../../src/compiler/kmp-compiler.ts", line 272, col 41, in kmp.files
    description: file.Description.trim(),
  File "<anonymous>", in Array.map
  File "../../../src/compiler/kmp-compiler.ts", line 269, col 50, in KmpCompiler.transformKpsFileToKmpObject
    kmp.files = this.arrayWrap(kps.Files.File).map((file) => {
  File "../../../src/compiler/kmp-compiler.ts", line 154, col 22, in KmpCompiler.transformKpsToKmpObject
    const kmp = this.transformKpsFileToKmpObject(kpsFilename, kps);
  File "../../../src/compiler/kmp-compiler.ts", line 95, col 30, in KmpCompiler.run
    const kmpJsonData = this.transformKpsToKmpObject(inputFilename);
  File "/C:/src/keyboards/node_modules/@keymanapp/kmc/build/src/commands/buildClasses/BuildActivity.js", line 9, col 39, in BuildPackage.runCompiler
  File "/C:/src/keyboards/node_modules/@keymanapp/kmc/build/src/commands/buildClasses/BuildPackage.js", line 10, col 16, in BuildPackage.build
  File "/C:/src/keyboards/node_modules/@keymanapp/kmc/build/src/commands/buildClasses/BuildProject.js", line 103, col 22, in ProjectBuilder.buildTarget
  File "/C:/src/keyboards/node_modules/@keymanapp/kmc/build/src/commands/buildClasses/BuildProject.js", line 89, col 26, in ProjectBuilder.buildProjectTargets
  File "/C:/src/keyboards/node_modules/@keymanapp/kmc/build/src/commands/buildClasses/BuildProject.js", line 50, col 18, in ProjectBuilder.run
sentry-io[bot] commented 2 weeks ago

Sentry Issue: KEYMAN-DEVELOPER-1XD