文件预览

api-client.js

查看 550W视频去字幕 技能包中的文件内容。

文件内容

dist/api-client.js

"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.TIMEOUT_CONFIG = exports.ApiClient = void 0;
const axios_1 = __importDefault(require("axios"));
const form_data_1 = __importDefault(require("form-data"));
const types_1 = require("./types");
Object.defineProperty(exports, "TIMEOUT_CONFIG", { enumerable: true, get: function () { return types_1.TIMEOUT_CONFIG; } });
class ApiClient {
    constructor(credential) {
        this.credential = credential;
        this.baseUrl = types_1.BASE_URL;
    }
    async post(endpoint, params, timeout) {
        try {
            const body = new URLSearchParams({
                userNo: this.credential.userNo,
                apiKey: this.credential.apiKey,
                ...params,
            });
            const response = await axios_1.default.post(`${this.baseUrl}${endpoint}`, body.toString(), {
                headers: { "Content-Type": "application/x-www-form-urlencoded" },
                timeout,
            });
            return this.parseResponse(response.data);
        }
        catch (error) {
            return this.handleError(error);
        }
    }
    async upload(endpoint, params, file, timeout) {
        try {
            const form = new form_data_1.default();
            form.append("userNo", this.credential.userNo);
            form.append("apiKey", this.credential.apiKey);
            for (const [key, value] of Object.entries(params)) {
                form.append(key, value);
            }
            form.append("file", file.data, { filename: file.name });
            const response = await axios_1.default.post(`${this.baseUrl}${endpoint}`, form, {
                headers: form.getHeaders(),
                timeout,
            });
            return this.parseResponse(response.data);
        }
        catch (error) {
            return this.handleError(error);
        }
    }
    parseResponse(data) {
        if (data == null || typeof data.code === "undefined") {
            return { code: -500, message: "响应格式异常" };
        }
        return data;
    }
    handleError(error) {
        if (error?.code === "ECONNABORTED" || error?.code === "ETIMEDOUT") {
            return { code: -500, message: "请求超时,请检查网络连接后重试" };
        }
        const msg = error?.message || "未知错误";
        return { code: -500, message: `网络请求失败: ${msg}` };
    }
}
exports.ApiClient = ApiClient;
//# sourceMappingURL=api-client.js.map