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

@youngbeen/dasmet

v0.1.1

Published

`Dasmet` is a light weight data management(e.g. store, dict) util library

Downloads

1

Readme

[TOC]

Dasmet

Dasmet is a light weight data management(e.g. store, dict) util library

if you hate ugly API usage for plain data store management, you may try dasmet

| | vuex or other state management system | data model | dasmet | | ----------------------------------- | ------------------------------------- | ---------- | ---------------- | | data init | ☹️ Complicated | 🙂 Simple | 🙂 Simple | | accessing data | 😐 A little complicated | 🙂 Simple | 🙂 Simple | | setting by k-v | Must via commit(maybe complicated) | 🙂 Simple | 🙂 Simple | | setting by object merging | Must via commit(maybe complicated) | ❌ No | ✅ Yes yet simple | | data snapshot | ✅ Yes | ❌ No | ❌ No | | weight | ☹️ Heavy | 🙂 Light | 🙂 Light | | native Array bonus util support | ❌ No | ❌ No | ✅ Yes |

Tip: Please note that if you need data snapshot, a state management system is still better solution. But if you are aware of that #YouMayNotNeedStateManagement#, you should avoid using state management system in you project from now.

Features

  • Easy API design as first-class rule
  • Array.get() like map

Install

Install it via npm

npm i -S @youngbeen/dasmet

Import

import { newStore } from '@youngbeen/dasmet'

Usage

Store Usage

// generating data store instance
let userStore = newStore({
  userName: '',
  userId: ''
})

// setting value by k-v
userStore.set('userName', 'you')
userStore.set('newKey', 1)
/* -> {
  userName: 'you',
  userId: '',
  newKey: 1
} 
*/
// setting value by object merging (merge value)
userStore.set({
  userName: 'youngbeen',
  userId: '21'
})
/* -> {
  userName: 'youngbeen',
  userId: '21',
  newKey: 1
} 
*/

// accessing value
userStore.get('userName') // -> 'youngbeen'
// or
userStore.value.userId // -> '21'

Dict Usage

New ES6+ Array has many amazing features like filter, map etc. In a dict model we ofter want to get an item directly, however it is not convenient using dict.someDictTypes.find(item => item.key === targetKey)

Dasmet brings a native support(via Array.prototype) of Array.get method

Array.get(value, [keyName])

e.g.

// finding item by specific value
dict.someDictTypes.get(targetKey)

Meanwhile, you can choose which key to get

dict.someDictTypes.get(targetKey, myKeyName)

Tip: if keyName not set, default get priority is id > key > value

Documents