Cynsar-Foundation / second.exchange

This is the social media platform owned by users and governed by users
http://2nd.exchange
Creative Commons Zero v1.0 Universal
15 stars 7 forks source link

Create Factory Services #118

Open saranshisatgit opened 2 years ago

saranshisatgit commented 2 years ago
saranshisatgit commented 2 years ago

@thozinza and @thotrung

ThoTrung commented 2 years ago

@saranshisatgit I am not very clear about this, could you add more detail?

maektwain commented 2 years ago

The SDK Service part

  1. How does SDK's work?

They expose certain functions or methods that can be or should be used via any service or UI or anything

  1. npm packages like @2nd/sdk

  2. What do they contain ?

 async initConnection(): Promise<NostrEvent[]> {
      logger.info('Init Connection Services')
      const fetchedEvents: NostrEvent[] = [];
      let userList = [];
      if (typeof window !== undefined) {
        const privKey =
          localStorage.getItem("keys") !== null
            ? JSON.parse(localStorage.getItem("keys")!).privateKey
            : null;
        if (privKey !== null) pool.setPrivateKey(privKey);
        const userIdList =
          localStorage.getItem("follow-list") !== null
            ? JSON.parse(JSON.stringify(localStorage.getItem("follow-list")))
            : '[]';
        console.log(userIdList);
        // console.log(JSON.parse(userIdList));
        userList = JSON.parse(userIdList);
        // userList =
        //   typeof userIdList === "object" ? JSON.parse(userIdList) : userList;
      }
      const relays = await getRelays();
      relays.map(async (relayUrl: string) => await pool.addRelay(relayUrl));

      await pool.sub(
        {
          cb: async (event: NostrEvent) => {
            switch (event.kind) {
              case 0:
              case 1:
              case 2:
                fetchedEvents.push(event);
                return;
            }
          },
          filter: [
            {
              authors: userList,
              kinds: [0, 1, 3],
            },
          ],
        },
        "profile-browser"
      );
      return fetchedEvents;
    },
  1. How the developers are going to call it?
  1. Then they use the function like this
  1. SDK becomes your API

Hence its standardised