You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I thought this might be why the server wasn't starting, but moving the option flag alone didn't fix it. The server still wasn't started, I'm returned immediately to my shell, and the opened browser naturally can't connect. Using debug output, I determined generate is set to { routes: undefined, types: undefined } when --open is used. Adding -g as an option alongside --open does result in the expected route and type generation, but the server still stops immediately after being started and I'm returned to a shell. I had to additionally add -s as an option to keep the server running and for the browser opened by --open to correctly load the Swagger UI.
So to summarize,
Reproduction
Run the quickstart command, ie. npx counterfact --open https://api.artifactsmmo.com/openapi.json
Expected result:
Routes and types are generated
Server is started and remains running, thereby serving the Swagger UI when the browser is opened
Actual result:
Routes and types aren't generated
Server is started (according to debug) but immediately stops
Possible fixes
Change generate and serve defaults when --open is specified to be more intuitive
Update quickstart command to fix option argument position and include -g and -s
Here's the (start) of the debug output when started without --open, where we can see it actually starting to get busy.
tturner@dev:~/wsldev/counterfact-test$ DEBUG=counterfact:* npx counterfact https://api.artifactsmmo.com
/openapi.json
counterfact:server:repository dirname is /home/tturner/wsldev/counterfact-test/node_modules/counterfact/dist/typescript-generator +0ms
counterfact:bin:counterfact running ./bin/counterfact.js +0ms
counterfact:bin:counterfact executing the main function +2ms
counterfact:bin:counterfact options: { port: 3100, prefix: '', repl: true, serve: true, watch: true, generate: true } +0ms
counterfact:bin:counterfact source: https://api.artifactsmmo.com/openapi.json +1ms
counterfact:bin:counterfact destination: . +0ms
counterfact:bin:counterfact loading counterfact ({ basePath: '/home/tturner/wsldev/counterfact-test', generate: { routes: true, types: true }, includeSwaggerUi: true, openApiPath: 'https://api.artifactsmmo.com/openapi.json', port: 3100, proxyPaths: Map(1) { '' => false }, proxyUrl: '', routePrefix: '', startRepl: true, startServer: true, watch: { routes: true, types: true } }) +0ms
counterfact:server:create-koa-app basePath: /home/tturner/wsldev/counterfact-test +0ms
counterfact:server:create-koa-app routes [] +0ms
counterfact:bin:counterfact loaded counterfact {
basePath: '/home/tturner/wsldev/counterfact-test',
generate: { routes: true, types: true },
includeSwaggerUi: true,
openApiPath: 'https://api.artifactsmmo.com/openapi.json',
port: 3100,
proxyPaths: Map(1) { '' => false },
proxyUrl: '',
routePrefix: '',
startRepl: true,
startServer: true,
watch: { routes: true, types: true }
} +225ms
____ ____ _ _ _ _ ___ ____ ____ ____ ____ ____ ___
|___ [__] |__| |\| | |=== |--< |--- |--| |___ |
my other server’s a Kubernetes cluster
| API Base URL ==> http://localhost:3100
| Swagger UI ==> http://localhost:3100/counterfact/swagger/
| Instructions ==> https://counterfact.dev/docs/usage.html
| Help/feedback ==> https://github.com/pmcelhaney/counterfact/issues
Watching for changes
Starting server
Starting REPL, type .help for more info
counterfact:bin:counterfact starting server +1ms
counterfact:typescript-generator:generate generating code from https://api.artifactsmmo.com/openapi.json to /home/tturner/wsldev/counterfact-test +0ms
counterfact:typescript-generator:generate initializing the .cache directory +0ms
counterfact:typescript-generator:generate ensuring the directory containing .gitgnore exists +0ms
counterfact:typescript-generator:generate creating the .gitignore file if it doesn't already exist +0ms
counterfact:typescript-generator:generate creating the .cache/README.md file +0ms
counterfact:typescript-generator:generate done initializing the .cache directory +13ms
counterfact:typescript-generator:generate creating specification from https://api.artifactsmmo.com/openapi.json +0ms
counterfact:typescript-generator:generate created specification: $o Specification {
cache: Map(0) {},
rootUrl: 'https://api.artifactsmmo.com/openapi.json'
} +0ms
counterfact:typescript-generator:generate reading the #/paths from the specification +0ms
counterfact:typescript-generator:specification getting requirement at #/paths from +0ms
... etc etc
End of debug output using -g --open
Here we see the server starting and immediately ending I guess
counterfact:server:repository did write /home/tturner/wsldev/counterfact-test/types/paths/resources.types.ts +1ms
counterfact:typescript-generator:generate finished writing the files +502ms
counterfact:bin:counterfact started server +720ms
counterfact:bin:counterfact opening browser +0ms
counterfact:bin:counterfact opened browser +5ms
tturner@dev:~/wsldev/counterfact-test$
The text was updated successfully, but these errors were encountered:
npx counterfact@latest https://petstore3.swagger.io/api/v3/openapi.json api
When no options are supplied, Counterfact defaults to doing everything (generates code, watches for changes, starts the server, and starts the REPL).
The --swagger option is pointless, as there's no real advantage to starting the server without Swagger UI.
This is great feedback, thank you! I've fixed the immediate problem (getting rid of --open in the quick start docs). Leaving this issue open until I clean up the remaining confusion.
Quickstart suggests the following command:
This doesn't seem to match the syntax provided by
--help
which indicates options should go between the command and the schema location:I thought this might be why the server wasn't starting, but moving the option flag alone didn't fix it. The server still wasn't started, I'm returned immediately to my shell, and the opened browser naturally can't connect. Using debug output, I determined
generate
is set to{ routes: undefined, types: undefined }
when--open
is used. Adding-g
as an option alongside--open
does result in the expected route and type generation, but the server still stops immediately after being started and I'm returned to a shell. I had to additionally add-s
as an option to keep the server running and for the browser opened by--open
to correctly load the Swagger UI.So to summarize,
Reproduction
npx counterfact --open https://api.artifactsmmo.com/openapi.json
Expected result:
Actual result:
Possible fixes
--open
is specified to be more intuitive-g
and-s
Debug output using
--open
:Debug output without
--open
:Here's the (start) of the debug output when started without
--open
, where we can see it actually starting to get busy.End of debug output using
-g --open
Here we see the server starting and immediately ending I guess
The text was updated successfully, but these errors were encountered: