Files

398 lines
15 KiB
JSON
Raw Permalink Normal View History

2022-10-22 06:07:37 -04:00
{
"$schema": "http://json-schema.org/draft-07/schema",
"$id": "https://wails.io/schemas/config.v2.json",
"required": [],
"title": "Wails configuration schema",
"description": "A JSON representation of a Wails project config file.",
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The project name",
"default": "wailsapp"
},
"assetdir": {
"type": "string",
"description": "Relative path to the directory containing the compiled assets. This is normally inferred, and can be left empty."
},
"reloaddirs": {
"type": "string",
"description": "Additional directories to trigger reloads (comma separated). Often, this is only used for advanced asset configurations."
},
2022-11-03 21:21:40 +11:00
"build:dir": {
"type": "string",
"description": "The directory where the build files reside.",
"default": "build",
"examples": [
"./build",
"/absolute/path/to/build",
"C:\\absolute\\path\\to\\build"
]
},
"frontend:dir": {
"type": "string",
"description": "The directory where the frontend files reside.",
"default": "frontend",
"examples": [
"./src",
"/absolute/path/to/frontend",
"C:\\absolute\\path\\to\\frontend"
]
},
2022-10-22 06:07:37 -04:00
"frontend:install": {
"type": "string",
"description": "The command to install dependencies. Run in the frontend directory.",
2022-11-03 21:21:40 +11:00
"examples": [
"npm install"
]
2022-10-22 06:07:37 -04:00
},
"frontend:build": {
"type": "string",
"description": "The command to build the assets. Run in the frontend directory.",
2022-11-03 21:21:40 +11:00
"examples": [
"npm run build"
]
2022-10-22 06:07:37 -04:00
},
"frontend:dev": {
"type": "string",
"description": "[Deprecated] This command has been replaced by `frontend:dev:build`. If `frontend:dev:build` is not specified, Wails will fall back to this command. If this command is also not specified, Wails will fall back to `frontend:build`."
},
"frontend:dev:build": {
"type": "string",
"description": "The equivalent of `frontend:build` during development. If not specified, it falls back to `frontend:dev`."
},
"frontend:dev:install": {
"type": "string",
"description": "The equivalent of `frontend:install` during development. If not specified, it falls back to `frontend:install`."
},
"frontend:dev:watcher": {
"type": "string",
"description": "This command is run in a separate process on `wails dev`. Useful for third-party watchers or for starting third-party dev servers."
},
"frontend:dev:serverUrl": {
"type": "string",
"description": "URL to a 3rd party dev server to be used to serve assets (eg. Vite). If this is set to 'auto', then the devServerUrl will be inferred from the Vite output",
"examples": [
"auto",
"http://localhost:3000"
],
2022-10-22 06:07:37 -04:00
"oneOf": [
{
"format": "uri"
},
{
"const": "auto"
}
2022-10-22 06:07:37 -04:00
]
},
"wailsjsdir": {
"type": "string",
"description": "Relative path to the directory where the auto-generated JS modules will be created.",
"format": "uri-reference",
2022-11-03 21:21:40 +11:00
"default": "The value of frontend:dir"
2022-10-22 06:07:37 -04:00
},
"version": {
"description": "Project config version",
"default": "2",
"enum": [
"2"
]
2022-10-22 06:07:37 -04:00
},
"outputfilename": {
"type": "string",
"description": "The name of the binary"
},
"debounceMS": {
"type": "number",
"description": "The debounce time for hot-reload of the built-in dev server. Measured in milliseconds.",
"default": 100
},
"devServer": {
"type": "string",
"description": "The address to bind the wails dev server to.",
"default": "localhost:34115",
"format": "uri"
},
"appargs": {
"type": "string",
"description": "Arguments passed to the application in shell style when in dev mode."
},
"runNonNativeBuildHooks": {
"type": "boolean",
"description": "Whether to run build hooks that are defined for an OS other than the host OS.",
"default": false
},
"preBuildHooks": {
"$ref": "#/definitions/buildHooks"
},
"postBuildHooks": {
"$ref": "#/definitions/buildHooks"
},
"author": {
"type": "object",
"description": "The application author",
"properties": {
"name": {
"type": "string"
},
2022-10-22 06:07:37 -04:00
"email": {
"type": "string",
"format": "email"
}
}
},
"info": {
"type": "object",
"description": "Data used to populate manifests and version info.",
"properties": {
"companyName": {
"type": "string",
"description": "The company name. Defaults to the project name."
},
"productName": {
"type": "string",
"description": "The product name. Defaults to the project name."
},
"productVersion": {
"type": "string",
"description": "The version of the product",
"default": "1.0.0"
},
"copyright": {
"type": "string",
"description": "A copyright string for the product",
"default": "Copyright........."
},
"comments": {
"type": "string",
"description": "A short comment for the app",
"default": "Built using Wails (https://wails.io)"
},
"fileAssociations": {
"type": "array",
"description": "File associations for the app",
"items": {
"type": "object",
"properties": {
"ext": {
"type": "string",
"description": "The extension (minus the leading period). e.g. png"
},
"name": {
"type": "string",
"description": "The name. e.g. PNG File"
},
"description": {
"type": "string",
"description": "Windows-only. The description. It is displayed on the `Type` column on Windows Explorer."
},
"iconName": {
"type": "string",
"description": "The icon name without extension. Icons should be located in build folder. Proper icons will be generated from .png file for both macOS and Windows)"
},
"role": {
"description": "macOS-only. The app’s role with respect to the type. Corresponds to CFBundleTypeRole.",
"allOf": [
{
"$ref": "#/definitions/BundleTypeRole"
}
]
}
}
}
},
"protocols": {
"type": "array",
"description": "Custom URI protocols that should be opened by the application",
"items": {
"type": "object",
"properties": {
"scheme": {
"type": "string",
"description": "protocol scheme. e.g. myapp"
},
"description": {
"type": "string",
"description": "Windows-only. The description. It is displayed on the `Type` column on Windows Explorer."
},
"role": {
"description": "macOS-only. The app’s role with respect to the type. Corresponds to CFBundleTypeRole.",
"allOf": [
{
"$ref": "#/definitions/BundleTypeRole"
}
]
}
}
}
2022-10-22 06:07:37 -04:00
}
}
},
"nsisType": {
"type": "string",
"default": "multiple",
"description": "Type of NSIS Installer for Windows",
"oneOf": [
{
"const": "multiple",
"description": "One installer per architecture"
},
{
"const": "single",
"description": "Single universal installer for all architectures being built"
}
]
},
"obfuscated": {
"type": "boolean",
"default": false,
"description": "Whether the binary should be obfuscated. Uses <https://github.com/burrowers/garble>."
},
"garbleargs": {
"type": "string",
"description": "The arguments to pass to the garble command when using the obfuscated flag"
},
"bindings": {
"type": "object",
"description": "Bindings configurations",
"properties": {
"ts_generation": {
"type": "object",
"description": "model.ts file generation config",
"properties": {
"prefix": {
"type": "string",
"description": "All generated JavaScript entities will be prefixed with this value"
},
"suffix": {
"type": "string",
"description": "All generated JavaScript entities will be suffixed with this value"
},
"outputType": {
"allOf": [
{
"$ref": "#/definitions/BindingsOutputTypes"
}
]
}
}
}
}
2022-10-22 06:07:37 -04:00
}
},
"dependencies": {
"garbleargs": [
"obfuscated"
]
2022-10-22 06:07:37 -04:00
},
"definitions": {
"OsHook": {
"title": "GOOS/*",
"type": "string",
"description": "Executed at build level before/after a build of the specific platform"
},
"OsArchHook": {
"title": "GOOS/GOARCH",
"type": "string",
"description": "Executed at build level before/after a build of the specific platform and arch"
},
"buildHooks": {
"type": "object",
"description": "Build hooks for different targets.",
"additionalProperties": false,
"properties": {
"{GOOS}/{GOARCH}": {
"$ref": "#/definitions/OsArchHook"
},
"{GOOS}/*": {
"$ref": "#/definitions/OsHook"
},
"windows/*": {
"$ref": "#/definitions/OsHook"
},
"linux/*": {
"$ref": "#/definitions/OsHook"
},
"darwin/*": {
"$ref": "#/definitions/OsHook"
},
2022-10-22 06:07:37 -04:00
"*/*": {
"type": "string",
"description": "Executed at build level before/after a build"
}
},
"patternProperties": {
"^[a-zA-Z0-9]+/[a-zA-Z0-9]+$": {
"type": "string",
"title": "GOOS/GOARCH",
"description": "Executed at build level before/after a build of the specific platform and arch"
},
"^[a-zA-Z0-9]+/\\*$": {
"type": "string",
"title": "GOOS/*",
"description": "Executed at build level before/after a build of the specific platform"
}
}
},
"BundleTypeRole": {
"description": "macOS-only. Corresponds to CFBundleTypeRole",
"oneOf": [
{
"description": "CFBundleTypeRole.Editor. Files can be read and edited.",
"type": "string",
"enum": [
"Editor"
]
},
{
"description": "CFBundleTypeRole.Viewer. Files can be read.",
"type": "string",
"enum": [
"Viewer"
]
},
{
"description": "CFBundleTypeRole.Shell",
"type": "string",
"enum": [
"Shell"
]
},
{
"description": "CFBundleTypeRole.QLGenerator",
"type": "string",
"enum": [
"QLGenerator"
]
},
{
"description": "CFBundleTypeRole.None",
"type": "string",
"enum": [
"None"
]
}
]
},
"BindingsOutputTypes": {
"description": "Type of output to generate",
"oneOf": [
{
"description": "Classes",
"type": "string",
"enum": [
"classes"
]
},
{
"description": "Interfaces",
"type": "string",
"enum": [
"interfaces"
]
}
]
}
}
}