UNPKG

@henteko/kumiki

Version:

A video generation tool that creates videos from JSON configurations

55 lines 1.87 kB
/** * generate:// URLかどうかをチェック */ export function isGenerateUrl(src) { if (typeof src === 'string') { return src.startsWith('generate://'); } if (typeof src === 'object' && src !== null && 'type' in src) { const obj = src; return obj.type === 'generate'; } return false; } /** * generate:// URLまたはオブジェクトからパラメータを抽出 */ export function parseGenerateUrl(src) { if (typeof src === 'string') { // generate://プロンプト 形式 if (!src.startsWith('generate://')) { throw new Error('Invalid generate URL format'); } const prompt = src.slice('generate://'.length).trim(); if (!prompt) { throw new Error('Empty prompt in generate URL'); } return { prompt }; } if (typeof src === 'object' && src !== null && 'type' in src) { // オブジェクト形式 const obj = src; if (obj.type !== 'generate') { throw new Error('Invalid generate object type'); } if (!obj.prompt || typeof obj.prompt !== 'string') { throw new Error('Missing or invalid prompt in generate object'); } const params = { prompt: obj.prompt, }; // オプショナルパラメータ if (obj.style && ['photorealistic', 'illustration', 'anime', 'sketch'].includes(obj.style)) { params.style = obj.style; } if (obj.aspectRatio && typeof obj.aspectRatio === 'string') { params.aspectRatio = obj.aspectRatio; } if (obj.seed && typeof obj.seed === 'number') { params.seed = obj.seed; } return params; } throw new Error('Invalid generate URL or object format'); } //# sourceMappingURL=generate-url-parser.js.map