mirror of
https://github.com/tauri-apps/tauri.git
synced 2024-11-24 12:14:05 +03:00
Merge remote-tracking branch 'origin/dev' into next
This commit is contained in:
commit
9639caf33f
5
.changes/cli-dev-server-port.md
Normal file
5
.changes/cli-dev-server-port.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
'cli.rs': 'patch'
|
||||
---
|
||||
|
||||
Add `--port` to specify the port used for static files dev server. It can also be specified through `TAURI_DEV_SERVER_PORT` env var.
|
5
.changes/clijs-node-version.md
Normal file
5
.changes/clijs-node-version.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
'cli.js': patch
|
||||
---
|
||||
|
||||
Fix crash when nodejs binary has the version in its name, for example `node-18`
|
5
.changes/css-preprocessor-mime-type.md
Normal file
5
.changes/css-preprocessor-mime-type.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
"tauri-utils": patch
|
||||
---
|
||||
|
||||
Correctly determine mime type of `.less`, `.sass` and `.styl` files.
|
5
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
5
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -47,6 +47,7 @@ body:
|
||||
attributes:
|
||||
label: Platform and versions
|
||||
description: "Output of `npm run tauri info` or `cargo tauri info`"
|
||||
render: text
|
||||
validations:
|
||||
required: true
|
||||
|
||||
@ -54,8 +55,8 @@ body:
|
||||
id: logs
|
||||
attributes:
|
||||
label: Stack trace
|
||||
render: shell
|
||||
|
||||
render: text
|
||||
|
||||
- type: textarea
|
||||
id: context
|
||||
attributes:
|
||||
|
21
.github/workflows/check-generated-files.yml
vendored
21
.github/workflows/check-generated-files.yml
vendored
@ -9,6 +9,7 @@ on:
|
||||
paths:
|
||||
- '.github/workflows/check-generated-files.yml'
|
||||
- 'tooling/api/src/**'
|
||||
- 'tooling/api/docs/js-api.json'
|
||||
- 'core/tauri/scripts/bundle.global.js'
|
||||
- 'core/tauri-utils/src/config.rs'
|
||||
- 'tooling/cli/schema.json'
|
||||
@ -17,6 +18,7 @@ on:
|
||||
paths:
|
||||
- '.github/workflows/check-generated-files.yml'
|
||||
- 'tooling/api/src/**'
|
||||
- 'tooling/api/docs/js-api.json'
|
||||
- 'core/tauri/scripts/bundle.global.js'
|
||||
- 'core/tauri-utils/src/config.rs'
|
||||
- 'tooling/cli/schema.json'
|
||||
@ -30,33 +32,34 @@ jobs:
|
||||
changes:
|
||||
runs-on: ubuntu-latest
|
||||
outputs:
|
||||
bundle: ${{ steps.filter.outputs.bundle }}
|
||||
api: ${{ steps.filter.outputs.api }}
|
||||
schema: ${{ steps.filter.outputs.schema }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
- uses: dorny/paths-filter@v2
|
||||
id: filter
|
||||
with:
|
||||
filters: |
|
||||
bundle:
|
||||
api:
|
||||
- 'tooling/api/src/**'
|
||||
- 'tooling/api/docs/js-api.json'
|
||||
- 'core/tauri/scripts/bundle.global.js'
|
||||
schema:
|
||||
- 'core/tauri-utils/src/config.rs'
|
||||
- 'tooling/cli/schema.json'
|
||||
- 'core/config-schema/schema.json'
|
||||
|
||||
check-bundle:
|
||||
check-api:
|
||||
runs-on: ubuntu-latest
|
||||
needs: changes
|
||||
if: needs.changes.outputs.bundle == 'true'
|
||||
if: needs.changes.outputs.api == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: generate bundle
|
||||
- name: build api
|
||||
working-directory: tooling/api
|
||||
run: yarn && yarn build
|
||||
- name: check bundle
|
||||
- name: check api
|
||||
run: ./.scripts/ci/has-diff.sh
|
||||
|
||||
check-schema:
|
||||
@ -64,7 +67,7 @@ jobs:
|
||||
needs: changes
|
||||
if: needs.changes.outputs.schema == 'true'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: install stable
|
||||
uses: actions-rs/toolchain@v1
|
||||
|
@ -9,4 +9,5 @@ dist
|
||||
/tooling/cli/templates
|
||||
/tooling/cli/node
|
||||
/tooling/cli/schema.json
|
||||
/tooling/api/docs/js-api.json
|
||||
/core/config-schema/schema.json
|
||||
|
@ -49,7 +49,7 @@ impl MimeType {
|
||||
let suffix = uri.split('.').last();
|
||||
match suffix {
|
||||
Some("bin") => Self::OctetStream,
|
||||
Some("css") => Self::Css,
|
||||
Some("css" | "less" | "sass" | "styl") => Self::Css,
|
||||
Some("csv") => Self::Csv,
|
||||
Some("html") => Self::Html,
|
||||
Some("ico") => Self::Ico,
|
||||
|
3
tooling/api/.gitignore
vendored
3
tooling/api/.gitignore
vendored
@ -64,4 +64,5 @@ package-lock.json
|
||||
.vscode/settings.json
|
||||
|
||||
# Documentation output
|
||||
docs
|
||||
docs/*
|
||||
!docs/js-api.json
|
||||
|
1
tooling/api/docs/js-api.json
Normal file
1
tooling/api/docs/js-api.json
Normal file
File diff suppressed because one or more lines are too long
@ -11,7 +11,7 @@
|
||||
"./package.json": "./package.json"
|
||||
},
|
||||
"scripts": {
|
||||
"build": "yarn tsup && node ./scripts/after-build.cjs",
|
||||
"build": "yarn tsup && node ./scripts/after-build.cjs && yarn generate-docs",
|
||||
"npm-pack": "yarn build && cd ./dist && npm pack",
|
||||
"npm-publish": "yarn build && cd ./dist && yarn publish --access public --loglevel silly --tag next",
|
||||
"lint": "eslint --ext ts \"./src/**/*.ts\"",
|
||||
@ -41,9 +41,9 @@
|
||||
"yarn": ">= 1.19.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@typescript-eslint/eslint-plugin": "5.51.0",
|
||||
"@typescript-eslint/parser": "5.51.0",
|
||||
"eslint": "8.33.0",
|
||||
"@typescript-eslint/eslint-plugin": "5.52.0",
|
||||
"@typescript-eslint/parser": "5.52.0",
|
||||
"eslint": "8.34.0",
|
||||
"eslint-config-prettier": "8.6.0",
|
||||
"eslint-config-standard-with-typescript": "32.0.0",
|
||||
"eslint-plugin-import": "2.27.5",
|
||||
@ -52,8 +52,8 @@
|
||||
"eslint-plugin-promise": "6.1.1",
|
||||
"eslint-plugin-security": "1.7.1",
|
||||
"prettier": "2.8.4",
|
||||
"tsup": "6.6.0",
|
||||
"typedoc": "0.23.24",
|
||||
"tsup": "6.6.3",
|
||||
"typedoc": "0.23.25",
|
||||
"typedoc-plugin-markdown": "3.14.0",
|
||||
"typedoc-plugin-mdn-links": "2.0.2",
|
||||
"typescript": "4.9.5"
|
||||
|
@ -12,7 +12,7 @@
|
||||
import * as eventApi from './helpers/event'
|
||||
import type { EventCallback, UnlistenFn, Event } from './helpers/event'
|
||||
|
||||
export type EventName = TauriEvent | string
|
||||
export type EventName = `${TauriEvent}` | (string & Record<never, never>)
|
||||
|
||||
/**
|
||||
* @since 1.1.0
|
||||
|
@ -308,6 +308,7 @@ export type WindowLabel = string
|
||||
/**
|
||||
* A webview window handle allows emitting and listening to events from the backend that are tied to the window.
|
||||
*
|
||||
* @ignore
|
||||
* @since 1.0.0
|
||||
*/
|
||||
class WebviewWindowHandle {
|
||||
@ -407,6 +408,7 @@ class WebviewWindowHandle {
|
||||
return emit(event, this.label, payload)
|
||||
}
|
||||
|
||||
/** @ignore */
|
||||
_handleTauriEvent<T>(event: string, handler: EventCallback<T>): boolean {
|
||||
if (localTauriEvents.includes(event)) {
|
||||
if (!(event in this.listeners)) {
|
||||
@ -425,6 +427,7 @@ class WebviewWindowHandle {
|
||||
/**
|
||||
* Manage the current window object.
|
||||
*
|
||||
* @ignore
|
||||
* @since 1.0.0
|
||||
*/
|
||||
class WindowManager extends WebviewWindowHandle {
|
||||
|
@ -182,14 +182,14 @@
|
||||
resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.12.tgz#920447fdd78d76b19de0438b7f60df3c4a80bf1c"
|
||||
integrity sha512-WwA1MW0++RfXmCr12xeYOOC5baSC9mSb0ZqCquFzKhcoF4TvHu5MKOuXsncgZcpVFhB1pXd5hZmM0ryAoCp12A==
|
||||
|
||||
"@typescript-eslint/eslint-plugin@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz#da3f2819633061ced84bb82c53bba45a6fe9963a"
|
||||
integrity sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ==
|
||||
"@typescript-eslint/eslint-plugin@5.52.0":
|
||||
version "5.52.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.52.0.tgz#5fb0d43574c2411f16ea80f5fc335b8eaa7b28a8"
|
||||
integrity sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.51.0"
|
||||
"@typescript-eslint/type-utils" "5.51.0"
|
||||
"@typescript-eslint/utils" "5.51.0"
|
||||
"@typescript-eslint/scope-manager" "5.52.0"
|
||||
"@typescript-eslint/type-utils" "5.52.0"
|
||||
"@typescript-eslint/utils" "5.52.0"
|
||||
debug "^4.3.4"
|
||||
grapheme-splitter "^1.0.4"
|
||||
ignore "^5.2.0"
|
||||
@ -198,14 +198,14 @@
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/parser@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.51.0.tgz#2d74626652096d966ef107f44b9479f02f51f271"
|
||||
integrity sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA==
|
||||
"@typescript-eslint/parser@5.52.0":
|
||||
version "5.52.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.52.0.tgz#73c136df6c0133f1d7870de7131ccf356f5be5a4"
|
||||
integrity sha512-e2KiLQOZRo4Y0D/b+3y08i3jsekoSkOYStROYmPUnGMEoA0h+k2qOH5H6tcjIc68WDvGwH+PaOrP1XRzLJ6QlA==
|
||||
dependencies:
|
||||
"@typescript-eslint/scope-manager" "5.51.0"
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/typescript-estree" "5.51.0"
|
||||
"@typescript-eslint/scope-manager" "5.52.0"
|
||||
"@typescript-eslint/types" "5.52.0"
|
||||
"@typescript-eslint/typescript-estree" "5.52.0"
|
||||
debug "^4.3.4"
|
||||
|
||||
"@typescript-eslint/parser@^5.0.0":
|
||||
@ -226,21 +226,21 @@
|
||||
"@typescript-eslint/types" "5.30.5"
|
||||
"@typescript-eslint/visitor-keys" "5.30.5"
|
||||
|
||||
"@typescript-eslint/scope-manager@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz#ad3e3c2ecf762d9a4196c0fbfe19b142ac498990"
|
||||
integrity sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ==
|
||||
"@typescript-eslint/scope-manager@5.52.0":
|
||||
version "5.52.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.52.0.tgz#a993d89a0556ea16811db48eabd7c5b72dcb83d1"
|
||||
integrity sha512-AR7sxxfBKiNV0FWBSARxM8DmNxrwgnYMPwmpkC1Pl1n+eT8/I2NAUPuwDy/FmDcC6F8pBfmOcaxcxRHspgOBMw==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/visitor-keys" "5.51.0"
|
||||
"@typescript-eslint/types" "5.52.0"
|
||||
"@typescript-eslint/visitor-keys" "5.52.0"
|
||||
|
||||
"@typescript-eslint/type-utils@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz#7af48005531700b62a20963501d47dfb27095988"
|
||||
integrity sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ==
|
||||
"@typescript-eslint/type-utils@5.52.0":
|
||||
version "5.52.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.52.0.tgz#9fd28cd02e6f21f5109e35496df41893f33167aa"
|
||||
integrity sha512-tEKuUHfDOv852QGlpPtB3lHOoig5pyFQN/cUiZtpw99D93nEBjexRLre5sQZlkMoHry/lZr8qDAt2oAHLKA6Jw==
|
||||
dependencies:
|
||||
"@typescript-eslint/typescript-estree" "5.51.0"
|
||||
"@typescript-eslint/utils" "5.51.0"
|
||||
"@typescript-eslint/typescript-estree" "5.52.0"
|
||||
"@typescript-eslint/utils" "5.52.0"
|
||||
debug "^4.3.4"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
@ -249,10 +249,10 @@
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.30.5.tgz#36a0c05a72af3623cdf9ee8b81ea743b7de75a98"
|
||||
integrity sha512-kZ80w/M2AvsbRvOr3PjaNh6qEW1LFqs2pLdo2s5R38B2HYXG8Z0PP48/4+j1QHJFL3ssHIbJ4odPRS8PlHrFfw==
|
||||
|
||||
"@typescript-eslint/types@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.51.0.tgz#e7c1622f46c7eea7e12bbf1edfb496d4dec37c90"
|
||||
integrity sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw==
|
||||
"@typescript-eslint/types@5.52.0":
|
||||
version "5.52.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.52.0.tgz#19e9abc6afb5bd37a1a9bea877a1a836c0b3241b"
|
||||
integrity sha512-oV7XU4CHYfBhk78fS7tkum+/Dpgsfi91IIDy7fjCyq2k6KB63M6gMC0YIvy+iABzmXThCRI6xpCEyVObBdWSDQ==
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.30.5":
|
||||
version "5.30.5"
|
||||
@ -267,29 +267,29 @@
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/typescript-estree@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz#0ec8170d7247a892c2b21845b06c11eb0718f8de"
|
||||
integrity sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA==
|
||||
"@typescript-eslint/typescript-estree@5.52.0":
|
||||
version "5.52.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.52.0.tgz#6408cb3c2ccc01c03c278cb201cf07e73347dfca"
|
||||
integrity sha512-WeWnjanyEwt6+fVrSR0MYgEpUAuROxuAH516WPjUblIrClzYJj0kBbjdnbQXLpgAN8qbEuGywiQsXUVDiAoEuQ==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/visitor-keys" "5.51.0"
|
||||
"@typescript-eslint/types" "5.52.0"
|
||||
"@typescript-eslint/visitor-keys" "5.52.0"
|
||||
debug "^4.3.4"
|
||||
globby "^11.1.0"
|
||||
is-glob "^4.0.3"
|
||||
semver "^7.3.7"
|
||||
tsutils "^3.21.0"
|
||||
|
||||
"@typescript-eslint/utils@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.51.0.tgz#074f4fabd5b12afe9c8aa6fdee881c050f8b4d47"
|
||||
integrity sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw==
|
||||
"@typescript-eslint/utils@5.52.0":
|
||||
version "5.52.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.52.0.tgz#b260bb5a8f6b00a0ed51db66bdba4ed5e4845a72"
|
||||
integrity sha512-As3lChhrbwWQLNk2HC8Ree96hldKIqk98EYvypd3It8Q1f8d5zWyIoaZEp2va5667M4ZyE7X8UUR+azXrFl+NA==
|
||||
dependencies:
|
||||
"@types/json-schema" "^7.0.9"
|
||||
"@types/semver" "^7.3.12"
|
||||
"@typescript-eslint/scope-manager" "5.51.0"
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/typescript-estree" "5.51.0"
|
||||
"@typescript-eslint/scope-manager" "5.52.0"
|
||||
"@typescript-eslint/types" "5.52.0"
|
||||
"@typescript-eslint/typescript-estree" "5.52.0"
|
||||
eslint-scope "^5.1.1"
|
||||
eslint-utils "^3.0.0"
|
||||
semver "^7.3.7"
|
||||
@ -302,12 +302,12 @@
|
||||
"@typescript-eslint/types" "5.30.5"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
"@typescript-eslint/visitor-keys@5.51.0":
|
||||
version "5.51.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz#c0147dd9a36c0de758aaebd5b48cae1ec59eba87"
|
||||
integrity sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ==
|
||||
"@typescript-eslint/visitor-keys@5.52.0":
|
||||
version "5.52.0"
|
||||
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.52.0.tgz#e38c971259f44f80cfe49d97dbffa38e3e75030f"
|
||||
integrity sha512-qMwpw6SU5VHCPr99y274xhbm+PRViK/NATY6qzt+Et7+mThGuFSl/ompj2/hrBlRP/kq+BFdgagnOSgw9TB0eA==
|
||||
dependencies:
|
||||
"@typescript-eslint/types" "5.51.0"
|
||||
"@typescript-eslint/types" "5.52.0"
|
||||
eslint-visitor-keys "^3.3.0"
|
||||
|
||||
acorn-jsx@^5.3.2:
|
||||
@ -335,6 +335,11 @@ ansi-regex@^5.0.1:
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304"
|
||||
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
||||
|
||||
ansi-sequence-parser@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz#4d790f31236ac20366b23b3916b789e1bde39aed"
|
||||
integrity sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==
|
||||
|
||||
ansi-styles@^4.1.0:
|
||||
version "4.3.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937"
|
||||
@ -847,10 +852,10 @@ eslint-visitor-keys@^3.3.0:
|
||||
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
|
||||
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
|
||||
|
||||
eslint@8.33.0:
|
||||
version "8.33.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7"
|
||||
integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA==
|
||||
eslint@8.34.0:
|
||||
version "8.34.0"
|
||||
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.34.0.tgz#fe0ab0ef478104c1f9ebc5537e303d25a8fb22d6"
|
||||
integrity sha512-1Z8iFsucw+7kSqXNZVslXS8Ioa4u2KM7GPwuKtkTFAqZ/cHMcEaR+1+Br0wLlot49cNxIiZk5wp8EAbPcYZxTg==
|
||||
dependencies:
|
||||
"@eslint/eslintrc" "^1.4.1"
|
||||
"@humanwhocodes/config-array" "^0.11.8"
|
||||
@ -1522,10 +1527,10 @@ lunr@^2.3.9:
|
||||
resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1"
|
||||
integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==
|
||||
|
||||
marked@^4.2.5:
|
||||
version "4.2.5"
|
||||
resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.5.tgz#979813dfc1252cc123a79b71b095759a32f42a5d"
|
||||
integrity sha512-jPueVhumq7idETHkb203WDD4fMA3yV9emQ5vLwop58lu8bTclMghBWcYAavlDqIEMaisADinV1TooIFCfqOsYQ==
|
||||
marked@^4.2.12:
|
||||
version "4.2.12"
|
||||
resolved "https://registry.yarnpkg.com/marked/-/marked-4.2.12.tgz#d69a64e21d71b06250da995dcd065c11083bebb5"
|
||||
integrity sha512-yr8hSKa3Fv4D3jdZmtMMPghgVt6TWbk86WQaWhDloQjRSQhMMYCAro7jP7VDJrjjdV8pxVxMssXS8B8Y5DZ5aw==
|
||||
|
||||
merge-stream@^2.0.0:
|
||||
version "2.0.0"
|
||||
@ -1557,10 +1562,10 @@ minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
||||
dependencies:
|
||||
brace-expansion "^1.1.7"
|
||||
|
||||
minimatch@^5.1.2:
|
||||
version "5.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.2.tgz#0939d7d6f0898acbd1508abe534d1929368a8fff"
|
||||
integrity sha512-bNH9mmM9qsJ2X4r2Nat1B//1dJVcn3+iBLa3IgqJ7EbGaDNepL9QSHOxN4ng33s52VMMhhIfgCYDk3C4ZmlDAg==
|
||||
minimatch@^6.1.6:
|
||||
version "6.2.0"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-6.2.0.tgz#2b70fd13294178c69c04dfc05aebdb97a4e79e42"
|
||||
integrity sha512-sauLxniAmvnhhRjFwPNnJKaPFYyddAgbYdeUpHULtCT/GhzdCx/MDNy+Y40lBxTQUrMzDE8e0S43Z5uqfO0REg==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
|
||||
@ -1906,11 +1911,12 @@ shebang-regex@^3.0.0:
|
||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172"
|
||||
integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==
|
||||
|
||||
shiki@^0.12.1:
|
||||
version "0.12.1"
|
||||
resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.12.1.tgz#26fce51da12d055f479a091a5307470786f300cd"
|
||||
integrity sha512-aieaV1m349rZINEBkjxh2QbBvFFQOlgqYTNtCal82hHj4dDZ76oMlQIX+C7ryerBTDiga3e5NfH6smjdJ02BbQ==
|
||||
shiki@^0.14.1:
|
||||
version "0.14.1"
|
||||
resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.14.1.tgz#9fbe082d0a8aa2ad63df4fbf2ee11ec924aa7ee1"
|
||||
integrity sha512-+Jz4nBkCBe0mEDqo1eKRcCdjRtrCjozmcbTUjbPTX7OOJfEbTZzlUWlZtGe3Gb5oV1/jnojhG//YZc3rs9zSEw==
|
||||
dependencies:
|
||||
ansi-sequence-parser "^1.1.0"
|
||||
jsonc-parser "^3.2.0"
|
||||
vscode-oniguruma "^1.7.0"
|
||||
vscode-textmate "^8.0.0"
|
||||
@ -2086,10 +2092,10 @@ tslib@^1.8.1:
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tsup@6.6.0:
|
||||
version "6.6.0"
|
||||
resolved "https://registry.yarnpkg.com/tsup/-/tsup-6.6.0.tgz#94a949fa282dd1a36b981741d95a30eda2eda871"
|
||||
integrity sha512-HxZE7Hj5yNxLFftCXdcJ+Jsax8dI4oKb0bt8fIvd1g/W0FZ46sU1pFBVo15WpOERFcEMH7Hykey/Q+hKO4s9RQ==
|
||||
tsup@6.6.3:
|
||||
version "6.6.3"
|
||||
resolved "https://registry.yarnpkg.com/tsup/-/tsup-6.6.3.tgz#f6f975a8656cfd9b8e115f33b1aa0f0fd4df78e2"
|
||||
integrity sha512-OLx/jFllYlVeZQ7sCHBuRVEQBBa1tFbouoc/gbYakyipjVQdWy/iQOvmExUA/ewap9iQ7tbJf9pW0PgcEFfJcQ==
|
||||
dependencies:
|
||||
bundle-require "^4.0.0"
|
||||
cac "^6.7.12"
|
||||
@ -2146,15 +2152,15 @@ typedoc-plugin-mdn-links@2.0.2:
|
||||
resolved "https://registry.yarnpkg.com/typedoc-plugin-mdn-links/-/typedoc-plugin-mdn-links-2.0.2.tgz#5a6aa268950c41a1437b57e2c72ed77f8ba323d2"
|
||||
integrity sha512-Fzjvfsj3rxvmZNqWRvq9JTGBkOkrPp0kBtvJCJ4U5Jm14OF1KoRErtmwgVQcPLA5Xs8h5I/W4uZBaL8SDHsgxQ==
|
||||
|
||||
typedoc@0.23.24:
|
||||
version "0.23.24"
|
||||
resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.24.tgz#01cf32c09f2c19362e72a9ce1552d6e5b48c4fef"
|
||||
integrity sha512-bfmy8lNQh+WrPYcJbtjQ6JEEsVl/ce1ZIXyXhyW+a1vFrjO39t6J8sL/d6FfAGrJTc7McCXgk9AanYBSNvLdIA==
|
||||
typedoc@0.23.25:
|
||||
version "0.23.25"
|
||||
resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.23.25.tgz#5f8f1850fd044c4d15d453117affddf11a265610"
|
||||
integrity sha512-O1he153qVyoCgJYSvIyY3bPP1wAJTegZfa6tL3APinSZhJOf8CSd8F/21M6ex8pUY/fuY6n0jAsT4fIuMGA6sA==
|
||||
dependencies:
|
||||
lunr "^2.3.9"
|
||||
marked "^4.2.5"
|
||||
minimatch "^5.1.2"
|
||||
shiki "^0.12.1"
|
||||
marked "^4.2.12"
|
||||
minimatch "^6.1.6"
|
||||
shiki "^0.14.1"
|
||||
|
||||
typescript@4.9.5:
|
||||
version "4.9.5"
|
||||
|
@ -20,7 +20,7 @@ if (bin === '@tauri-apps/cli') {
|
||||
}
|
||||
// Even if started by a package manager, the binary will be NodeJS.
|
||||
// Some distribution still use "nodejs" as the binary name.
|
||||
else if (binStem.match(/(nodejs|node)([1-9]*)*$/g)) {
|
||||
else if (binStem.match(/(nodejs|node)\-?([1-9]*)*$/g)) {
|
||||
const managerStem = process.env.npm_execpath
|
||||
? path.parse(process.env.npm_execpath).name.toLowerCase()
|
||||
: null
|
||||
|
@ -20,7 +20,7 @@ use shared_child::SharedChild;
|
||||
|
||||
use std::{
|
||||
env::set_current_dir,
|
||||
net::{IpAddr, Ipv4Addr, SocketAddr},
|
||||
net::{IpAddr, Ipv4Addr},
|
||||
process::{exit, Command, ExitStatus, Stdio},
|
||||
sync::{
|
||||
atomic::{AtomicBool, Ordering},
|
||||
@ -65,6 +65,10 @@ pub struct Options {
|
||||
/// Disable the dev server for static files.
|
||||
#[clap(long)]
|
||||
pub no_dev_server: bool,
|
||||
/// Specify port for the dev server for static files. Defaults to 1430
|
||||
/// Can also be set using `TAURI_DEV_SERVER_PORT` env var.
|
||||
#[clap(long)]
|
||||
pub port: Option<u16>,
|
||||
/// Force prompting for an IP to use to connect to the dev server on mobile.
|
||||
#[clap(long)]
|
||||
pub force_ip_prompt: bool,
|
||||
@ -296,31 +300,34 @@ pub fn setup(options: &mut Options, mobile: bool) -> Result<AppInterface> {
|
||||
cargo_features.extend(features.clone());
|
||||
}
|
||||
|
||||
if let AppUrl::Url(WindowUrl::App(path)) = &dev_path {
|
||||
use crate::helpers::web_dev_server::start_dev_server;
|
||||
if path.exists() {
|
||||
let ip = if mobile {
|
||||
*local_ip_address(options.force_ip_prompt)
|
||||
} else {
|
||||
Ipv4Addr::new(127, 0, 0, 1).into()
|
||||
};
|
||||
let port = 1430;
|
||||
let server_address = SocketAddr::new(ip, port);
|
||||
let path = path.canonicalize()?;
|
||||
start_dev_server(server_address, path);
|
||||
let server_url = format!("http://{server_address}");
|
||||
dev_path = AppUrl::Url(WindowUrl::External(server_url.parse().unwrap()));
|
||||
let mut dev_path = config
|
||||
.lock()
|
||||
.unwrap()
|
||||
.as_ref()
|
||||
.unwrap()
|
||||
.build
|
||||
.dev_path
|
||||
.clone();
|
||||
if !options.no_dev_server {
|
||||
if let AppUrl::Url(WindowUrl::App(path)) = &dev_path {
|
||||
use crate::helpers::web_dev_server::start_dev_server;
|
||||
if path.exists() {
|
||||
let path = path.canonicalize()?;
|
||||
let server_url = start_dev_server(path, options.port);
|
||||
let server_url = format!("http://{server_url}");
|
||||
dev_path = AppUrl::Url(WindowUrl::External(server_url.parse().unwrap()));
|
||||
|
||||
// TODO: in v2, use an env var to pass the url to the app context
|
||||
// or better separate the config passed from the cli internally and
|
||||
// config passed by the user in `--config` into to separate env vars
|
||||
// and the context merges, the user first, then the internal cli config
|
||||
if let Some(c) = &options.config {
|
||||
let mut c: tauri_utils::config::Config = serde_json::from_str(c)?;
|
||||
c.build.dev_path = dev_path.clone();
|
||||
options.config = Some(serde_json::to_string(&c).unwrap());
|
||||
} else {
|
||||
options.config = Some(format!(r#"{{ "build": {{ "devPath": "{server_url}" }} }}"#))
|
||||
// TODO: in v2, use an env var to pass the url to the app context
|
||||
// or better separate the config passed from the cli internally and
|
||||
// config passed by the user in `--config` into to separate env vars
|
||||
// and the context merges, the user first, then the internal cli config
|
||||
if let Some(c) = &options.config {
|
||||
let mut c: tauri_utils::config::Config = serde_json::from_str(c)?;
|
||||
c.build.dev_path = dev_path.clone();
|
||||
options.config = Some(serde_json::to_string(&c).unwrap());
|
||||
} else {
|
||||
options.config = Some(format!(r#"{{ "build": {{ "devPath": "{server_url}" }} }}"#))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -14,7 +14,7 @@ use kuchiki::{traits::TendrilSink, NodeRef};
|
||||
use notify::RecursiveMode;
|
||||
use notify_debouncer_mini::new_debouncer;
|
||||
use std::{
|
||||
net::SocketAddr,
|
||||
net::{Ipv4Addr, SocketAddr},
|
||||
path::{Path, PathBuf},
|
||||
sync::{mpsc::sync_channel, Arc},
|
||||
thread,
|
||||
@ -31,8 +31,17 @@ struct State {
|
||||
tx: Sender<()>,
|
||||
}
|
||||
|
||||
pub fn start_dev_server<P: AsRef<Path>>(address: SocketAddr, path: P) {
|
||||
pub fn start_dev_server<P: AsRef<Path>>(path: P, port: Option<u16>) -> SocketAddr {
|
||||
let serve_dir = path.as_ref().to_path_buf();
|
||||
let server_url = SocketAddr::new(
|
||||
Ipv4Addr::new(127, 0, 0, 1).into(),
|
||||
port.unwrap_or_else(|| {
|
||||
std::env::var("TAURI_DEV_SERVER_PORT")
|
||||
.unwrap_or_else(|_| "1430".to_string())
|
||||
.parse()
|
||||
.unwrap()
|
||||
}),
|
||||
);
|
||||
|
||||
std::thread::spawn(move || {
|
||||
tokio::runtime::Builder::new_current_thread()
|
||||
@ -68,9 +77,9 @@ pub fn start_dev_server<P: AsRef<Path>>(address: SocketAddr, path: P) {
|
||||
let state = Arc::new(State {
|
||||
serve_dir,
|
||||
tx,
|
||||
address,
|
||||
address: server_url,
|
||||
});
|
||||
let server_router = Router::new()
|
||||
let router = Router::new()
|
||||
.fallback(
|
||||
Router::new().nest(
|
||||
"/",
|
||||
@ -87,13 +96,14 @@ pub fn start_dev_server<P: AsRef<Path>>(address: SocketAddr, path: P) {
|
||||
ws.on_upgrade(|socket| async move { ws_handler(socket, state).await })
|
||||
}),
|
||||
);
|
||||
|
||||
Server::bind(&address)
|
||||
.serve(server_router.into_make_service())
|
||||
Server::bind(&server_url)
|
||||
.serve(router.into_make_service())
|
||||
.await
|
||||
.unwrap();
|
||||
})
|
||||
});
|
||||
|
||||
server_url
|
||||
}
|
||||
|
||||
async fn handler<T>(req: Request<T>, state: Arc<State>) -> impl IntoResponse {
|
||||
|
@ -61,6 +61,10 @@ pub struct Options {
|
||||
pub open: bool,
|
||||
/// Runs on the given device name
|
||||
pub device: Option<String>,
|
||||
/// Specify port for the dev server for static files. Defaults to 1430
|
||||
/// Can also be set using `TAURI_DEV_SERVER_PORT` env var.
|
||||
#[clap(long)]
|
||||
pub port: Option<u16>,
|
||||
/// Force prompting for an IP to use to connect to the dev server on mobile.
|
||||
#[clap(long)]
|
||||
pub force_ip_prompt: bool,
|
||||
@ -78,6 +82,7 @@ impl From<Options> for DevOptions {
|
||||
args: Vec::new(),
|
||||
no_watch: options.no_watch,
|
||||
no_dev_server: options.no_dev_server,
|
||||
port: options.port,
|
||||
force_ip_prompt: options.force_ip_prompt,
|
||||
}
|
||||
}
|
||||
|
@ -51,6 +51,10 @@ pub struct Options {
|
||||
pub open: bool,
|
||||
/// Runs on the given device name
|
||||
pub device: Option<String>,
|
||||
/// Specify port for the dev server for static files. Defaults to 1430
|
||||
/// Can also be set using `TAURI_DEV_SERVER_PORT` env var.
|
||||
#[clap(long)]
|
||||
pub port: Option<u16>,
|
||||
/// Force prompting for an IP to use to connect to the dev server on mobile.
|
||||
#[clap(long)]
|
||||
pub force_ip_prompt: bool,
|
||||
@ -68,6 +72,7 @@ impl From<Options> for DevOptions {
|
||||
args: Vec::new(),
|
||||
no_watch: options.no_watch,
|
||||
no_dev_server: options.no_dev_server,
|
||||
port: options.port,
|
||||
force_ip_prompt: options.force_ip_prompt,
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user