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" ,
2023-10-21 20:44:38 +01:00
"examples" : [
"auto" ,
"http://localhost:3000"
],
2022-10-22 06:07:37 -04:00
"oneOf" : [
2023-10-21 20:44:38 +01:00
{
"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" ,
2023-10-21 20:44:38 +01:00
"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" : {
2023-10-21 20:44:38 +01:00
"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)"
2023-10-21 20:44:38 +01:00
},
"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"
2023-11-02 09:26:05 +00:00
}
]
}
}
}
},
"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"
2023-10-21 20:44:38 +01:00
}
]
}
}
}
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"
2023-11-25 19:50:49 +00:00
},
"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" : {
2023-10-21 20:44:38 +01:00
"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" : {
2023-10-21 20:44:38 +01:00
"{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"
}
}
2023-10-21 20:44:38 +01:00
},
"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"
]
}
]
2023-11-25 19:50:49 +00:00
},
"BindingsOutputTypes" : {
"description" : "Type of output to generate" ,
"oneOf" : [
{
"description" : "Classes" ,
"type" : "string" ,
"enum" : [
"classes"
]
},
{
"description" : "Interfaces" ,
"type" : "string" ,
"enum" : [
"interfaces"
]
2023-10-21 20:44:38 +01:00
}
2023-11-25 19:50:49 +00:00
]
2023-10-21 20:44:38 +01:00
}
}
2022-11-24 11:33:58 +01:00
}