npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@kbiswas/userprofile-record-library

v0.2.2

Published

This library exposes a class that wraps the User Profile DAC, created and hosted by SkynetNet Hub.

Downloads

41

Readme

User Profile Record Library

Description

The user profile record library is a library for skapp developers, allowing them to record the user profile data of their users within the skapp that they are building. The main purpose of this tool is content discovery; if all skapps were to make use of this library, the end result would be a scrapable global record of all content and the popularity of that content and the skapp.

This information will eventually get displayed in a type of leaderboard that ranks top pieces of content and top skapps.

Interface

The library itself is a simple class that acts as a wrapper around the User Profile Record DAC. This DAC, or Data Access Controller, is built and hosted by Skynetlabs. The library will contain a hardcoded reference to its domain, thus abstracting all of its complexities from the skapp developer.

The skapp developer is expected to call upon the User Profile record when its user perform the following types of actions. This is when a user

export interface IUserProfileDAC {
 setProfile(data:Profile):Promise<ICreateDACResponse>;
 getProfile():Promise<any>;
 getProfileHistory():Promise<any>;

 getPreference(): Promise<any>;
 setPreference(data: Preference):Promise<ICreateDACResponse>;
 getPreferenceHistory(): Promise<any>
}
export interface Avatar {
  ext: string,
  w: number,
  h: number,
  url: string
}
export interface Profile {
  username: string,
  aboutMe?: string,
  location?: string,
  topics?: string[],
  avatar?: Avatar[]
}
export interface Preference {
  darkmode?: boolean,
  portal?: string
}
export interface ICreateDACResponse {
  submitted: boolean;
  error?: string;
}

Usage

Using the library is very straightforward. In this section we'll show an example of how a skapp could use the content record library and record user interactions.

import { SkynetClient } from "skynet-js";
import { ContentRecordDAC } from "skynet-content-record-library";

(async () => {
  // create client
  const client = new SkynetClient();

  // create content record
  const userProfileRecord = new UserProfileDAC();

  // load mysky
  const mySky = await client.loadMySky("exampleskapp.hns");

  // load DACs
  await mySky.loadDacs(userProfileRecord);

  let userProfile =await mySky.getProfile();
  let userPreference =await mySky.getPreference();



 
})();