Skip to main content
Glama

Convex MCP server

Official
by get-convex
blob.ts3.19 kB
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license. import { assert } from "chai"; import { wrapInTests } from "./testHelpers"; import { query } from "../_generated/server"; export default query(async () => { return await wrapInTests({ empty_blob, from_array_buffer, from_type_array, from_string, from_blob, multi_part, blobStream, blobString, blobBuffer, blobSlice, blobInvalidType, }); }); function empty_blob() { const b = new Blob(); assert.strictEqual(b.size, 0); assert.strictEqual(b.type, ""); } async function from_array_buffer() { const input = new Uint8Array([1, 2, 3]).buffer; const b = new Blob([input]); assert.strictEqual(b.size, 3); assert.deepEqual(await b.arrayBuffer(), input); } async function from_type_array() { const input = new Uint8Array([1, 2, 3]); const b = new Blob([input]); assert.strictEqual(b.size, 3); assert.deepEqual(await b.arrayBuffer(), input.buffer); } async function from_string() { const b = new Blob(["test123"]); assert.strictEqual(b.size, 7); assert.strictEqual(await b.text(), "test123"); } async function from_blob() { const input = new Blob(["test123"]); const b = new Blob([input]); assert.strictEqual(b.size, 7); assert.deepEqual(await b.arrayBuffer(), await input.arrayBuffer()); } async function multi_part() { const b = new Blob([ new Uint8Array([1]), new Uint8Array([2]), new Uint8Array([3]), ]); assert.strictEqual(b.size, 3); assert.deepEqual(await b.arrayBuffer(), new Uint8Array([1, 2, 3]).buffer); } async function blobStream() { const blob = new Blob(["Hello World"]); const stream = blob.stream(); assert(stream instanceof ReadableStream); const reader = stream.getReader(); const chunks: Uint8Array[] = []; const read = async (): Promise<void> => { const { done, value } = await reader.read(); if (!done && value) { chunks.push(value); return read(); } }; await read(); const decoder = new TextDecoder(); const bytes = await new Blob(chunks).arrayBuffer(); assert.strictEqual(decoder.decode(bytes), "Hello World"); } function blobString() { const b1 = new Blob(["Hello World"]); const str = "Test"; const b2 = new Blob([b1, str]); assert.strictEqual(b2.size, b1.size + str.length); } function blobBuffer() { const buffer = new ArrayBuffer(12); const u8 = new Uint8Array(buffer); const f1 = new Float32Array(buffer); const b1 = new Blob([buffer, u8]); assert.strictEqual(b1.size, 2 * u8.length); const b2 = new Blob([b1, f1]); assert.strictEqual(b2.size, 3 * u8.length); } function blobSlice() { const blob = new Blob(["Deno", "Foo"]); const b1 = blob.slice(0, 3, "Text/HTML"); assert(b1 instanceof Blob); assert.strictEqual(b1.size, 3); assert.strictEqual(b1.type, "text/html"); const b2 = blob.slice(-1, 3); assert.strictEqual(b2.size, 0); const b3 = blob.slice(100, 3); assert.strictEqual(b3.size, 0); const b4 = blob.slice(0, 10); assert.strictEqual(b4.size, blob.size); } function blobInvalidType() { const blob = new Blob(["foo"], { type: "\u0521", }); assert.strictEqual(blob.type, ""); }

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/get-convex/convex-backend'

If you have feedback or need assistance with the MCP directory API, please join our Discord server