minigame-std
Version:
Cross-platform standard library for WeChat minigame and web browsers with unified APIs for crypto, fs, fetch, storage, and more.
94 lines (93 loc) • 2.43 kB
JavaScript
import { validateString } from "./_internal.mjs";
import { RESULT_VOID, tryAsyncResult } from "happy-rusty";
import { asyncIOResultify } from "./utils.mjs";
//#region src/macros/env.ts
/**
* 如果在小游戏环境中返回 true,否则返回 false。
*/
const IS_MINA = __MINIGAME_STD_MINA__;
//#endregion
//#region src/std/clipboard/mina_clipboard.ts
/**
* @internal
* 小游戏平台的剪贴板操作实现。
*/
/**
* 异步写入文本数据到剪贴板。
* @param data - 需要写入的文本数据。
* @returns 写入操作的结果。
*/
async function writeText$2(data) {
return (await asyncIOResultify(wx.setClipboardData)({ data })).and(RESULT_VOID);
}
/**
* 异步读取剪贴板文本数据。
* @returns 读取操作的结果。
*/
async function readText$2() {
return (await asyncIOResultify(wx.getClipboardData)()).map((x) => x.data);
}
//#endregion
//#region src/std/clipboard/web_clipboard.ts
/**
* Web 平台的剪贴板操作实现。
*
* @internal
*/
/**
* 异步写入文本数据到剪贴板。
* @param data - 需要写入的文本数据。
* @returns 写入操作的结果。
*/
function writeText$1(data) {
return tryAsyncResult(navigator.clipboard.writeText(data));
}
/**
* 异步读取剪贴板文本数据。
* @returns 读取操作的结果。
*/
function readText$1() {
return tryAsyncResult(navigator.clipboard.readText());
}
//#endregion
//#region src/std/clipboard/mod.ts
/**
* 异步写入文本数据到剪贴板。
* @param data - 需要写入的文本数据。
* @returns 写入操作的结果。
* @since 1.0.0
* @example
* ```ts
* const result = await writeText('Hello, World!');
* if (result.isOk()) {
* console.log('文本已复制到剪贴板');
* } else {
* console.error('复制失败:', result.unwrapErr());
* }
* ```
*/
function writeText(data) {
const dataRes = validateString(data, "data");
if (dataRes.isErr()) return Promise.resolve(dataRes);
return (IS_MINA ? writeText$2 : writeText$1)(data);
}
/**
* 异步读取剪贴板文本数据。
* @returns 读取操作的结果。
* @since 1.0.0
* @example
* ```ts
* const result = await readText();
* if (result.isOk()) {
* console.log('剪贴板内容:', result.unwrap());
* } else {
* console.error('读取失败:', result.unwrapErr());
* }
* ```
*/
function readText() {
return (IS_MINA ? readText$2 : readText$1)();
}
//#endregion
export { readText, writeText };
//# sourceMappingURL=clipboard.mjs.map