补充方案
This commit is contained in:
@@ -9,7 +9,13 @@ const bodyParser = require('body-parser')
|
||||
const cors = require('cors')
|
||||
const fs = require('fs').promises
|
||||
const path = require('path')
|
||||
const fetch = require('node-fetch')
|
||||
const fetchImpl = (globalThis.fetch ? globalThis.fetch.bind(globalThis) : (() => {
|
||||
try {
|
||||
return require('node-fetch')
|
||||
} catch (e) {
|
||||
throw new Error("No fetch implementation found. Use Node.js 18+ or install 'node-fetch'.")
|
||||
}
|
||||
})())
|
||||
const { spawn } = require('child_process')
|
||||
|
||||
// 支持服务专用端口,避免与 webhook-receiver 共用 server/config.json 时发生端口冲突
|
||||
@@ -76,7 +82,7 @@ async function supaFetch(path, opts = {}) {
|
||||
if (sendBearer) headers.Authorization = `Bearer ${SUPA_KEY}`
|
||||
try {
|
||||
console.log('supaFetch ->', url)
|
||||
const resp = await fetch(url, Object.assign({}, opts, { headers }))
|
||||
const resp = await fetchImpl(url, Object.assign({}, opts, { headers }))
|
||||
if (!resp.ok) {
|
||||
let txt = ''
|
||||
try { txt = await resp.text() } catch (e) { txt = `<unable to read body: ${e}>` }
|
||||
@@ -220,7 +226,7 @@ async function start() {
|
||||
async function invokeCloudFuncForCid(funcUrl, token, pushCid, title, content, payload) {
|
||||
try {
|
||||
const body = { token: token || PUSH_TOKEN || null, push_clientid: pushCid, title: title || '', content: content || '', payload: payload || {} }
|
||||
const resp = await fetch(funcUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body) })
|
||||
const resp = await fetchImpl(funcUrl, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(body) })
|
||||
const txt = await resp.text().catch(() => '')
|
||||
let json
|
||||
try { json = JSON.parse(txt) } catch (e) { json = { statusText: txt } }
|
||||
|
||||
Reference in New Issue
Block a user