boyney123 / eventcatalog

Discover, Explore and Document your Event Driven Architectures powered by Markdown.

Home Page:https://eventcatalog.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Path contains invalid characters

s1mrankaur opened this issue · comments

Have you read the Contributing Guidelines on issues?

Description

When I run
npm run generate,

I get:

C:\Users\AU\Downloads\backend\backend-catalog\node_modules\fs-extra\lib\mkdirs\utils.js:18
      const error = new Error(`Path contains invalid characters: ${pth}`)
                    ^

Error: Path contains invalid characters: C:\Users\AU\Downloads\backend\backend-catalog\domains\Sites\events\<anonymous-schema-1>
    at checkPath (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\fs-extra\lib\mkdirs\utils.js:18:21)
    at Object.module.exports.makeDirSync (C:\Users\SAU\Downloads\backend\backend-catalog\node_modules\fs-extra\lib\mkdirs\make-dir.js:21:3)  
    at C:\Users\AU\Downloads\backend\backend-catalog\node_modules\@eventcatalog\utils\lib\events.js:126:24
    at C:\Users\AU\Downloads\backend\backend-catalog\node_modules\@eventcatalog\plugin-doc-generator-asyncapi\lib\index.js:102:15
    at Array.map (<anonymous>)
    at parseAsyncAPIFile (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\@eventcatalog\plugin-doc-generator-asyncapi\lib\index.js:100:31)
    at processTicksAndRejections (node:internal/process/task_queues:96:5)
    at async Promise.all (index 0)
    at async exports.default (C:\Users\AU\Downloads\backend\vbackend-catalog\node_modules\@eventcatalog\plugin-doc-generator-asyncapi\lib\index.js:132:18)
    at async Promise.all (index 0) {
  code: 'EINVAL'
}
Error: Command failed: cross-env PROJECT_DIR='C:\Users\AU\Downloads\backend\backend-catalog' npm run generate
    at checkExecSyncError (node:child_process:826:11)
    at execSync (node:child_process:900:15)
    at Command.<anonymous> (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\@eventcatalog\core\bin\eventcatalog.js:111:5)        
    at Command.listener [as _actionHandler] (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\commander\index.js:922:31)
    at Command._parseCommand (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\commander\index.js:1503:14)
    at Command._dispatchSubcommand (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\commander\index.js:1443:18)
    at Command._parseCommand (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\commander\index.js:1460:12)
    at Command.parse (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\commander\index.js:1292:10)
    at run (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\@eventcatalog\core\bin\eventcatalog.js:118:7)
    at Object.<anonymous> (C:\Users\AU\Downloads\backend\backend-catalog\node_modules\@eventcatalog\core\bin\eventcatalog.js:125:1) {       
  status: 1,
  signal: null,
  output: [ null, null, null ],
  pid: 5400,
  stdout: null,
  stderr: null
}
`

I tried to add a console log to fs-extra library and I see:

Generating EventCatalog docs using: @eventcatalog/plugin-doc-generator-asyncapi path is C:\Users\AU\Downloads\backend\backend-catalog\domains\Sites pathHasInvalidWinCharacters false path is C:\Users\AU\Downloads\backend\backend-catalog\domains\Sites\services\Site Service Events pathHasInvalidWinCharacters false path is C:\Users\AU\Downloads\backend\backend-catalog\domains\Sites\events\<anonymous-schema-1> pathHasInvalidWinCharacters true path is C:\Users\AU\Downloads\backend\backend-catalog\domains\Sites\events\<anonymous-schema-8> pathHasInvalidWinCharacters true

So, basically it's < and > characters that are problemtic but those paths seem to be generated by the plugin itself.

Steps to reproduce

  1. Bootstrap project using npx @eventcatalog/create-eventcatalog@latest [name]
  2. Add asyncapi file (version 2.6.0)
  3. Update eventcatalog.config.js with

generators: [ [ '@eventcatalog/plugin-doc-generator-asyncapi', { // path to your AsyncAPI files pathToSpec: [path.join(__dirname, 'asyncapi.yml')], // version events if already in catalog (optional) versionEvents: false, domainName: 'Sites' }, ], ],

Expected behavior

It should have generated event catalog documentation

Actual behavior

It breaks with the above mentioned error

Your environment

  • EventCatalog version used: @latest
  • Environment name and version (e.g. Chrome 89, Node.js 16.4): Node 16.13.0
  • Operating system and version (e.g. Ubuntu 20.04.2 LTS): Windows 10 enterprise, 10.0.19044
  • @eventcatalog/plugin-doc-generator-asyncapi : 0.3.5

Resolved it by specifying $id in AsycAPI spec file.