generated from ShadowVR/AI_botter
80 lines
3.7 KiB
JavaScript
80 lines
3.7 KiB
JavaScript
|
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
||
|
if (kind === "m") throw new TypeError("Private method is not writable");
|
||
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
||
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
||
|
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
||
|
};
|
||
|
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
||
|
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
||
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
||
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
||
|
};
|
||
|
var _FileFromPath_path, _FileFromPath_start;
|
||
|
import { statSync, createReadStream, promises as fs } from "fs";
|
||
|
import { basename } from "path";
|
||
|
import DOMException from "node-domexception";
|
||
|
import { File } from "./File.js";
|
||
|
import isPlainObject from "./isPlainObject.js";
|
||
|
export * from "./isFile.js";
|
||
|
const MESSAGE = "The requested file could not be read, "
|
||
|
+ "typically due to permission problems that have occurred after a reference "
|
||
|
+ "to a file was acquired.";
|
||
|
class FileFromPath {
|
||
|
constructor(input) {
|
||
|
_FileFromPath_path.set(this, void 0);
|
||
|
_FileFromPath_start.set(this, void 0);
|
||
|
__classPrivateFieldSet(this, _FileFromPath_path, input.path, "f");
|
||
|
__classPrivateFieldSet(this, _FileFromPath_start, input.start || 0, "f");
|
||
|
this.name = basename(__classPrivateFieldGet(this, _FileFromPath_path, "f"));
|
||
|
this.size = input.size;
|
||
|
this.lastModified = input.lastModified;
|
||
|
}
|
||
|
slice(start, end) {
|
||
|
return new FileFromPath({
|
||
|
path: __classPrivateFieldGet(this, _FileFromPath_path, "f"),
|
||
|
lastModified: this.lastModified,
|
||
|
size: end - start,
|
||
|
start
|
||
|
});
|
||
|
}
|
||
|
async *stream() {
|
||
|
const { mtimeMs } = await fs.stat(__classPrivateFieldGet(this, _FileFromPath_path, "f"));
|
||
|
if (mtimeMs > this.lastModified) {
|
||
|
throw new DOMException(MESSAGE, "NotReadableError");
|
||
|
}
|
||
|
if (this.size) {
|
||
|
yield* createReadStream(__classPrivateFieldGet(this, _FileFromPath_path, "f"), {
|
||
|
start: __classPrivateFieldGet(this, _FileFromPath_start, "f"),
|
||
|
end: __classPrivateFieldGet(this, _FileFromPath_start, "f") + this.size - 1
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
get [(_FileFromPath_path = new WeakMap(), _FileFromPath_start = new WeakMap(), Symbol.toStringTag)]() {
|
||
|
return "File";
|
||
|
}
|
||
|
}
|
||
|
function createFileFromPath(path, { mtimeMs, size }, filenameOrOptions, options = {}) {
|
||
|
let filename;
|
||
|
if (isPlainObject(filenameOrOptions)) {
|
||
|
[options, filename] = [filenameOrOptions, undefined];
|
||
|
}
|
||
|
else {
|
||
|
filename = filenameOrOptions;
|
||
|
}
|
||
|
const file = new FileFromPath({ path, size, lastModified: mtimeMs });
|
||
|
if (!filename) {
|
||
|
filename = file.name;
|
||
|
}
|
||
|
return new File([file], filename, {
|
||
|
...options, lastModified: file.lastModified
|
||
|
});
|
||
|
}
|
||
|
export function fileFromPathSync(path, filenameOrOptions, options = {}) {
|
||
|
const stats = statSync(path);
|
||
|
return createFileFromPath(path, stats, filenameOrOptions, options);
|
||
|
}
|
||
|
export async function fileFromPath(path, filenameOrOptions, options) {
|
||
|
const stats = await fs.stat(path);
|
||
|
return createFileFromPath(path, stats, filenameOrOptions, options);
|
||
|
}
|