@satisfactory-dev/docs.json.ts
v0.12.2
Published
TypeScript mappings for the Docs.json file that ships with Satisfactory
Downloads
233
Readme
Current Plan for Development:
- If the relevant QA Site post gets resolved via a public announcement and/or the inclusion of a license:
- all generated files will be included in the repo
- Docs.json may be included
- Docs.utf8.json may be included
- the contents of data-progress.md do not indicate that data generation is valid, only that it spits out something.
Using
Troubleshooting
- If
SyntaxError: Invalid or unexpected token
occurs- Clear out previous precompiled Ajv validators
- Clear out the generated types folder
- If validation fails despite no apparent changes to the schema
- Clear out previous precompiled Ajv validators as the post-processing (conversion of custom types to regex, etc.) may have changed.
Requirements
- Docker
- recommend vscode devcontainer support
- phpstorm's devcontainer support works but doesn't seem as capable
- One or both of:
- A copy of Update 8's
Docs.json
file - A copy of 1.0's equivalent of
Docs.json
files (they're semi-localised now)
- A copy of Update 8's
Instructions
- Checkout locally
- Load in devcontainer-supporting IDE
- devcontainer setup should automatically run
make install
NODE_OPTIONS
env var may require opening a fresh terminal if you receieve an error along the lines ofTypeError [ERR_UNKNOWN_FILE_EXTENSION]: Unknown file extension ".ts"
- devcontainer setup should automatically run
- Copy
Docs.json
to./data/update8/
- Copy
en-US.json
to./data/1.0/
- Copy
- Run
make validate
- if this fails, either the
Docs.json
(or equivalent thereof) is wrong or the schema is out-of-date - if this succeeds, run
make generate
- if this fails, either the
IDE Integration
- Docs.json.ts.dic can be used by JetBrains' IDEs to suppress false-positive matches in the spellchecker as a result of the contents of
Docs.json
- refer to JetBrains' own documentation for adding
.dic
files to the spell checking.
- refer to JetBrains' own documentation for adding
eslint
can result in the IDE slowing to a crawl if thegenerated-types
folder is not excluded during development.
In a separate project
- run
npm install --save @satisfactory-dev/docs.json.ts
- refer to discover-types.ts for how to generate the types & data
You will need to replace the usage of the
docs
helper with something like the following (where${__dirname}/data/
is the data path in your new project):```ts const __dirname = __dirname_from_meta(import.meta); const ajv = new Ajv({ verbose: true, logger: false, allErrors: false, code: { source: true, esm: true, lines: true, optimize: 2, }, }); configure_ajv(ajv); export const docs = new DocsTsGenerator({ ajv, docs_versions: { version_1_0_0_0: new DocsTsGeneratorVersion({ docs_path: `${__dirname}/../data/1.0/en-US.json`, cache_path: `${__dirname}/../data/1.0/`, UnrealEngineString_quote_mode: 'double', }), update8: new DocsTsGeneratorVersion({ docs_path: `${__dirname}/../data/update8/Docs.json`, cache_path: `${__dirname}/../data/update8/`, UnrealEngineString_quote_mode: 'original', }), }, }); ```
- note: this package will auto-fix issues in generated code according to eslint configs relative to the directory passed to
TypeDefinitionWriter::write()
- note: this package will auto-fix issues in generated code according to eslint configs relative to the directory passed to