ai-horde
Version:
49 lines • 1.68 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.getModels = exports.findUser = exports.waitForResponse = exports.generate = void 0;
const request_1 = require("./request");
const DEFAULT_API_KEY = '0000000000';
async function generate(request, apikey = DEFAULT_API_KEY) {
const url = `/generate/text/async`;
const res = await (0, request_1.post)({ url, body: request, apikey });
return res;
}
exports.generate = generate;
async function waitForResponse(id, timeoutSecs) {
const url = `/generate/text/status/${id}`;
const start = Date.now();
while (true) {
if (timeoutSecs) {
const diff = Date.now() - start;
if (diff >= timeoutSecs * 1000) {
throw new Error(`Request timed out: Exceeded ${timeoutSecs} seconds`);
}
}
const res = await (0, request_1.get)({ url });
if (res.done) {
return res;
}
if (res.faulted) {
const error = new Error(`Generation failed: Faulted`);
error.body = res;
throw error;
}
await wait();
}
}
exports.waitForResponse = waitForResponse;
async function findUser(apikey) {
const user = await (0, request_1.get)({ url: `/find_user`, apikey });
return user;
}
exports.findUser = findUser;
async function getModels(type = 'image') {
const url = `/status/models?type=${type}`;
const models = await (0, request_1.get)({ url });
return models;
}
exports.getModels = getModels;
async function wait(secs = 2) {
return new Promise((resolve) => setTimeout(resolve, secs * 1000));
}
//# sourceMappingURL=index.js.map