Feat : Skills
This commit is contained in:
31
open-sse/handlers/imageProviders/_base.js
Normal file
31
open-sse/handlers/imageProviders/_base.js
Normal file
@@ -0,0 +1,31 @@
|
||||
// Shared helpers for image provider adapters
|
||||
|
||||
export const POLL_INTERVAL_MS = 1500;
|
||||
export const POLL_TIMEOUT_MS = 120000;
|
||||
|
||||
export const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
|
||||
|
||||
// Map OpenAI size to provider-specific aspect ratio
|
||||
export function sizeToAspectRatio(size) {
|
||||
if (!size || typeof size !== "string") return "1:1";
|
||||
const map = {
|
||||
"1024x1024": "1:1",
|
||||
"1024x1792": "9:16",
|
||||
"1792x1024": "16:9",
|
||||
"1024x1536": "2:3",
|
||||
"1536x1024": "3:2",
|
||||
};
|
||||
return map[size] || "1:1";
|
||||
}
|
||||
|
||||
// Fetch URL → base64 (for providers returning image URLs)
|
||||
export async function urlToBase64(url) {
|
||||
const res = await fetch(url);
|
||||
if (!res.ok) throw new Error(`Failed to fetch image: ${res.status}`);
|
||||
const buf = await res.arrayBuffer();
|
||||
return Buffer.from(buf).toString("base64");
|
||||
}
|
||||
|
||||
export function nowSec() {
|
||||
return Math.floor(Date.now() / 1000);
|
||||
}
|
||||
Reference in New Issue
Block a user