Skip to content

Commit

Permalink
feat(compilation): improve error message
Browse files Browse the repository at this point in the history
  • Loading branch information
EmileRolley committed Apr 24, 2024
1 parent 3c12463 commit 060335c
Show file tree
Hide file tree
Showing 3 changed files with 28 additions and 28 deletions.
30 changes: 17 additions & 13 deletions src/compilation/resolveImports.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ function getEngine(
{ depuis }: ImportMacro,
verbose: boolean,
): Engine {
const packageName = depuis.nom
const packageName = depuis?.nom
const fileDirPath = dirname(filePath)

if (packageName === undefined) {
Expand Down Expand Up @@ -85,16 +85,20 @@ importer!:
}
enginesCache[packageName] = engine
} catch (e) {
throw e
// throw new Error(`[Erreur dans la macro 'importer!']
// ${e}
// Le package '${packageName}' n'a pas pu être trouvé. (Le fichier '${modelPath}' est introuvable).
//
// [Solution]
// - Assurez-vous que le package existe et qu'il est correctement installé dans vos 'node_modules'.
// - Assurez-vous que le fichier '${packageName}.model.json' existe à la racine du package. Sinon,
// précisez le chemin du fichier dans la macro 'importer!' grâce à l'attribut 'source'.
// `)
throw new Error(`[Erreur dans la macro 'importer!']
Le package '${packageName}' n'a pas pu être trouvé. (Le fichier '${modelPath}' est introuvable).
[Solution]
- Assurez-vous que le package existe et qu'il est correctement installé dans vos 'node_modules'.
- Assurez-vous que le fichier '${packageName}.model.json' existe à la racine du package. Sinon,
précisez le chemin du fichier dans la macro 'importer!' grâce à l'attribut 'source'.
[Exemple]
importer!:
depuis:
nom: package-name
source: ../custom-package/path/package-name.model.json
`)
}
}

Expand Down Expand Up @@ -254,11 +258,11 @@ Supprimez une des deux définitions de la règle '${ruleName}' dans la macro 'im
rule = engine.getRule(ruleName)
} catch (e) {
throw new Error(`[Erreur dans la macro 'importer!']
La règle '${ruleName}' n'existe pas dans ${importMacro.depuis.nom}
La règle '${ruleName}' n'existe pas dans '${importMacro.depuis.nom}'.
[Solution]
- Vérifiez que le nom de la règle est correct.
- Assurez-vous que la règle '${ruleName}' existe dans le package.
- Assurez-vous que la règle '${ruleName}' existe dans '${importMacro.depuis.nom}'.
`)
}

Expand Down
8 changes: 7 additions & 1 deletion test/compilation/getModelFromSource.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,13 @@ Ajout d'une description`,
expect(() => {
getModelFromSource(join(testDataDir, 'unknown-import.publicodes'))
}).toThrow(
"La règle 'root . unknown' n'existe pas dans my-external-package",
`[Erreur dans la macro 'importer!']
La règle 'root . unknown' n'existe pas dans 'my-external-package'.
[Solution]
- Vérifiez que le nom de la règle est correct.
- Assurez-vous que la règle 'root . unknown' existe dans 'my-external-package'.
`,
)
})

Expand Down
18 changes: 4 additions & 14 deletions tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,21 +8,11 @@
"moduleResolution": "node",
"resolveJsonModule": true,
"sourceMap": true,
"types": [
"jest",
"node"
],
"types": ["jest", "node"],
"declaration": true,
"forceConsistentCasingInFileNames": true,
"allowSyntheticDefaultImports": true
"allowSyntheticDefaultImports": true,
},
"include": [
"src"
],
"exclude": [
"./node_modules/",
"./dist/",
"./jest.config.js",
"./test/"
]
"include": ["src"],
"exclude": ["./node_modules/", "./dist/", "./jest.config.js", "./test/"],
}

0 comments on commit 060335c

Please sign in to comment.