diff --git a/packages/uni-app-plus/dist/uni.runtime.esm.js b/packages/uni-app-plus/dist/uni.runtime.esm.js index 6c3412cd87df5a96cb9742fa60369d20165707f0..5e28f555ef2d6f811e80011baf6029d4456f9cff 100644 --- a/packages/uni-app-plus/dist/uni.runtime.esm.js +++ b/packages/uni-app-plus/dist/uni.runtime.esm.js @@ -11611,17 +11611,29 @@ const GetLocationProtocol = { }; const API_OPEN_LOCATION = 'openLocation'; +const checkProps = (key, value) => { + if (value === undefined) { + return `${key} should not be empty.`; + } + if (typeof value !== 'number') { + let receivedType = typeof value; + receivedType = receivedType[0].toUpperCase() + receivedType.substring(1); + return `Expected Number, got ${receivedType} with value ${JSON.stringify(value)}.`; + } +}; const OpenLocationOptions = { formatArgs: { latitude(value, params) { - if (value !== 0 && !value) { - return 'latitude should not be empty.'; + const checkedInfo = checkProps('latitude', value); + if (checkedInfo) { + return checkedInfo; } params.latitude = value; }, longitude(value, params) { - if (value !== 0 && !value) { - return 'longitude should not be empty.'; + const checkedInfo = checkProps('longitude', value); + if (checkedInfo) { + return checkedInfo; } params.longitude = value; }, diff --git a/packages/uni-h5/dist/uni-h5.es.js b/packages/uni-h5/dist/uni-h5.es.js index a346587ab67b4b1ceb48f0ce116273698e15dd78..9886c296e8e3f04829ba547eb8d14d0d16664141 100644 --- a/packages/uni-h5/dist/uni-h5.es.js +++ b/packages/uni-h5/dist/uni-h5.es.js @@ -4835,17 +4835,29 @@ const GetLocationProtocol = { altitude: Boolean }; const API_OPEN_LOCATION = "openLocation"; +const checkProps = (key, value) => { + if (value === void 0) { + return `${key} should not be empty.`; + } + if (typeof value !== "number") { + let receivedType = typeof value; + receivedType = receivedType[0].toUpperCase() + receivedType.substring(1); + return `Expected Number, got ${receivedType} with value ${JSON.stringify(value)}.`; + } +}; const OpenLocationOptions = { formatArgs: { latitude(value, params) { - if (value !== 0 && !value) { - return "latitude should not be empty."; + const checkedInfo = checkProps("latitude", value); + if (checkedInfo) { + return checkedInfo; } params.latitude = value; }, longitude(value, params) { - if (value !== 0 && !value) { - return "longitude should not be empty."; + const checkedInfo = checkProps("longitude", value); + if (checkedInfo) { + return checkedInfo; } params.longitude = value; }, diff --git a/packages/uts-darwin-arm64/uts.darwin-arm64.node b/packages/uts-darwin-arm64/uts.darwin-arm64.node index 3f4de52b02b97a8e95b60675b065f4bc2aa60606..865424abe3904d6c1ceb86d96162d5d455a52e5c 100755 Binary files a/packages/uts-darwin-arm64/uts.darwin-arm64.node and b/packages/uts-darwin-arm64/uts.darwin-arm64.node differ diff --git a/packages/uts-darwin-x64/uts.darwin-x64.node b/packages/uts-darwin-x64/uts.darwin-x64.node index a3b2348c4a90c1fb57f31aa7f7f89d3e28734a6c..67dab6febf6db8a42aa6c2c9f8e33336ea10039c 100755 Binary files a/packages/uts-darwin-x64/uts.darwin-x64.node and b/packages/uts-darwin-x64/uts.darwin-x64.node differ diff --git a/packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node b/packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node index 749e391cf0e3ca0c3f03164eedaae7ff06703ce5..6bd90409d535da3c5ee23962cf01df68adacd0e5 100644 Binary files a/packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node and b/packages/uts-win32-ia32-msvc/uts.win32-ia32-msvc.node differ diff --git a/packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node b/packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node index ff977e4f35d122324565441d358e4bd7abd9bd33..dfd8031bc516e1a29ea4cf7aa3ff363b3844fd6f 100644 Binary files a/packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node and b/packages/uts-win32-x64-msvc/uts.win32-x64-msvc.node differ diff --git a/packages/uts/src/index.ts b/packages/uts/src/index.ts index 7e850b49f519f30bc8712f89fe18c5510f7e8fa8..69989176ff154c171403faeffe1738fde73350fc 100644 --- a/packages/uts/src/index.ts +++ b/packages/uts/src/index.ts @@ -11,7 +11,13 @@ import type { UtsOutputOptions, UtsResult, } from './types' -import { printStartup, printUtsResult, printUtsResults, timeEnd } from './utils' +import { + printDone, + printStartup, + printUtsResult, + printUtsResults, + timeEnd, +} from './utils' export enum UtsTarget { KOTLIN = 'kotlin', @@ -124,18 +130,13 @@ function initOutputOptions( } } -function watch( +function initOptions( target: UtsTarget, { - silent, - input: { dir: inputDir, extname }, + input: { dir: inputDir }, output: { dir: outputDir, sourceMap, inlineSourcesContent }, }: ToOptions ) { - fs.emptyDirSync(outputDir) - - extname = extname || EXTNAME - const inputSrcDir = resolveSrcDir(target, inputDir) const outputSrcDir = resolveSrcDir(target, outputDir) @@ -146,63 +147,97 @@ function watch( sourceMap, !!inlineSourcesContent ) + return { input, output } +} - chokidar - .watch('**/*' + extname, { - cwd: inputSrcDir, - ignored: ['**/*.d' + extname], - }) - .on('add', (filename) => { - buildFile( - target, - path.resolve(inputSrcDir, filename), - input, - output - ).then((res) => { - !silent && printUtsResult(res) +async function watch(target: UtsTarget, toOptions: ToOptions) { + fs.emptyDirSync(toOptions.output.dir) + + const { input, output } = initOptions(target, toOptions) + const inputDir = toOptions.input.dir + const outputDir = toOptions.output.dir + const inputSrcDir = input.root + const outputSrcDir = output.outDir + const extname = toOptions.input.extname || EXTNAME + const silent = !!toOptions.silent + // 先完整编译后,再启用监听 + doBuild(target, { + watch: true, + input, + output, + inputDir, + outputDir, + inputSrcDir, + outputSrcDir, + extname, + silent, + }).then(() => { + // TODO 监听动态添加的资源文件 + chokidar + .watch('**/*' + extname, { + cwd: inputSrcDir, + ignored: ['**/*.d' + extname], + ignoreInitial: true, }) - }) - .on('change', (filename) => { - buildFile( - target, - path.resolve(inputSrcDir, filename), - input, - output - ).then((res) => { - !silent && printUtsResult(res) + .on('add', (filename) => { + buildFile( + target, + path.resolve(inputSrcDir, filename), + input, + output + ).then((res) => { + if (!silent) { + printUtsResult(res) + printDone(true) + } + }) }) - }) - .on('unlink', (filename) => { - try { - fs.unlinkSync(path.resolve(outputSrcDir, filename)) - } catch (e) {} - }) - .on('ready', () => { - copyAssets(UtsTarget.KOTLIN, inputDir, outputDir, extname!) - }) + .on('change', (filename) => { + buildFile( + target, + path.resolve(inputSrcDir, filename), + input, + output + ).then((res) => { + if (!silent) { + printUtsResult(res) + printDone(true) + } + }) + }) + .on('unlink', (filename) => { + try { + fs.unlinkSync(path.resolve(outputSrcDir, filename)) + } catch (e) {} + }) + }) +} + +interface DoBuildOptions { + watch: boolean + silent: boolean + input: UtsInputOptions + output: UtsOutputOptions + inputDir: string + inputSrcDir: string + outputDir: string + outputSrcDir: string + extname: string } -function build( +function doBuild( target: UtsTarget, { + watch, silent, - input: { dir: inputDir, extname }, - output: { dir: outputDir, sourceMap, inlineSourcesContent }, - }: ToOptions + extname, + inputDir, + inputSrcDir, + outputDir, + input, + output, + }: DoBuildOptions ) { - fs.emptyDirSync(outputDir) - extname = extname || EXTNAME - - const inputSrcDir = resolveSrcDir(target, inputDir) - const outputSrcDir = resolveSrcDir(target, outputDir) - const input = initInputOptions(target, inputSrcDir) - const output = initOutputOptions( - target, - outputSrcDir, - sourceMap, - !!inlineSourcesContent - ) - const files = glob.sync('**/*' + extname, { absolute: true, cwd: inputSrcDir, @@ -224,11 +259,33 @@ function build( ) }) .then((res) => { - !silent && printUtsResults(res) + !silent && printUtsResults(res, watch) return res }) } +function build(target: UtsTarget, toOptions: ToOptions) { + fs.emptyDirSync(toOptions.output.dir) + const { input, output } = initOptions(target, toOptions) + const inputDir = toOptions.input.dir + const outputDir = toOptions.output.dir + const inputSrcDir = input.root + const outputSrcDir = output.outDir + const extname = toOptions.input.extname || EXTNAME + const silent = !!toOptions.silent + return doBuild(target, { + watch: false, + input, + output, + inputDir, + outputDir, + inputSrcDir, + outputSrcDir, + extname, + silent, + }) +} + function copyAssets( target: UtsTarget, inputDir: string, diff --git a/packages/uts/src/utils.ts b/packages/uts/src/utils.ts index b46acbf713f7bf40d6dbc41f26581727d3dd1a9a..7fb3398cb41f80a1d057bf73e9da8228fd6fd936 100644 --- a/packages/uts/src/utils.ts +++ b/packages/uts/src/utils.ts @@ -28,7 +28,15 @@ export function printStartup(target: UtsTarget, mode: string) { ) } -export function printUtsResults(results: UtsResult[]) { +export function printDone(watch: boolean = false) { + if (watch) { + console.log(`DONE Build complete. Watching for changes...`) + } else { + console.log(`DONE Build complete.`) + } +} + +export function printUtsResults(results: UtsResult[], watch: boolean = false) { let longest = 0 let failed: UtsResult[] = [] let transformed: UtsResult[] = [] @@ -61,6 +69,7 @@ export function printUtsResults(results: UtsResult[]) { } }) } + printDone(watch) } export function printUtsResult(result: UtsResult, maxLength = 0) {