solid-user-search

Solid Library to retrieve friends for a user

Usage no npm install needed!

<script type="module">
  import solidUserSearch from 'https://cdn.skypack.dev/solid-user-search';
</script>

README

solid-user-search

Solid User Search Library is a library for accessing Solid Users...

Installation

 npm install solid-user-search

Usage

Then you can import components like this:

import { PersonDetails, fetchPersonDetails } from 'solid-user-search';
import {
  PersonTypes,
  PersonTypeLists,
  fetchPersonTypeLists
} from 'solid-user-search';
import { fetchConnections } from 'solid-user-search';

Description of objects and functionality available

PersonTypes

This is an enumeration it is used to describe the status of the connection.
The values are:

Name Description
me Logged in user
requester Another solid user that is requesting the logged in users friendship
requested Solid users whome the logged in person has requested friendship
friend Another solid user in which both parties have accepted a friendship
blocked Solid users the logged in user has unfriended
stranger Other solid users that are connected in some way to the logged in users current connections

PersonDetails

Person Details describe a solid user in relation to the logged in user. The object includes the following details of the solid user themselves:

Name DataType
webId string
avatarUrl string | null
fullName string | null
follows string[] | null

In addition it includes the status of the relationship to the logged in user:

PersonType PersonType | null

PersonTypeLists

PersonTypeLists are Objects that organize the collection of friends by PersonType. This can be used if...

export type PersonTypeLists = {
  [type in PersonType]: {
    [webId: string]: PersonDetails;
  };
};

Functions to search and return Solid Data

fetchPersonDetails

Fetches and returns the PersonDetails of the user with the given webId. This can be used like this:

const getUserDetails = async () => {
  try {
    await fetchPersonDetails(webId).then(() => {
      //do something
    });
  } catch (e) {
    console.log(e);
  }
};

fetchPersonTypeLists

Fetches and returns the PersonTypeLists for the logged in user. It takes an array of PersonTypes for the data you want to retrieve. If no argument is passed in it will return everything. This function is an async generator. It can be used like this:

(async () => {
  let generator = fetchPersonTypeLists();
  for await (let users of generator) {
    //do something
  }
})();

fetchConnections

Fetches and returns an array of PersonDetails for the logged in user. This function is an async generator. It takes an array of PersonTypes for the data you want to retrieve. If no argument is passed in it will return everything. It can be used like this:

(async () => {
  let generator = fetchConnections([PersonType.friend]);
  for await (let friends of generator) {
    //do something
  }
})();

Changelog

See CHANGELOG.

License

MIT © Inrupt