Comments (12)
from surrealdb.js.
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.
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.
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.
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.
Bun 1.0 just released and still the same issue.
from surrealdb.js.
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.
This is now working for us in bun 1.0.15 as they have updated their websocket client
from surrealdb.js.
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.
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.
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.
This issue does not affect the ExperimentalSurrealHTTP
this functions as normal :)
from surrealdb.js.
Related Issues (20)
- Bug: CF Pages SSR with SurrealJS fails HOT 2
- Feature: Parse object- and array based record ID HOT 5
- Bug: Using docker compose networking causes TypeError: t.mask is not a function or connection to hang when running .wait() or .query() HOT 2
- [BUG]: Path is ignored in the Connenction URL HOT 1
- Documentation: Further define `thing` on db.create/merge/delete/select HOT 2
- Bug: Argument of type 'TemplateStringsArray' is not assignable to parameter of type 'string[]' HOT 1
- Bug: JS Sdk disconnected and couldn't authenticate again
- Bug: node_js_1.default is not a constructor at SurrealSocket.open HOT 1
- Bug: HOT 1
- Bug: Missing typing on `.query` method
- Feature: Implement toString and fromString for RecordId class HOT 1
- Feature: RecordId class should error if passing a RecordId as parameter
- Bug: Scope authentication id variable not working HOT 3
- Bug: Connection Unavailable with HTTP protocol in v1.0.0-beta.5 HOT 6
- Bug: problems in v1.0.0-beta.5 with select, delete and update functions when providing ID and inconsistency when returning JSON results from select and create functions. HOT 2
- Bug: CBORError: Remaining bytes HOT 10
- Feature: support custom fetch functions HOT 4
- Bug: WS connection does not work using node 22 HOT 3
- Bug: Type mismatch in geometries HOT 5
- Bug: create does not work with 1.0.0-beta.6 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from surrealdb.js.