UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 5.54 kB
{"version":3,"file":"index.js","names":[],"sources":["esm/platform/file-system/index.js"],"sourcesContent":["import { Directory, File, FileHandle, FileMode, Paths } from \"./classes\";\nimport { directories, entry, info, parent, parts, serial, transfer, write } from \"./opfs\";\nconst operations = Object.freeze({\n getDirectories: () => typeof window === \"undefined\" ? { documents: \"\", cache: \"\", applicationSupport: \"\", temporary: \"\" } : { ...directories },\n getInfo: (uri) => typeof window === \"undefined\" ? Promise.resolve({ uri, exists: false, isDirectory: false }) : info(uri),\n readDirectory: async (uri) => {\n if (typeof window === \"undefined\") return [];\n const names = parts(uri), handle = await entry(names);\n if (handle.kind !== \"directory\") throw new Error(\"FileSystem: expected a directory\");\n const entries = [];\n for await (const [name, child] of handle.entries())\n entries.push({\n name,\n uri: `opfs://one/${[...names, name].map(encodeURIComponent).join(\"/\")}${child.kind === \"directory\" ? \"/\" : \"\"}`,\n isDirectory: child.kind === \"directory\"\n });\n return entries.sort((a, b) => a.name < b.name ? -1 : a.name > b.name ? 1 : 0);\n },\n makeDirectory: async (uri, intermediates = true) => {\n if (typeof window === \"undefined\") return;\n const names = parts(uri);\n await (await parent(names, intermediates)).getDirectoryHandle(names.at(-1), { create: true });\n },\n writeFile: async (uri, contents, encoding = \"utf8\") => {\n if (typeof window === \"undefined\") return;\n const names = parts(uri);\n let data = contents;\n if (encoding === \"base64\") {\n if (!/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(contents))\n throw new Error(\"FileSystem: invalid base64 contents\");\n data = Uint8Array.from(atob(contents), (char) => char.charCodeAt(0));\n } else if (encoding !== \"utf8\") throw new Error(\"FileSystem: invalid encoding\");\n await write(\n await (await parent(names)).getFileHandle(names.at(-1), { create: true }),\n data\n );\n },\n copy: async (from, to) => {\n if (typeof window !== \"undefined\") await transfer(from, to, false);\n },\n move: async (from, to) => {\n if (typeof window !== \"undefined\") await transfer(from, to, true);\n },\n delete: async (uri) => {\n if (typeof window === \"undefined\") return;\n const names = parts(uri);\n if (names.length === 1)\n throw new Error(\"FileSystem: app root directories are protected\");\n await (await parent(names)).removeEntry(names.at(-1), { recursive: true });\n }\n});\nconst FileSystem = Object.freeze({\n getDirectories: operations.getDirectories,\n getInfo: (uri) => serial(() => operations.getInfo(uri)),\n readDirectory: (uri) => serial(() => operations.readDirectory(uri)),\n makeDirectory: (uri, intermediates = true) => serial(() => operations.makeDirectory(uri, intermediates)),\n writeFile: (uri, contents, encoding = \"utf8\") => serial(() => operations.writeFile(uri, contents, encoding)),\n copy: (from, to) => serial(() => operations.copy(from, to)),\n move: (from, to) => serial(() => operations.move(from, to)),\n delete: (uri) => serial(() => operations.delete(uri)),\n File,\n Directory,\n Paths,\n FileHandle,\n FileMode\n});\nexport {\n FileSystem\n};\n//# sourceMappingURL=index.js.map\n"],"mappings":"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"}