Comments (5)
I think the confusion is happening because what SurrealDB represents as a line (two points) is actually a linestring (two or more points). They're different datatypes, but we just simply use only linestrings.
from surrealdb.js.
This test might be more straightforward in terms of semantics:
Deno.test("issue #263", async () => {
const surreal = await createSurreal();
const input = new GeometryPolygon([
new GeometryLine([
new GeometryPoint([1, 2]),
new GeometryPoint([3, 4]),
]),
new GeometryLine([
new GeometryPoint([5, 6]),
new GeometryPoint([7, 8]),
]),
]);
const [output, expected] = await surreal.query<[
typeof input,
GeometryPolygon,
]>(
/* surql */ `
$input;
{
type: "Polygon",
coordinates: [
[ [1, 2], [3, 4] ],
[ [5, 6], [7, 8] ],
],
};
`,
{ input },
);
assertInstanceOf(expected, GeometryPolygon);
const expectedJson = JSON.parse(JSON.stringify(expected));
assertEquals(expectedJson, {
type: "Polygon",
coordinates: [
[["1", "2"], ["3", "4"], ["1", "2"]],
[["5", "6"], ["7", "8"], ["5", "6"]],
],
});
assertEquals(JSON.parse(JSON.stringify(output)), expectedJson);
await surreal.close();
});
P.S: The test results are the same.
from surrealdb.js.
Hey @tai-kun, I'm not sure if I understand the issue correctly. In the second assertion, only in the test, your added a third point in the lines of the polygon, but you have not added those third points anywhere else. In that sense it's expected that the test fails, right?
from surrealdb.js.
Ah it's just the type that's incorrect! The test you added here threw me off a bit 😅
from surrealdb.js.
I'm sorry for the confusion. I couldn't figure out a good way to reproduce the inconsistency between the type and the actual value. I attempted to recreate it by exploiting the Geo crate to add a GeometryPoint to a GeometryLine in specific cases, but it was a desperate attempt. Please discard that test...
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: 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.