✨ 2.0.7-beta
This commit is contained in:
22
bin/builders/common.ts
vendored
22
bin/builders/common.ts
vendored
@@ -1,30 +1,12 @@
|
||||
import { PakeAppOptions } from '@/types.js';
|
||||
import { PakeAppOptions,TauriConfig } from '@/types.js';
|
||||
import prompts from 'prompts';
|
||||
import path from 'path';
|
||||
import fs from 'fs/promises';
|
||||
import fs2 from 'fs-extra';
|
||||
import {TauriConfig} from 'tauri/src/types';
|
||||
|
||||
import { npmDirectory } from '@/utils/dir.js';
|
||||
import logger from '@/options/logger.js';
|
||||
|
||||
type DangerousRemoteDomainIpAccess = {
|
||||
domain: string;
|
||||
windows: string[];
|
||||
enableTauriAPI: boolean;
|
||||
schema?: string;
|
||||
plugins?: string[];
|
||||
}
|
||||
|
||||
// https://tauri.app/v1/api/config/#remotedomainaccessscope
|
||||
type NextTauriConfig = TauriConfig & {
|
||||
tauri: {
|
||||
security: {
|
||||
dangerousRemoteDomainIpcAccess?: DangerousRemoteDomainIpAccess[]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
export async function promptText(message: string, initial?: string) {
|
||||
const response = await prompts({
|
||||
@@ -36,7 +18,7 @@ export async function promptText(message: string, initial?: string) {
|
||||
return response.content;
|
||||
}
|
||||
|
||||
function setSecurityConfigWithUrl(tauriConfig: NextTauriConfig, url: string) {
|
||||
function setSecurityConfigWithUrl(tauriConfig: TauriConfig, url: string) {
|
||||
const myURL = new URL(url);
|
||||
const hostname = myURL.hostname;
|
||||
tauriConfig.tauri.security.dangerousRemoteDomainIpcAccess[0].domain = hostname;
|
||||
|
||||
152
bin/types.ts
vendored
152
bin/types.ts
vendored
@@ -48,3 +48,155 @@ export interface PakeCliOptions {
|
||||
export interface PakeAppOptions extends PakeCliOptions {
|
||||
identifier: string;
|
||||
}
|
||||
|
||||
export interface TauriBuildConfig {
|
||||
/**
|
||||
* the path to the app's dist dir
|
||||
* this path must contain your index.html file
|
||||
*/
|
||||
distDir: string
|
||||
/**
|
||||
* the app's dev server URL, or the path to the directory containing an index.html to open
|
||||
*/
|
||||
devPath: string
|
||||
/**
|
||||
* a shell command to run before `tauri dev` kicks in
|
||||
*/
|
||||
beforeDevCommand?: string
|
||||
/**
|
||||
* a shell command to run before `tauri build` kicks in
|
||||
*/
|
||||
beforeBuildCommand?: string
|
||||
withGlobalTauri?: boolean
|
||||
}
|
||||
|
||||
type DangerousRemoteDomainIpAccess = {
|
||||
domain: string;
|
||||
windows: string[];
|
||||
enableTauriAPI: boolean;
|
||||
schema?: string;
|
||||
plugins?: string[];
|
||||
}
|
||||
|
||||
/**
|
||||
* Tauri configuration
|
||||
*/
|
||||
export interface TauriConfig {
|
||||
/**
|
||||
* build/dev configuration
|
||||
*/
|
||||
build: TauriBuildConfig
|
||||
/**
|
||||
* the context of the current `tauri dev` or `tauri build`
|
||||
*/
|
||||
ctx: {
|
||||
/**
|
||||
* whether we're building for production or not
|
||||
*/
|
||||
prod?: boolean
|
||||
/**
|
||||
* whether we're running on the dev environment or not
|
||||
*/
|
||||
dev?: boolean
|
||||
/**
|
||||
* the target of the compilation (see `rustup target list`)
|
||||
*/
|
||||
target?: string
|
||||
/**
|
||||
* whether the app should be built on debug mode or not
|
||||
*/
|
||||
debug?: boolean
|
||||
/**
|
||||
* defines we should exit the `tauri dev` process if a Rust code error is found
|
||||
*/
|
||||
exitOnPanic?: boolean
|
||||
}
|
||||
/**
|
||||
* tauri root configuration object
|
||||
*/
|
||||
tauri: {
|
||||
/**
|
||||
* the embedded server configuration
|
||||
*/
|
||||
embeddedServer: {
|
||||
/**
|
||||
* whether we should use the embedded-server or the no-server mode
|
||||
*/
|
||||
active?: boolean
|
||||
/**
|
||||
* the embedded server port number or the 'random' string to generate one at runtime
|
||||
*/
|
||||
port?: number | 'random' | undefined
|
||||
}
|
||||
/**
|
||||
* tauri bundler configuration
|
||||
*/
|
||||
bundle: {
|
||||
/**
|
||||
* whether we should build your app with tauri-bundler or plain `cargo build`
|
||||
*/
|
||||
active?: boolean
|
||||
/**
|
||||
* the bundle targets, currently supports ["deb", "osx", "msi", "appimage", "dmg"] or "all"
|
||||
*/
|
||||
targets?: string | string[]
|
||||
/**
|
||||
* the app's identifier
|
||||
*/
|
||||
identifier: string
|
||||
/**
|
||||
* the app's icons
|
||||
*/
|
||||
icon: string[]
|
||||
/**
|
||||
* app resources to bundle
|
||||
* each resource is a path to a file or directory
|
||||
* glob patterns are supported
|
||||
*/
|
||||
resources?: string[]
|
||||
externalBin?: string[]
|
||||
copyright?: string
|
||||
category?: string
|
||||
shortDescription?: string
|
||||
longDescription?: string
|
||||
deb?: {
|
||||
depends?: string[]
|
||||
useBootstrapper?: boolean
|
||||
}
|
||||
osx?: {
|
||||
frameworks?: string[]
|
||||
minimumSystemVersion?: string
|
||||
license?: string
|
||||
useBootstrapper?: boolean
|
||||
}
|
||||
exceptionDomain?: string
|
||||
}
|
||||
allowlist: {
|
||||
all: boolean
|
||||
[index: string]: boolean
|
||||
}
|
||||
window: {
|
||||
title: string
|
||||
width?: number
|
||||
height?: number
|
||||
resizable?: boolean
|
||||
fullscreen?: boolean
|
||||
}
|
||||
security: {
|
||||
csp?: string,
|
||||
dangerousRemoteDomainIpcAccess?: DangerousRemoteDomainIpAccess[]
|
||||
}
|
||||
inliner: {
|
||||
active?: boolean
|
||||
}
|
||||
}
|
||||
plugins?: {
|
||||
[name: string]: {
|
||||
[key: string]: any
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Whether or not to enable verbose logging
|
||||
*/
|
||||
verbose?: boolean
|
||||
}
|
||||
|
||||
4
bin/utils/ip_addr.ts
vendored
4
bin/utils/ip_addr.ts
vendored
@@ -33,7 +33,7 @@ async function isChinaDomain(domain: string): Promise<boolean> {
|
||||
return await isChinaIP(ip, domain);
|
||||
} catch (error) {
|
||||
// 域名无法解析,返回false
|
||||
logger.info(`${domain} can't be parse, is not in China!`);
|
||||
logger.info(`${domain} can't be parse!`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -46,7 +46,7 @@ async function isChinaIP(ip: string, domain: string): Promise<boolean> {
|
||||
return delay > 500;
|
||||
} catch (error) {
|
||||
// 命令执行出错,返回false
|
||||
logger.info(`ping ${domain} failed!, is not in China!`);
|
||||
logger.info(`ping ${domain} failed!`);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user