Skip to content

Commit 9ecb525

Browse files
committed
move from new function/files to core
1 parent 3f9002c commit 9ecb525

39 files changed

+456
-1200
lines changed

apps/events/src/components/todos.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,26 @@
11
import {
2-
useCreateEntityNew,
2+
useCreateEntity,
33
useDeleteEntity,
4-
useQueryNew,
4+
useQuery,
55
useRemoveRelation,
66
useSpace,
77
useUpdateEntity,
88
} from '@graphprotocol/hypergraph-react';
99
import { useEffect, useState } from 'react';
1010
import Select from 'react-select';
11-
import { Todo, TodoNew, UserNew } from '../schema';
11+
import { Todo, User } from '../schema';
1212
import { Button } from './ui/button';
1313
import { Input } from './ui/input';
1414

1515
export const Todos = () => {
16-
const { data: todos } = useQueryNew(TodoNew, {
16+
const { data: todos } = useQuery(Todo, {
1717
mode: 'private',
1818
include: { assignees: {} },
1919
// filter: { or: [{ name: { startsWith: 'aa' } }, { name: { is: 'sdasd' } }] },
2020
});
21-
const { data: users } = useQueryNew(UserNew, { mode: 'private' });
21+
const { data: users } = useQuery(User, { mode: 'private' });
2222
const { ready: spaceReady } = useSpace({ mode: 'private' });
23-
const createEntity = useCreateEntityNew(TodoNew);
23+
const createEntity = useCreateEntity(Todo);
2424
const updateEntity = useUpdateEntity(Todo);
2525
const deleteEntity = useDeleteEntity();
2626
const removeRelation = useRemoveRelation();

apps/events/src/components/users.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import { useCreateEntityNew, useQueryNew, useSpace } from '@graphprotocol/hypergraph-react';
1+
import { useCreateEntity, useQuery, useSpace } from '@graphprotocol/hypergraph-react';
22
import { useState } from 'react';
3-
import { UserNew } from '../schema.js';
3+
import { User } from '../schema.js';
44
import { Button } from './ui/button.js';
55
import { Input } from './ui/input.js';
66
import { UserEntry } from './user-entry.js';
77

88
export const Users = () => {
9-
const { data: users } = useQueryNew(UserNew, { mode: 'private' });
9+
const { data: users } = useQuery(User, { mode: 'private' });
1010
const { ready: spaceReady } = useSpace({ mode: 'private' });
11-
const createEntityNew = useCreateEntityNew(UserNew);
11+
const createEntityNew = useCreateEntity(User);
1212
const [newUserName, setNewUserName] = useState('');
1313

1414
console.log(users);

apps/events/src/schema.ts

Lines changed: 64 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,7 @@
1-
import { Entity, EntityNew, Id, Type, TypeNew } from '@graphprotocol/hypergraph';
1+
import { EntitySchema, Id, Type } from '@graphprotocol/hypergraph';
22

3-
export class User extends Entity.Class<User>('User')({
4-
name: Type.String,
5-
}) {}
6-
7-
export class Todo extends Entity.Class<Todo>('Todo')({
8-
name: Type.String,
9-
completed: Type.Boolean,
10-
assignees: Type.Relation(User),
11-
}) {}
12-
13-
export class Todo2 extends Entity.Class<Todo2>('Todo2')({
14-
name: Type.String,
15-
checked: Type.Boolean,
16-
assignees: Type.Relation(User),
17-
due: Type.Date,
18-
amount: Type.Number,
19-
point: Type.Point,
20-
website: Type.String,
21-
}) {}
22-
23-
export class JobOffer extends Entity.Class<JobOffer>('JobOffer')({
24-
name: Type.String,
25-
salary: Type.Number,
26-
}) {}
27-
28-
export class Company extends Entity.Class<Company>('Company')({
29-
name: Type.String,
30-
jobOffers: Type.Relation(JobOffer),
31-
}) {}
32-
33-
export class Event extends Entity.Class<Event>('Event')({
34-
name: Type.String,
35-
description: Type.optional(Type.String),
36-
sponsors: Type.Relation(Company),
37-
}) {}
38-
39-
export class Todo3 extends Entity.Class<Todo3>('Todo3')({
40-
name: Type.String,
41-
completed: Type.Boolean,
42-
description: Type.String,
43-
}) {}
44-
45-
export const UserNew = EntityNew(
46-
{ name: TypeNew.String },
3+
export const User = EntitySchema(
4+
{ name: Type.String },
475
{
486
types: [Id('bffa181e-a333-495b-949c-57f2831d7eca')],
497
properties: {
@@ -52,11 +10,11 @@ export const UserNew = EntityNew(
5210
},
5311
);
5412

55-
export const TodoNew = EntityNew(
13+
export const Todo = EntitySchema(
5614
{
57-
name: TypeNew.String,
58-
completed: TypeNew.Boolean,
59-
assignees: TypeNew.Relation(UserNew),
15+
name: Type.String,
16+
completed: Type.Boolean,
17+
assignees: Type.Relation(User),
6018
},
6119
{
6220
types: [Id('44fe82a9-e4c2-4330-a395-ce85ed78e421')],
@@ -68,10 +26,34 @@ export const TodoNew = EntityNew(
6826
},
6927
);
7028

71-
export const JobOfferNew = EntityNew(
29+
export const Todo2 = EntitySchema(
7230
{
73-
name: TypeNew.String,
74-
salary: TypeNew.Number,
31+
name: Type.String,
32+
checked: Type.Boolean,
33+
assignees: Type.Relation(User),
34+
due: Type.Date,
35+
amount: Type.Number,
36+
point: Type.Point,
37+
website: Type.String,
38+
},
39+
{
40+
types: [Id('210f4e94-234c-49d7-af0f-f3b74fb07650')],
41+
properties: {
42+
name: Id('e291f4da-632d-4b70-aca8-5c6c01dbf1ca'),
43+
checked: Id('d1cc82ef-8bde-45f4-b31c-56b6d59279ec'),
44+
assignees: Id('1115e9f8-db2e-41df-8969-c5d34c367c10'),
45+
due: Id('6a28f275-b31c-47bc-83cd-ad416aaa7073'),
46+
amount: Id('0c8219be-e284-4738-bd95-91a1c113c78e'),
47+
point: Id('7f032477-c60e-4c85-a161-019b70db05ca'),
48+
website: Id('75b6a647-5c2b-41e7-92c0-b0a0c9b28b02'),
49+
},
50+
},
51+
);
52+
53+
export const JobOffer = EntitySchema(
54+
{
55+
name: Type.String,
56+
salary: Type.Number,
7557
},
7658
{
7759
types: [Id('bffa181e-a333-495b-949c-57f2831d7eca')],
@@ -81,3 +63,33 @@ export const JobOfferNew = EntityNew(
8163
},
8264
},
8365
);
66+
67+
export const Company = EntitySchema(
68+
{
69+
name: Type.String,
70+
jobOffers: Type.Relation(JobOffer),
71+
},
72+
{
73+
types: [Id('6c504df5-1a8f-43d1-bf2d-1ef9fa5b08b5')],
74+
properties: {
75+
name: Id('a126ca53-0c8e-48d5-b888-82c734c38935'),
76+
jobOffers: Id('1203064e-9741-4235-89d4-97f4b22eddfb'),
77+
},
78+
},
79+
);
80+
81+
export const Event = EntitySchema(
82+
{
83+
name: Type.String,
84+
description: Type.optional(Type.String),
85+
sponsors: Type.Relation(Company),
86+
},
87+
{
88+
types: [Id('7f9562d4-034d-4385-bf5c-f02cdebba47a')],
89+
properties: {
90+
name: Id('a126ca53-0c8e-48d5-b888-82c734c38935'),
91+
description: Id('9b1f76ff-9711-404c-861e-59dc3fa7d037'),
92+
sponsors: Id('6860bfac-f703-4289-b789-972d0aaf3abe'),
93+
},
94+
},
95+
);

apps/privy-login-example/src/mapping.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,4 @@ export const mapping: Mapping.Mapping = {
5858
sponsors: Id('6860bfac-f703-4289-b789-972d0aaf3abe'),
5959
},
6060
},
61-
Todo3: {
62-
typeIds: [Id('4f7bba76-7855-4d63-b59d-1d9f2be866df')],
63-
properties: {
64-
name: Id('47006386-d351-411c-8287-1dae1c1aa8c1'),
65-
completed: Id('9f9f00eb-4f32-4f71-92ba-b266566d0013'),
66-
description: Id('89cac80a-1dbd-4bca-97b2-45e1556d9122'),
67-
},
68-
},
6961
};
Lines changed: 89 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,95 @@
1-
import { Entity, Type } from '@graphprotocol/hypergraph';
1+
import { EntitySchema, Id, Type } from '@graphprotocol/hypergraph';
22

3-
export class User extends Entity.Class<User>('User')({
4-
name: Type.String,
5-
}) {}
3+
export const User = EntitySchema(
4+
{ name: Type.String },
5+
{
6+
types: [Id('bffa181e-a333-495b-949c-57f2831d7eca')],
7+
properties: {
8+
name: Id('a126ca53-0c8e-48d5-b888-82c734c38935'),
9+
},
10+
},
11+
);
612

7-
export class Todo extends Entity.Class<Todo>('Todo')({
8-
name: Type.String,
9-
completed: Type.Boolean,
10-
assignees: Type.Relation(User),
11-
}) {}
13+
export const Todo = EntitySchema(
14+
{
15+
name: Type.String,
16+
completed: Type.Boolean,
17+
assignees: Type.Relation(User),
18+
},
19+
{
20+
types: [Id('44fe82a9-e4c2-4330-a395-ce85ed78e421')],
21+
properties: {
22+
name: Id('c668aa67-bbca-4b2c-908c-9c5599035eab'),
23+
completed: Id('71e7654f-2623-4794-88fb-841c8f3dd9b4'),
24+
assignees: Id('5b80d3ee-2463-4246-b628-44ba808ab3e1'),
25+
},
26+
},
27+
);
1228

13-
export class Todo2 extends Entity.Class<Todo2>('Todo2')({
14-
name: Type.String,
15-
checked: Type.Boolean,
16-
assignees: Type.Relation(User),
17-
due: Type.Date,
18-
amount: Type.Number,
19-
point: Type.Point,
20-
website: Type.String,
21-
}) {}
29+
export const Todo2 = EntitySchema(
30+
{
31+
name: Type.String,
32+
checked: Type.Boolean,
33+
assignees: Type.Relation(User),
34+
due: Type.Date,
35+
amount: Type.Number,
36+
point: Type.Point,
37+
website: Type.String,
38+
},
39+
{
40+
types: [Id('210f4e94-234c-49d7-af0f-f3b74fb07650')],
41+
properties: {
42+
name: Id('e291f4da-632d-4b70-aca8-5c6c01dbf1ca'),
43+
checked: Id('d1cc82ef-8bde-45f4-b31c-56b6d59279ec'),
44+
assignees: Id('1115e9f8-db2e-41df-8969-c5d34c367c10'),
45+
due: Id('6a28f275-b31c-47bc-83cd-ad416aaa7073'),
46+
amount: Id('0c8219be-e284-4738-bd95-91a1c113c78e'),
47+
point: Id('7f032477-c60e-4c85-a161-019b70db05ca'),
48+
website: Id('75b6a647-5c2b-41e7-92c0-b0a0c9b28b02'),
49+
},
50+
},
51+
);
2252

23-
export class JobOffer extends Entity.Class<JobOffer>('JobOffer')({
24-
name: Type.String,
25-
salary: Type.Number,
26-
}) {}
53+
export const JobOffer = EntitySchema(
54+
{
55+
name: Type.String,
56+
salary: Type.Number,
57+
},
58+
{
59+
types: [Id('bffa181e-a333-495b-949c-57f2831d7eca')],
60+
properties: {
61+
name: Id('a126ca53-0c8e-48d5-b888-82c734c38935'),
62+
salary: Id('baa36ac9-78ac-4cf7-8394-6b2d3006bebe'),
63+
},
64+
},
65+
);
2766

28-
export class Company extends Entity.Class<Company>('Company')({
29-
name: Type.String,
30-
jobOffers: Type.Relation(JobOffer),
31-
}) {}
67+
export const Company = EntitySchema(
68+
{
69+
name: Type.String,
70+
jobOffers: Type.Relation(JobOffer),
71+
},
72+
{
73+
types: [Id('6c504df5-1a8f-43d1-bf2d-1ef9fa5b08b5')],
74+
properties: {
75+
name: Id('a126ca53-0c8e-48d5-b888-82c734c38935'),
76+
jobOffers: Id('1203064e-9741-4235-89d4-97f4b22eddfb'),
77+
},
78+
},
79+
);
3280

33-
export class Event extends Entity.Class<Event>('Event')({
34-
name: Type.String,
35-
description: Type.optional(Type.String),
36-
sponsors: Type.Relation(Company),
37-
}) {}
38-
39-
export class Todo3 extends Entity.Class<Todo3>('Todo3')({
40-
name: Type.String,
41-
completed: Type.Boolean,
42-
description: Type.String,
43-
}) {}
81+
export const Event = EntitySchema(
82+
{
83+
name: Type.String,
84+
description: Type.optional(Type.String),
85+
sponsors: Type.Relation(Company),
86+
},
87+
{
88+
types: [Id('7f9562d4-034d-4385-bf5c-f02cdebba47a')],
89+
properties: {
90+
name: Id('a126ca53-0c8e-48d5-b888-82c734c38935'),
91+
description: Id('9b1f76ff-9711-404c-861e-59dc3fa7d037'),
92+
sponsors: Id('6860bfac-f703-4289-b789-972d0aaf3abe'),
93+
},
94+
},
95+
);

packages/hypergraph-react/src/hooks/use-create-entity.ts

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,7 @@ import type * as Schema from 'effect/Schema';
55
import { useHypergraphSpaceInternal } from '../internal/use-hypergraph-space-internal.js';
66
import { useSubscribeToSpaceAndGetHandle } from '../internal/use-subscribe-to-space.js';
77

8-
export function useCreateEntity<const S extends Entity.AnyNoContext>(type: S, options?: { space?: string }) {
9-
const { space: spaceIdFromParams } = options ?? {};
10-
const { space: spaceFromContext } = useHypergraphSpaceInternal();
11-
const spaceId = spaceIdFromParams ?? spaceFromContext;
12-
const handle = useSubscribeToSpaceAndGetHandle({ spaceId, enabled: true });
13-
if (!handle) {
14-
return () => {
15-
throw new Error('Space not found or not ready');
16-
};
17-
}
18-
return Entity.create(handle, type);
19-
}
20-
21-
export function useCreateEntityNew<const S extends Schema.Schema.AnyNoContext>(type: S, options?: { space?: string }) {
8+
export function useCreateEntity<const S extends Schema.Schema.AnyNoContext>(type: S, options?: { space?: string }) {
229
const { space: spaceIdFromParams } = options ?? {};
2310
const { space: spaceFromContext } = useHypergraphSpaceInternal();
2411
const spaceId = spaceIdFromParams ?? spaceFromContext;

packages/hypergraph-react/src/hooks/use-entity.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import type { Entity, Id } from '@graphprotocol/hypergraph';
1+
import type { Id } from '@graphprotocol/hypergraph';
22
import type * as Schema from 'effect/Schema';
33
import { useEntityPrivate } from '../internal/use-entity-private.js';
44
import { useEntityPublic } from '../internal/use-entity-public.js';
55

6-
export function useEntity<const S extends Entity.AnyNoContext>(
6+
export function useEntity<const S extends Schema.Schema.AnyNoContext>(
77
type: S,
88
params: {
99
id: string | Id;

0 commit comments

Comments
 (0)