Project Haystack Core code generation tools
npm install haystack-codegen
npm install haystack-codegen
`
Or to install globally...
`
npm install haystack-codegen --global
`
Use
Use the -t option to specify a space separated list of tags. For example, to create all the TypeScript code for a site and ahu tag...
`
defcodegen -t site ahu
`
If you want to generate TypeScript for all of the tags in a defs database run...
`
defcodegen -t all
`
Tip: try running typedoc on the generated code for some nice looking HTML documentation!
$3
The tool runs relative to the directory it is run in. The default generated file path is ./src/haystack/types.ts. An alternative file can be specified via the -f option...
`
defcodegen -t site ahu -f ./src/foo/bar.ts
`
$3
The tool uses defs to generate TypeScript code. The defs database can be specified in a number of ways. By default...
* The tool looks for the FIN_HOME environment variable. If found, the defs will be compiled from the $FIN_HOME/lib/pod directory.
* The tool looks for the FAN_HOME environment variable. If found, the defs will be compiled from the $FAN_HOME/lib.fan directory. In this scenario only POD files that start with ph will be used.
* As a last resort, the tool will fallback to the def library embedded into haystack-codegen. Please note, this library could easily become out of date quickly.
#### Loading defs from a server
Due to the dynamic nature of defs, the most commonly used way is to load defs from a running server.
Ensure server authentication is disabled when doing this (for FIN/SkySpark use the -noAuth option on start up).
For instance, to generate the TypeScript code for the site tag from a server's demo project...
`
defcodegen -t site -u http://localhost:8080/api/demo
`
$3
For more information on command line options run defcodegen --help`.