@ooneex/http-request-file 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +64 -2
- package/dist/index.js.map +2 -2
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,3 +1,65 @@
|
|
|
1
|
-
|
|
1
|
+
// src/RequestFile.ts
|
|
2
|
+
import { Mime } from "@ooneex/http-mimes";
|
|
3
|
+
import { random, toKebabCase } from "@ooneex/utils";
|
|
2
4
|
|
|
3
|
-
|
|
5
|
+
class RequestFile {
|
|
6
|
+
native;
|
|
7
|
+
id;
|
|
8
|
+
name;
|
|
9
|
+
originalName;
|
|
10
|
+
type;
|
|
11
|
+
size;
|
|
12
|
+
extension;
|
|
13
|
+
isImage;
|
|
14
|
+
isSvg;
|
|
15
|
+
isVideo;
|
|
16
|
+
isAudio;
|
|
17
|
+
isPdf;
|
|
18
|
+
isText;
|
|
19
|
+
isExcel;
|
|
20
|
+
isCsv;
|
|
21
|
+
isJson;
|
|
22
|
+
isXml;
|
|
23
|
+
isHtml;
|
|
24
|
+
constructor(native) {
|
|
25
|
+
this.native = native;
|
|
26
|
+
const match = this.native.name.match(/\.([0-9a-z]+)$/i);
|
|
27
|
+
this.extension = (match ? match[1] : "")?.toLowerCase() || "";
|
|
28
|
+
this.originalName = toKebabCase(this.native.name.replace(/\.[0-9a-z]*$/i, ""));
|
|
29
|
+
this.originalName = `${this.originalName}.${this.extension}`;
|
|
30
|
+
this.type = this.native.type.replace(/\s*;.*$/, "");
|
|
31
|
+
this.size = this.native.size;
|
|
32
|
+
this.id = random.nanoid(25);
|
|
33
|
+
this.name = `${this.id}.${this.extension}`;
|
|
34
|
+
const mime = new Mime;
|
|
35
|
+
const typeAsString = this.type;
|
|
36
|
+
this.isImage = mime.isImage(typeAsString);
|
|
37
|
+
this.isSvg = mime.isSvg(typeAsString);
|
|
38
|
+
this.isVideo = mime.isVideo(typeAsString);
|
|
39
|
+
this.isAudio = mime.isAudio(typeAsString);
|
|
40
|
+
this.isPdf = mime.isPdf(typeAsString);
|
|
41
|
+
this.isText = mime.isText(typeAsString);
|
|
42
|
+
this.isExcel = mime.isExcel(typeAsString);
|
|
43
|
+
this.isCsv = mime.isCsv(typeAsString);
|
|
44
|
+
this.isJson = mime.isJson(typeAsString);
|
|
45
|
+
this.isXml = mime.isXml(typeAsString);
|
|
46
|
+
this.isHtml = mime.isHtml(typeAsString);
|
|
47
|
+
}
|
|
48
|
+
async readAsArrayBuffer() {
|
|
49
|
+
return await this.native.arrayBuffer();
|
|
50
|
+
}
|
|
51
|
+
readAsStream() {
|
|
52
|
+
return this.native.stream();
|
|
53
|
+
}
|
|
54
|
+
async readAsText() {
|
|
55
|
+
return await this.native.text();
|
|
56
|
+
}
|
|
57
|
+
async write(path) {
|
|
58
|
+
await Bun.write(path, this.native);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export {
|
|
62
|
+
RequestFile
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
//# debugId=5A13BBE9314A93EE64756E2164756E21
|
package/dist/index.js.map
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { Mime, type MimeType } from \"@ooneex/http-mimes\";\nimport { random, toKebabCase } from \"@ooneex/utils\";\nimport type { IRequestFile } from \"./types\";\n\nexport class RequestFile implements IRequestFile {\n public readonly id: string;\n public readonly name: string;\n public readonly originalName: string;\n public readonly type: MimeType;\n public readonly size: number;\n public readonly extension: string;\n public readonly isImage: boolean;\n public readonly isSvg: boolean;\n public readonly isVideo: boolean;\n public readonly isAudio: boolean;\n public readonly isPdf: boolean;\n public readonly isText: boolean;\n public readonly isExcel: boolean;\n public readonly isCsv: boolean;\n public readonly isJson: boolean;\n public readonly isXml: boolean;\n public readonly isHtml: boolean;\n\n constructor(private readonly native: File) {\n const match = this.native.name.match(/\\.([0-9a-z]+)$/i);\n this.extension = (match ? match[1] : \"\")?.toLowerCase() || \"\";\n this.originalName = toKebabCase(this.native.name.replace(/\\.[0-9a-z]*$/i, \"\"));\n this.originalName = `${this.originalName}.${this.extension}`;\n this.type = this.native.type.replace(/\\s*;.*$/, \"\") as MimeType;\n this.size = this.native.size;\n this.id = random.nanoid(25);\n this.name = `${this.id}.${this.extension}`;\n\n const mime = new Mime();\n const typeAsString = this.type as string;\n\n this.isImage = mime.isImage(typeAsString);\n this.isSvg = mime.isSvg(typeAsString);\n this.isVideo = mime.isVideo(typeAsString);\n this.isAudio = mime.isAudio(typeAsString);\n this.isPdf = mime.isPdf(typeAsString);\n this.isText = mime.isText(typeAsString);\n this.isExcel = mime.isExcel(typeAsString);\n this.isCsv = mime.isCsv(typeAsString);\n this.isJson = mime.isJson(typeAsString);\n this.isXml = mime.isXml(typeAsString);\n this.isHtml = mime.isHtml(typeAsString);\n }\n\n public async readAsArrayBuffer(): Promise<ArrayBuffer> {\n return await this.native.arrayBuffer();\n }\n\n public readAsStream(): ReadableStream<Uint8Array> {\n return this.native.stream();\n }\n\n public async readAsText(): Promise<string> {\n return await this.native.text();\n }\n\n public async write(path: string): Promise<void> {\n await Bun.write(path, this.native);\n }\n}\n"
|
|
6
6
|
],
|
|
7
|
-
"mappings": "AAAA,
|
|
8
|
-
"debugId": "
|
|
7
|
+
"mappings": ";AAAA;AACA;AAAA;AAGO,MAAM,YAAoC;AAAA,EAmBlB;AAAA,EAlBb;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEhB,WAAW,CAAkB,QAAc;AAAA,IAAd;AAAA,IAC3B,MAAM,QAAQ,KAAK,OAAO,KAAK,MAAM,iBAAiB;AAAA,IACtD,KAAK,aAAa,QAAQ,MAAM,KAAK,KAAK,YAAY,KAAK;AAAA,IAC3D,KAAK,eAAe,YAAY,KAAK,OAAO,KAAK,QAAQ,iBAAiB,EAAE,CAAC;AAAA,IAC7E,KAAK,eAAe,GAAG,KAAK,gBAAgB,KAAK;AAAA,IACjD,KAAK,OAAO,KAAK,OAAO,KAAK,QAAQ,WAAW,EAAE;AAAA,IAClD,KAAK,OAAO,KAAK,OAAO;AAAA,IACxB,KAAK,KAAK,OAAO,OAAO,EAAE;AAAA,IAC1B,KAAK,OAAO,GAAG,KAAK,MAAM,KAAK;AAAA,IAE/B,MAAM,OAAO,IAAI;AAAA,IACjB,MAAM,eAAe,KAAK;AAAA,IAE1B,KAAK,UAAU,KAAK,QAAQ,YAAY;AAAA,IACxC,KAAK,QAAQ,KAAK,MAAM,YAAY;AAAA,IACpC,KAAK,UAAU,KAAK,QAAQ,YAAY;AAAA,IACxC,KAAK,UAAU,KAAK,QAAQ,YAAY;AAAA,IACxC,KAAK,QAAQ,KAAK,MAAM,YAAY;AAAA,IACpC,KAAK,SAAS,KAAK,OAAO,YAAY;AAAA,IACtC,KAAK,UAAU,KAAK,QAAQ,YAAY;AAAA,IACxC,KAAK,QAAQ,KAAK,MAAM,YAAY;AAAA,IACpC,KAAK,SAAS,KAAK,OAAO,YAAY;AAAA,IACtC,KAAK,QAAQ,KAAK,MAAM,YAAY;AAAA,IACpC,KAAK,SAAS,KAAK,OAAO,YAAY;AAAA;AAAA,OAG3B,kBAAiB,GAAyB;AAAA,IACrD,OAAO,MAAM,KAAK,OAAO,YAAY;AAAA;AAAA,EAGhC,YAAY,GAA+B;AAAA,IAChD,OAAO,KAAK,OAAO,OAAO;AAAA;AAAA,OAGf,WAAU,GAAoB;AAAA,IACzC,OAAO,MAAM,KAAK,OAAO,KAAK;AAAA;AAAA,OAGnB,MAAK,CAAC,MAA6B;AAAA,IAC9C,MAAM,IAAI,MAAM,MAAM,KAAK,MAAM;AAAA;AAErC;",
|
|
8
|
+
"debugId": "5A13BBE9314A93EE64756E2164756E21",
|
|
9
9
|
"names": []
|
|
10
10
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ooneex/http-request-file",
|
|
3
3
|
"description": "File upload handling for HTTP requests with MIME type detection and validation utilities",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.13.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
7
7
|
"dist",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"npm:publish": "bun publish --tolerate-republish --access public"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"@ooneex/http-mimes": "0.0.
|
|
31
|
+
"@ooneex/http-mimes": "0.0.13",
|
|
32
32
|
"@ooneex/utils": "0.1.0"
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {},
|