MCPcopy Create free account
hub / github.com/ClydeTime/Surge / done

Method done

Script/Env.js:565–617  ·  view source on GitHub ↗
(object = {})

Source from the content-addressed store, hash-verified

563 }
564
565 done(object = {}) {
566 const endTime = new Date().getTime()
567 const costTime = (endTime - this.startTime) / 1000
568 this.log('', `🔔${this.name}, 结束! 🕛 ${costTime} 秒`)
569 switch (this.platform()) {
570 case 'Surge':
571 if (object.policy) this.lodash_set(object, "headers.X-Surge-Policy", object.policy)
572 $done(object)
573 break
574 case 'Loon':
575 if (object.policy) object.node = object.policy
576 $done(object)
577 break
578 case 'Stash':
579 if (object.policy) this.lodash_set(object, "headers.X-Stash-Selected-Proxy", encodeURI(object.policy))
580 $done(object)
581 break
582 case 'Egern':
583 $done(object)
584 break
585 case 'Shadowrocket':
586 default:
587 $done(object)
588 break
589 case 'Quantumult X':
590 if (object.policy) this.lodash_set(object, "opts.policy", object.policy)
591 // 移除不可写字段
592 delete object["auto-redirect"]
593 delete object["auto-cookie"]
594 delete object["binary-mode"]
595 delete object.charset
596 delete object.host
597 delete object.insecure
598 delete object.method // 1.4.x 不可写
599 delete object.opt // $task.fetch() 参数, 不可写
600 delete object.path // 可写, 但会与 url 冲突
601 delete object.policy
602 delete object["policy-descriptor"]
603 delete object.scheme
604 delete object.sessionIndex
605 delete object.statusCode
606 delete object.timeout
607 if (object.body instanceof ArrayBuffer) {
608 object.bodyBytes = object.body
609 delete object.body
610 } else if (ArrayBuffer.isView(object.body)) {
611 object.bodyBytes = object.body.buffer.slice(object.body.byteOffset, object.body.byteLength + object.body.byteOffset)
612 delete object.body
613 } else if (object.body) delete object.bodyBytes
614 $done(object)
615 break
616 }
617 }
618 })(name, opts)
619}

Callers

nothing calls this directly

Calls 3

logMethod · 0.45
platformMethod · 0.45
lodash_setMethod · 0.45

Tested by

no test coverage detected