doc: Added plugin dev info
This commit is contained in:
parent
04e332d91e
commit
7029477392
5 changed files with 14 additions and 2 deletions
|
|
@ -104,6 +104,14 @@ But given it's an existing setup, say from emudeck it won't matter much as it's
|
|||
- `bun run download:chromium` downloads degoogled chromium to use as the frontend
|
||||
- `bun run download:nwjs` downloads NW.js to use as a frontend.
|
||||
|
||||
## Plugins
|
||||
|
||||
To create a plugin create a new npm project and install:
|
||||
`bun i --peer @simeonradivoev/gameflow-sdk`
|
||||
|
||||
Then publish the package to npmjs with a tag `gameflow-plugin` to appear in the UI.
|
||||
For more info check the [SDK README](./scripts/sdk/README.md)
|
||||
|
||||
### Tech Stack
|
||||
|
||||
- [Bun](https://bun.com/) for the backend
|
||||
|
|
|
|||
|
|
@ -49,7 +49,8 @@
|
|||
"download:nwjs": "bun scripts/download-nw.ts",
|
||||
"build:audiosprites": "bun ./scripts/generate-audio-sprites.ts",
|
||||
"tsc": "tsc --noEmit",
|
||||
"build:sdk": "bun ./scripts/build-sdk.ts"
|
||||
"build:sdk": "bun ./scripts/build-sdk.ts",
|
||||
"publish:sdk": "bun build:sdk && bun publish --cwd ./dist-sdk/ --access public"
|
||||
},
|
||||
"dependencies": {
|
||||
"7zip-bin": "^5.2.0",
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import sdkPackage from './sdk/package.json';
|
|||
import { emptyDir } from 'fs-extra';
|
||||
import { generateDtsBundle } from 'dts-bundle-generator';
|
||||
import { zodToTs, createAuxiliaryTypeStore, printNode } from 'zod-to-ts';
|
||||
import fs from 'node:fs/promises';
|
||||
|
||||
import * as types from './sdk/sdk';
|
||||
|
||||
|
|
@ -57,6 +58,7 @@ async function generateApiDeclarations ()
|
|||
peerDependencies: appPkg.dependencies
|
||||
};
|
||||
await Bun.write(path.join(outDir, 'package.json'), JSON.stringify(pkg, null, 3));
|
||||
await fs.cp('./scripts/sdk/README.md', path.join(outDir, 'README.md'));
|
||||
}
|
||||
|
||||
await generateApiDeclarations();
|
||||
|
|
@ -12,3 +12,4 @@ The package must expose a main script gameflow will import and validate. It must
|
|||
## Publishing
|
||||
|
||||
For the plugin to show up in the UI for download. It must be published to NPM with the `gameflow-plugin` keyword. Gameflow uses bun to install plugins as packages from npmjs.
|
||||
Follow publishing instruction check the [NPM Docs](https://docs.npmjs.com/packages-and-modules/contributing-packages-to-the-registry)
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"name": "gameflow-sdk",
|
||||
"name": "@simeonradivoev/gameflow-sdk",
|
||||
"types": "index.d.ts",
|
||||
"description": "plugin SDK for the Gameflow Deck Launcher",
|
||||
"keywords": [
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue