Giter VIP home page Giter VIP logo

Comments (12)

Autumnlight02 avatar Autumnlight02 commented on June 8, 2024 6

oven-sh/bun#5434

from surrealdb.js.

baadc0de avatar baadc0de commented on June 8, 2024 5

For me, the one-shot connect method worked and the above separated signing/use did not.

import {ExperimentalSurrealHTTP} from 'surrealdb.js'

const surreal = new ExperimentalSurrealHTTP()

await surreal.connect('http://localhost:8000/rpc', {auth: {user: 'root', pass: 'root'}, ns: 'test', db: 'test'})

from surrealdb.js.

paperdave avatar paperdave commented on June 8, 2024 5

This is a bug in Bun, not surrealdb. Our WebSocket client has some issues. We should open a tracking issue in Bun's repo so we don't forget about it though.

from surrealdb.js.

kearfy avatar kearfy commented on June 8, 2024 4

Hi @gluax, we actually run tests against bun. The only known issue there is that the awaiting the closing of the websocket will run forever, looking into that soon. Will also have a look at this, it should work just fine...

from surrealdb.js.

kearfy avatar kearfy commented on June 8, 2024 4

Hey everyone, as per the bun docs, their websocket implementation is still experimental and it does not properly pass all test suites. The broken pipe error is something that the JS side of things does not influence and really rather is an issue in Bun's websocket implementation. I'm afraid I can't make it any better for the moment! Will leave the issue open however

from surrealdb.js.

jpg-gamepad avatar jpg-gamepad commented on June 8, 2024 3

Bun 1.0 just released and still the same issue.

from surrealdb.js.

jpg-gamepad avatar jpg-gamepad commented on June 8, 2024 3

I looked at the source code, and it seems the experimental http version works with Bun run!
There's no documentation on it, but something like this should work.

const { ExperimentalSurrealHTTP } = require('surrealdb.js');
const db = new ExperimentalSurrealHTTP();

async function main() {
	try {
		await db.connect('http://127.0.0.1:8000/rpc', {});
		// Select a specific namespace / database
		await db.use({ns: 'test', db: 'test'});

		// Create a new person with a random id
		let created = await db.create("person", {
			title: 'Founder & CEO',
			name: {
				first: 'Tobie',
				last: 'Morgan Hitchcock',
			},
			marketing: true,
			identifier: Math.random().toString(36).slice(2, 12),
		});

		// Update a person record with a specific id
		let updated = await db.merge("person:jaime", {
			marketing: true,
		});

		// Select all people records
		let people = await db.select("person");

		// Perform a custom advanced query
		let groups = await db.query('SELECT marketing, count() FROM type::table($tb) GROUP BY marketing', {
			tb: 'person',
		});

		console.log(people);
		console.log(groups);

	} catch (e) {
		console.error('ERROR', e);
	}
}

main();

from surrealdb.js.

LucyEgan avatar LucyEgan commented on June 8, 2024 3

This is now working for us in bun 1.0.15 as they have updated their websocket client

from surrealdb.js.

MurkyTheMurloc avatar MurkyTheMurloc commented on June 8, 2024 2

I have a similar issue when using Bun, I get 2023-08-22 22:30:08 2023-08-22T20:30:08.902561Z TRACE surrealdb::net: RPC Received: { id: '1259', method: 'ping', params: [] } ](surrealdb::net: WebSocket error: Io(Os { code: 32, kind: BrokenPipe, message: "Broken pipe" }))
and my promise from, the operation waits infinity. However, the same code using node works peferkt.

from surrealdb.js.

Micnubinub avatar Micnubinub commented on June 8, 2024 2

Hi @gluax, we actually run tests against bun. The only known issue there is that the awaiting the closing of the websocket will run forever, looking into that soon. Will also have a look at this, it should work just fine...

@kearfy Hey, I'm on Bun 0.7.3, surreal 1.0.0-beta.9+20230820.b350f05 and surrealdb.js 0.8.4 and mine just hangs when connecting. You manage to find a fix?

*still the same on Bun 0.8.0

from surrealdb.js.

gluax avatar gluax commented on June 8, 2024

I did attempt this with a try catch block as well, but no ever was ever caught and it would still hang at the info or any other execution method.

from surrealdb.js.

gluax avatar gluax commented on June 8, 2024

This issue does not affect the ExperimentalSurrealHTTP this functions as normal :)

from surrealdb.js.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.