CF Worker: better detection for binding type
Signed-off-by: ItalyPaleAle <43508+ItalyPaleAle@users.noreply.github.com>
This commit is contained in:
		
							parent
							
								
									c23fc9e30d
								
							
						
					
					
						commit
						4e17e42818
					
				| 
						 | 
				
			
			@ -1,12 +1,12 @@
 | 
			
		|||
{
 | 
			
		||||
    "name": "dapr-cfworkers-client",
 | 
			
		||||
    "version": "20221219",
 | 
			
		||||
    "version": "20221228",
 | 
			
		||||
    "lockfileVersion": 2,
 | 
			
		||||
    "requires": true,
 | 
			
		||||
    "packages": {
 | 
			
		||||
        "": {
 | 
			
		||||
            "name": "dapr-cfworkers-client",
 | 
			
		||||
            "version": "20221219",
 | 
			
		||||
            "version": "20221228",
 | 
			
		||||
            "license": "Apache2",
 | 
			
		||||
            "dependencies": {
 | 
			
		||||
                "itty-router": "^2.6.6",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2,7 +2,7 @@
 | 
			
		|||
    "private": true,
 | 
			
		||||
    "name": "dapr-cfworkers-client",
 | 
			
		||||
    "description": "Client code for Dapr to interact with Cloudflare Workers",
 | 
			
		||||
    "version": "20221219",
 | 
			
		||||
    "version": "20221228",
 | 
			
		||||
    "main": "worker.ts",
 | 
			
		||||
    "scripts": {
 | 
			
		||||
        "build": "esbuild --bundle --minify --outfile=../workers/code/worker.js --format=esm --platform=browser --sourcemap worker.ts",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -40,24 +40,20 @@ const router = Router()
 | 
			
		|||
                    continue
 | 
			
		||||
                }
 | 
			
		||||
                const obj = env[all[i]]
 | 
			
		||||
                if (!obj || typeof obj != 'object') {
 | 
			
		||||
                if (!obj || typeof obj != 'object' || !obj.constructor) {
 | 
			
		||||
                    continue
 | 
			
		||||
                }
 | 
			
		||||
                if (
 | 
			
		||||
                    (obj as Queue<string>) &&
 | 
			
		||||
                    typeof (obj as Queue<string>).send == 'function'
 | 
			
		||||
                ) {
 | 
			
		||||
                    queues.push(all[i])
 | 
			
		||||
                } else if (
 | 
			
		||||
                    (obj as KVNamespace) &&
 | 
			
		||||
                    typeof (obj as KVNamespace).getWithMetadata == 'function'
 | 
			
		||||
                ) {
 | 
			
		||||
                    kv.push(all[i])
 | 
			
		||||
                } else if (
 | 
			
		||||
                    (obj as R2Bucket) &&
 | 
			
		||||
                    typeof (obj as R2Bucket).createMultipartUpload == 'function'
 | 
			
		||||
                ) {
 | 
			
		||||
                    r2.push(all[i])
 | 
			
		||||
                switch (obj.constructor.name) {
 | 
			
		||||
                    case 'KVNamespace':
 | 
			
		||||
                        kv.push(all[i])
 | 
			
		||||
                        break
 | 
			
		||||
                    case 'Queue':
 | 
			
		||||
                        queues.push(all[i])
 | 
			
		||||
                        break
 | 
			
		||||
                    case 'R2Bucket':
 | 
			
		||||
                        // Note that we currently don't support R2 yet
 | 
			
		||||
                        r2.push(all[i])
 | 
			
		||||
                        break
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -174,7 +170,7 @@ async function setupKVRequest(
 | 
			
		|||
        return { errorRes: new Response('Bad request', { status: 400 }) }
 | 
			
		||||
    }
 | 
			
		||||
    const namespace = env[req.params.namespace] as KVNamespace<string>
 | 
			
		||||
    if (!namespace || typeof namespace.getWithMetadata != 'function') {
 | 
			
		||||
    if (typeof namespace != 'object' || namespace?.constructor?.name != 'KVNamespace') {
 | 
			
		||||
        return {
 | 
			
		||||
            errorRes: new Response(
 | 
			
		||||
                `Worker is not bound to KV '${req.params.kv}'`,
 | 
			
		||||
| 
						 | 
				
			
			@ -200,7 +196,7 @@ async function setupQueueRequest(
 | 
			
		|||
        return { errorRes: new Response('Bad request', { status: 400 }) }
 | 
			
		||||
    }
 | 
			
		||||
    const queue = env[req.params.queue] as Queue<string>
 | 
			
		||||
    if (!queue || typeof queue.send != 'function') {
 | 
			
		||||
    if (typeof queue != 'object' || queue?.constructor?.name != 'Queue') {
 | 
			
		||||
        return {
 | 
			
		||||
            errorRes: new Response(
 | 
			
		||||
                `Worker is not bound to queue '${req.params.queue}'`,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
		Loading…
	
		Reference in New Issue