mirror of
https://github.com/vercel/workflow.git
synced 2026-09-14 19:59:43 +08:00
cdf90d5a38
* Rename Workflow DevKit to Workflow SDK, remove beta badge, add tweet wall - Rename "Workflow DevKit" to "Workflow SDK" across all files (~108 files) - Rename standalone "WDK" references to "Workflow SDK" - Remove beta badge from homepage hero - Add tweet wall component to homepage with 4 builder testimonials Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Rename Workflow DevKit to Workflow SDK, remove beta badge, add tweet wall - Rename "Workflow DevKit" to "Workflow SDK" across all files (~108 files) - Rename standalone "WDK" references to "Workflow SDK" - Remove beta badge from homepage hero - Add tweet wall component to homepage with 4 builder testimonials Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Harpreet Arora <harpreet.txt@gmail.com> * Address review: fix missed trigger phrase renames and bump skill versions - Rename "workflow devkit" to "workflow sdk" in trigger phrases for both skill files - Bump workflow-init SKILL.md version to 1.1 - Bump workflow SKILL.md version to 1.5 - Note: CLAUDE.md is a symlink to AGENTS.md, already renamed Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Signed-off-by: Harpreet Arora <harpreet.txt@gmail.com> * link correct tweet --------- Signed-off-by: Harpreet Arora <harpreet.txt@gmail.com> Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: Karthik Kalyanaraman <karthik.kalyanaraman@vercel.com>
77 lines
1.6 KiB
Vue
77 lines
1.6 KiB
Vue
<template>
|
|
<div>
|
|
<h1>Workflow SDK + Nitro + Nuxt Example</h1>
|
|
<hr />
|
|
<textarea v-model="output" readonly placeholder="output"></textarea>
|
|
</div>
|
|
</template>
|
|
|
|
<script setup>
|
|
import { ref, onMounted } from 'vue'
|
|
|
|
const output = ref('')
|
|
|
|
onMounted(async () => {
|
|
const { runId } = await fetchAndLog(
|
|
'/api/trigger?workflowFile=workflows/0_calc.ts&workflowFn=calc&args=2',
|
|
{
|
|
method: 'POST',
|
|
headers: { 'Content-Type': 'application/json' },
|
|
body: '',
|
|
}
|
|
)
|
|
|
|
if (runId) {
|
|
log('Getting workflow status with runId:', runId)
|
|
await fetchAndLog(`/api/trigger?runId=${runId}`)
|
|
}
|
|
})
|
|
|
|
function log(...args) {
|
|
output.value +=
|
|
args
|
|
.map((arg) => (typeof arg === 'string' ? arg : JSON.stringify(arg)))
|
|
.join(' ') + '\n'
|
|
}
|
|
|
|
function tryFormatJSON(text) {
|
|
try {
|
|
return JSON.stringify(JSON.parse(text), null, 2)
|
|
} catch {
|
|
return text
|
|
}
|
|
}
|
|
|
|
async function fetchAndLog(input, init) {
|
|
try {
|
|
log(`[${init?.method || 'GET'}] ${input}`)
|
|
const res = await fetch(input, init)
|
|
const text = await res.text()
|
|
|
|
if (res.ok) {
|
|
log('Response:', tryFormatJSON(text))
|
|
return JSON.parse(text)
|
|
} else {
|
|
log('Error', res.status, res.statusText, tryFormatJSON(text))
|
|
}
|
|
} catch (error) {
|
|
log('Fetch error:', error.toString())
|
|
}
|
|
return {}
|
|
}
|
|
</script>
|
|
|
|
<style scoped>
|
|
textarea {
|
|
width: 100%;
|
|
height: calc(100vh - 140px);
|
|
max-height: calc(100vh - 140px);
|
|
box-sizing: border-box;
|
|
padding: 8px;
|
|
font-family: monospace;
|
|
font-size: 14px;
|
|
resize: none;
|
|
overflow: auto;
|
|
}
|
|
</style>
|