1- package workers
1+ package cloudflare
22
33import (
44 "fmt"
55 "io"
66 "syscall/js"
7+
8+ "github.com/syumai/workers/internal/jsutil"
79)
810
911// KVNamespace represents interface of Cloudflare Worker's KV namespace instance.
@@ -15,7 +17,7 @@ type KVNamespace struct {
1517
1618// NewKVNamespace returns KVNamespace for given variable name.
1719// - variable name must be defined in wrangler.toml as kv_namespace's binding.
18- // - if the given variable name doesn't exist on global object, returns error.
20+ // - if the given variable name doesn't exist on Global object, returns error.
1921func NewKVNamespace (varName string ) (* KVNamespace , error ) {
2022 inst := js .Global ().Get (varName )
2123 if inst .IsUndefined () {
@@ -31,7 +33,7 @@ type KVNamespaceGetOptions struct {
3133}
3234
3335func (opts * KVNamespaceGetOptions ) toJS (type_ string ) js.Value {
34- obj := newObject ()
36+ obj := jsutil . NewObject ()
3537 obj .Set ("type" , type_ )
3638 if opts == nil {
3739 return obj
@@ -46,7 +48,7 @@ func (opts *KVNamespaceGetOptions) toJS(type_ string) js.Value {
4648// - if a network error happens, returns error.
4749func (kv * KVNamespace ) GetString (key string , opts * KVNamespaceGetOptions ) (string , error ) {
4850 p := kv .instance .Call ("get" , key , opts .toJS ("text" ))
49- v , err := awaitPromise (p )
51+ v , err := jsutil . AwaitPromise (p )
5052 if err != nil {
5153 return "" , err
5254 }
@@ -57,12 +59,12 @@ func (kv *KVNamespace) GetString(key string, opts *KVNamespaceGetOptions) (strin
5759// - if a network error happens, returns error.
5860func (kv * KVNamespace ) GetReader (key string , opts * KVNamespaceGetOptions ) (io.Reader , error ) {
5961 p := kv .instance .Call ("get" , key , opts .toJS ("stream" ))
60- v , err := awaitPromise (p )
62+ v , err := jsutil . AwaitPromise (p )
6163 if err != nil {
6264 return nil , err
6365 }
64- global .Get ("console" ).Call ("log" , v )
65- return convertStreamReaderToReader (v .Call ("getReader" )), nil
66+ jsutil . Global .Get ("console" ).Call ("log" , v )
67+ return jsutil . ConvertStreamReaderToReader (v .Call ("getReader" )), nil
6668}
6769
6870// KVNamespaceListOptions represents Cloudflare KV namespace list options.
@@ -77,7 +79,7 @@ func (opts *KVNamespaceListOptions) toJS() js.Value {
7779 if opts == nil {
7880 return js .Undefined ()
7981 }
80- obj := newObject ()
82+ obj := jsutil . NewObject ()
8183 if opts .Limit != 0 {
8284 obj .Set ("limit" , opts .Limit )
8385 }
@@ -151,7 +153,7 @@ func toKVNamespaceListResult(v js.Value) (*KVNamespaceListResult, error) {
151153// List lists keys stored into the KV namespace.
152154func (kv * KVNamespace ) List (opts * KVNamespaceListOptions ) (* KVNamespaceListResult , error ) {
153155 p := kv .instance .Call ("list" , opts .toJS ())
154- v , err := awaitPromise (p )
156+ v , err := jsutil . AwaitPromise (p )
155157 if err != nil {
156158 return nil , err
157159 }
@@ -170,7 +172,7 @@ func (opts *KVNamespacePutOptions) toJS() js.Value {
170172 if opts == nil {
171173 return js .Undefined ()
172174 }
173- obj := newObject ()
175+ obj := jsutil . NewObject ()
174176 if opts .Expiration != 0 {
175177 obj .Set ("expiration" , opts .Expiration )
176178 }
@@ -184,7 +186,7 @@ func (opts *KVNamespacePutOptions) toJS() js.Value {
184186// - if a network error happens, returns error.
185187func (kv * KVNamespace ) PutString (key string , value string , opts * KVNamespacePutOptions ) error {
186188 p := kv .instance .Call ("put" , key , value , opts .toJS ())
187- _ , err := awaitPromise (p )
189+ _ , err := jsutil . AwaitPromise (p )
188190 if err != nil {
189191 return err
190192 }
@@ -200,10 +202,10 @@ func (kv *KVNamespace) PutReader(key string, value io.Reader, opts *KVNamespaceP
200202 if err != nil {
201203 return err
202204 }
203- ua := newUint8Array (len (b ))
205+ ua := jsutil . NewUint8Array (len (b ))
204206 js .CopyBytesToJS (ua , b )
205207 p := kv .instance .Call ("put" , key , ua .Get ("buffer" ), opts .toJS ())
206- _ , err = awaitPromise (p )
208+ _ , err = jsutil . AwaitPromise (p )
207209 if err != nil {
208210 return err
209211 }
@@ -214,7 +216,7 @@ func (kv *KVNamespace) PutReader(key string, value io.Reader, opts *KVNamespaceP
214216// - if a network error happens, returns error.
215217func (kv * KVNamespace ) Delete (key string ) error {
216218 p := kv .instance .Call ("delete" , key )
217- _ , err := awaitPromise (p )
219+ _ , err := jsutil . AwaitPromise (p )
218220 if err != nil {
219221 return err
220222 }
0 commit comments