diff options
Diffstat (limited to 'src/bun.js/bindings/bindings.cpp')
-rw-r--r-- | src/bun.js/bindings/bindings.cpp | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/src/bun.js/bindings/bindings.cpp b/src/bun.js/bindings/bindings.cpp index 02a79c1b0..aa8a28601 100644 --- a/src/bun.js/bindings/bindings.cpp +++ b/src/bun.js/bindings/bindings.cpp @@ -85,6 +85,10 @@ #include "JavaScriptCore/HashMapImpl.h" #include "JavaScriptCore/HashMapImplInlines.h" +#include "DOMFormData.h" +#include "JSDOMFormData.h" +#include "ZigGeneratedClasses.h" + template<typename UWSResponse> static void copyToUWS(WebCore::FetchHeaders* headers, UWSResponse* res) { @@ -3726,4 +3730,53 @@ extern "C" void JSC__JSGlobalObject__queueMicrotaskJob(JSC__JSGlobalObject* arg0 JSC::JSValue::decode(JSValue2), JSC::JSValue::decode(JSValue3), JSC::JSValue::decode(JSValue4)); +} + +#pragma mark - WebCore::DOMFormData + +CPP_DECL void WebCore__DOMFormData__append(WebCore__DOMFormData* arg0, ZigString* arg1, ZigString* arg2) +{ + arg0->append(toStringCopy(*arg1), toStringCopy(*arg2)); +} + +CPP_DECL void WebCore__DOMFormData__appendBlob(WebCore__DOMFormData* arg0, JSC__JSGlobalObject* arg1, ZigString* arg2, void* blobValueInner, ZigString* fileName) +{ + RefPtr<Blob> blob = WebCore::Blob::create(blobValueInner); + arg0->append(toStringCopy(*arg2), blob, toStringCopy(*fileName)); +} +CPP_DECL size_t WebCore__DOMFormData__count(WebCore__DOMFormData* arg0) +{ + return arg0->count(); +} + +extern "C" void DOMFormData__toQueryString( + DOMFormData* formData, + void* ctx, + void (*callback)(void* ctx, ZigString* encoded)) +{ + auto str = formData->toURLEncodedString(); + ZigString encoded = toZigString(str); + callback(ctx, &encoded); +} + +CPP_DECL JSC__JSValue WebCore__DOMFormData__createFromURLQuery(JSC__JSGlobalObject* arg0, ZigString* arg1) +{ + JSC::VM& vm = arg0->vm(); + Zig::GlobalObject* globalObject = reinterpret_cast<Zig::GlobalObject*>(arg0); + // don't need to copy the string because it internally does. + auto formData = DOMFormData::create(globalObject->scriptExecutionContext(), toString(*arg1)); + return JSValue::encode(toJSNewlyCreated(arg0, globalObject, WTFMove(formData))); +} + +CPP_DECL JSC__JSValue WebCore__DOMFormData__create(JSC__JSGlobalObject* arg0) +{ + JSC::VM& vm = arg0->vm(); + Zig::GlobalObject* globalObject = reinterpret_cast<Zig::GlobalObject*>(arg0); + auto formData = DOMFormData::create(globalObject->scriptExecutionContext()); + return JSValue::encode(toJSNewlyCreated(arg0, globalObject, WTFMove(formData))); +} + +CPP_DECL WebCore__DOMFormData* WebCore__DOMFormData__fromJS(JSC__JSValue JSValue1) +{ + return WebCoreCast<WebCore::JSDOMFormData, WebCore__DOMFormData>(JSValue1); }
\ No newline at end of file |