@fett/synology-api 0.0.3-beta.5 → 0.0.3-beta.6

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.
@@ -1 +1,21 @@
1
- export declare function uploadFile(args: any): Promise<import("./Upload.base.js").UploadFileResponse>;
1
+ import { AxiosProgressEvent } from "axios";
2
+ import { SynologyApiResponse } from "../../types/index.js";
3
+ declare enum OverwriteEnum {
4
+ OVERWRITE = "overwrite",
5
+ SKIP = "skip"
6
+ }
7
+ export type UploadFileParams = {
8
+ path: string;
9
+ file: File | Blob | string | any;
10
+ overwrite?: OverwriteEnum;
11
+ create_parents?: boolean;
12
+ onUploadProgress?: (progress: AxiosProgressEvent) => void;
13
+ };
14
+ export type UploadFileResponse = SynologyApiResponse<{
15
+ blSkip: boolean;
16
+ file: string;
17
+ pid: number;
18
+ progress: number;
19
+ }>;
20
+ export declare function uploadFile(params: UploadFileParams): Promise<any>;
21
+ export {};
@@ -1,28 +1,44 @@
1
1
  import { isNode } from "../../utils/index.js";
2
- import { uploadFileBase } from "./Upload.base.js";
3
- export async function uploadFile(args) {
2
+ import { createFormData, getFormDataHeaders } from "../../utils/index.js";
3
+ import { FileStationApi } from "../../types/index.js";
4
+ var OverwriteEnum;
5
+ (function (OverwriteEnum) {
6
+ OverwriteEnum["OVERWRITE"] = "overwrite";
7
+ OverwriteEnum["SKIP"] = "skip";
8
+ })(OverwriteEnum || (OverwriteEnum = {}));
9
+ export async function uploadFile(params) {
4
10
  if (!this.isConnecting) {
5
11
  await this.connect();
6
12
  }
7
- // @ts-ignore
8
- return uploadFileBase(this, args, async (file, formdata) => {
9
- // nodejs environment
10
- if (isNode) {
11
- let fileContent;
12
- let fileName = "";
13
- if (typeof file === "string") {
14
- fileName = require("path").basename(file);
15
- fileContent = await require("path").readFile(file);
16
- }
17
- formdata.append("file", fileContent, {
18
- filename: fileName,
19
- contentType: "application/octet-stream", // 可根据文件类型修改
20
- });
13
+ const api = this.getApiInfoByName(FileStationApi.Upload);
14
+ const { path, file, overwrite = OverwriteEnum.OVERWRITE, create_parents = true } = params;
15
+ let formData = createFormData();
16
+ formData.append("method", "upload");
17
+ formData.append("version", String(api?.maxVersion));
18
+ formData.append("api", FileStationApi.Upload);
19
+ formData.append("path", path);
20
+ formData.append("overwrite", overwrite);
21
+ formData.append("create_parents", String(create_parents));
22
+ if (isNode) {
23
+ let fileContent;
24
+ let fileName = "";
25
+ if (typeof file === "string") {
26
+ fileName = require("path").basename(file);
27
+ fileContent = await require("path").readFile(file);
21
28
  }
22
- else {
23
- // for browser environment
24
- formdata.append("file", file);
25
- }
26
- return formdata;
29
+ formData.append("file", fileContent, {
30
+ filename: fileName,
31
+ contentType: "application/octet-stream", // 可根据文件类型修改
32
+ });
33
+ }
34
+ else {
35
+ // for browser environment
36
+ formData.append("file", file);
37
+ }
38
+ const res = this.run(FileStationApi.Upload, {
39
+ method: "post",
40
+ data: formData,
41
+ headers: getFormDataHeaders(formData),
27
42
  });
43
+ return res;
28
44
  }
@@ -1 +1,21 @@
1
- export declare function uploadFile(args: any): Promise<import("./Upload.base.js").UploadFileResponse>;
1
+ import { AxiosProgressEvent } from "axios";
2
+ import { SynologyApiResponse } from "../../types/index.js";
3
+ declare enum OverwriteEnum {
4
+ OVERWRITE = "overwrite",
5
+ SKIP = "skip"
6
+ }
7
+ export type UploadFileParams = {
8
+ path: string;
9
+ file: File | Blob | string | any;
10
+ overwrite?: OverwriteEnum;
11
+ create_parents?: boolean;
12
+ onUploadProgress?: (progress: AxiosProgressEvent) => void;
13
+ };
14
+ export type UploadFileResponse = SynologyApiResponse<{
15
+ blSkip: boolean;
16
+ file: string;
17
+ pid: number;
18
+ progress: number;
19
+ }>;
20
+ export declare function uploadFile(params: UploadFileParams): Promise<any>;
21
+ export {};
@@ -1,11 +1,30 @@
1
- import { uploadFileBase } from "./Upload.base.js";
2
- export async function uploadFile(args) {
1
+ import { createFormData } from "../../utils/index.js";
2
+ import { FileStationApi } from "../../types/index.js";
3
+ var OverwriteEnum;
4
+ (function (OverwriteEnum) {
5
+ OverwriteEnum["OVERWRITE"] = "overwrite";
6
+ OverwriteEnum["SKIP"] = "skip";
7
+ })(OverwriteEnum || (OverwriteEnum = {}));
8
+ export async function uploadFile(params) {
3
9
  if (!this.isConnecting) {
4
10
  await this.connect();
5
11
  }
6
- // @ts-ignore
7
- return uploadFileBase(this, args, async (file, formdata) => {
8
- formdata.append("file", file);
9
- return formdata;
12
+ const api = this.getApiInfoByName(FileStationApi.Upload);
13
+ const { path, file, overwrite = OverwriteEnum.OVERWRITE, create_parents = true } = params;
14
+ let formData = createFormData();
15
+ formData.append("method", "upload");
16
+ formData.append("version", String(api?.maxVersion));
17
+ formData.append("api", FileStationApi.Upload);
18
+ formData.append("path", path);
19
+ formData.append("overwrite", overwrite);
20
+ formData.append("create_parents", String(create_parents));
21
+ formData.append("file", file);
22
+ const res = this.run(FileStationApi.Upload, {
23
+ method: "post",
24
+ data: formData,
25
+ headers: {
26
+ "Content-Type": "multipart/form-data",
27
+ },
10
28
  });
29
+ return res;
11
30
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fett/synology-api",
3
- "version": "0.0.3-beta.5",
3
+ "version": "0.0.3-beta.6",
4
4
  "description": "synology api for nodejs",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./lib/index.d.ts",
@@ -1,21 +0,0 @@
1
- import { AxiosProgressEvent } from "axios";
2
- import { SynologyApiResponse } from "../../types/index.js";
3
- declare enum OverwriteEnum {
4
- OVERWRITE = "overwrite",
5
- SKIP = "skip"
6
- }
7
- export type UploadFileParams = {
8
- path: string;
9
- file: File | Blob | string | any;
10
- overwrite?: OverwriteEnum;
11
- create_parents?: boolean;
12
- onUploadProgress?: (progress: AxiosProgressEvent) => void;
13
- };
14
- export type UploadFileResponse = SynologyApiResponse<{
15
- blSkip: boolean;
16
- file: string;
17
- pid: number;
18
- progress: number;
19
- }>;
20
- export declare function uploadFileBase(_that: any, params: UploadFileParams, parseFileFn: (file: File | Blob | string, formdata: any) => Promise<any>): Promise<UploadFileResponse>;
21
- export {};
@@ -1,25 +0,0 @@
1
- import { createFormData, getFormDataHeaders } from "../../utils/index.js";
2
- import { FileStationApi } from "../../types/index.js";
3
- var OverwriteEnum;
4
- (function (OverwriteEnum) {
5
- OverwriteEnum["OVERWRITE"] = "overwrite";
6
- OverwriteEnum["SKIP"] = "skip";
7
- })(OverwriteEnum || (OverwriteEnum = {}));
8
- export async function uploadFileBase(_that, params, parseFileFn) {
9
- const { path, file, overwrite = OverwriteEnum.OVERWRITE, create_parents = true } = params;
10
- const api = _that.getApiInfoByName(FileStationApi.Upload);
11
- let formData = createFormData();
12
- formData.append("method", "upload");
13
- formData.append("version", String(api?.maxVersion));
14
- formData.append("api", FileStationApi.Upload);
15
- formData.append("path", path);
16
- formData.append("overwrite", overwrite);
17
- formData.append("create_parents", String(create_parents));
18
- formData = await parseFileFn(file, formData);
19
- const res = _that.run(FileStationApi.Upload, {
20
- method: "post",
21
- data: formData,
22
- headers: getFormDataHeaders(formData),
23
- });
24
- return res;
25
- }