minigame-std
Version:
Mini Game Standard Development Library.
54 lines (45 loc) • 1.47 kB
text/typescript
import { ABORT_ERROR, toFileSystemHandleLike, type FileSystemFileHandleLike, type FileSystemHandleLike } from 'happy-opfs';
/**
* 将 `FileSystemHandleLike` 转换为小游戏 `Stats`。
* @param handleLike - FileSystemHandleLike
* @returns
*/
export function convertFileSystemHandleLikeToStats(handleLike: FileSystemHandleLike): WechatMinigame.Stats {
const { kind } = handleLike;
const isFile = kind === 'file';
const isDirectory = kind === 'directory';
let size = 0;
let lastModifiedTime = 0;
if (isFile) {
const file = handleLike as FileSystemFileHandleLike;
size = file.size
lastModifiedTime = file.lastModified;
}
const stats: WechatMinigame.Stats = {
isFile: (): boolean => isFile,
isDirectory: (): boolean => isDirectory,
size,
lastModifiedTime,
lastAccessedTime: 0,
mode: 0,
};
return stats;
}
/**
* 将`FileSystemHandle`转换为小游戏 `Stats`。
* @param handle - FileSystemHandle
* @returns
*/
export async function convertFileSystemHandleToStats(handle: FileSystemHandle): Promise<WechatMinigame.Stats> {
const handleLike = await toFileSystemHandleLike(handle);
return convertFileSystemHandleLikeToStats(handleLike);
}
/**
* Creates an `AbortError` Error.
* @returns An `AbortError` Error.
*/
export function createAbortError(): Error {
const error = new Error();
error.name = ABORT_ERROR;
return error;
}