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

habitica-avatar

v0.2.0

Published

A module for constructing the Habitica avatar.

Downloads

12

Readme

habitica-avatar

A module for constructing the Habitica Avatar.

Usage

npm

npm install --save habitica-avatar
var habiticaAvatar = require('habitica-avatar')

habiticaAvatar({
  container: '#div-to-put-avatar',
  user: userObject
})

In the browser

Download the most recent script on the releases page. The function is exposed as window.habiticaAvatar.

window.habiticaAvatar({
  container: '#div-to-put-avatar',
  user: userObject
})

Advanced options

Looking up user avatar by user id

The fromUserId method on habiticaAvatar takes a user id and any additional options you would normally pass into habiticaAvatar and returns a Promise that resolves with the avatar.

habiticaAvatar.fromUserId('user-id', {
  ignore: {
    background: true
  },
  // any other options
}).then(function (avatar) {
  // insert avatar onto your page
  document.body.appendChild(avatar)
})

// or

habiticaAvatar.fromUserId('user-id', {
  container: '#my-div',
  // any other options
})
// The avatar will be inserted into `#my-div` when the user look up is complete

If the user id does not resolve with a user, the Promise will reject.

habiticaAvatar.fromUserId('id-that-does-not-belong-to-a-user').then(function (avatar) {
  // will never get here
}).catch(function (err) {
  // user could not be found
})

Dom Node

The container property is optional. The return value of habiticaAvatar is a DOM node that you can append anywhere in the DOM.

var avatar = habiticaAvatar({
  user: user
})

avatar.id = 'custom-id'
avatar.addEventListener('click', functionToRunWhenAvatarNodeIsClicked)

document.body.appendChild(avatar)

If you pass in a container property, it can either be a DOM node to append the avatar to, or a css selector for a DOM node. If the selector does not reference a DOM node, nothing will happen.

var node = document.querySelector('#my-node')

habiticaAvatar({
  user: user,
  container: node, // or '#my-node'
})

Ignore

You can ignore properties, causing them to not render by passing an ignore object.

habiticaAvatar({
  user: user,
  ignore: {
    background: true,
    visualBuff: true,
    mount: true,
    hair: true,
    chair: true,
    back: true, // back equipment
    skin: true,
    shirt: true,
    head_0: true, // outline of head on all avatars
    body: true, // body accessory equipment
    eyewear: true,
    head: true,
    headAccessory: true,
    shield: true, // offhand equipment
    sleep: true,
    weapon: true,
    pet: true
  }
})

Force Costume

By default, the costume will render if the user has the costume feature turned on. You can force the costume to be shown with the forceCostume option.

habiticaAvatar({
  user: user,
  forceCostume: true
})

Force Equipment

By default, the equipment will render if the user has the costume feature turned off. You can force the equipment to be shown with the forceEquipment option.

habiticaAvatar({
  user: user,
  forceEquipment: true
})

Testing

npm test

Demo App

A demo app is available at https://crookedneighbor.github.io/habitica-avatar/