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

@actualwave/deferred-data-access

v2.0.1

Published

Deferred Data Access(DDA) is a framework for building async CRUD APIs. It transforms object calls into commands that can be interpreted by custom function.

Downloads

2

Readme

Deferred Data Access

Deferred Data Access(DDA) is a framework for building async CRUD APIs. It transforms object calls into commands that can be interpreted by custom function.

How it works

  1. Framework accepts an async handler function and returns an object.
const obj = handle((command, context) => {
  let result;

  // Some logic that gets somewhere value and saves in into "result" variable.

  return result;
})();
  1. Developer accesses object property and gets Promise
const value = await obj.prop;
  1. Framework records property access into a command object, handler function is called with command object as an argument.
{ type: ProxyCommand.GET, name: 'prop' }
  1. Whatever function returns is returned as promise value.

DDA can operate in two modes, mode is defined by passing second argument to handle() function.

  • lazy - Default mode, custom handler function is called only when then() or catch() methods are accessed. Accessing obj.child.grand.prop.then(func) calls function once.
  • reactive - Non-lazy, custom handler function called on every operation. Accessing obj.child.grand.prop.then(func) calls function 3 times.

There are multiple predefined commands that can be passed to handler function.

  • ProxyCommand.GET - when property accessed
  • ProxyCommand.SET - when property is set, new value is recorded as value in command object
  • ProxyCommand.DELETE_PROPERTY - when property is being deleted
  • ProxyCommand.APPLY - when function is called, call arguments recorded as value of command object
  • ProxyCommand.METHOD_CALL - only generated in lazy mode, it combines GET and APPLY commands.

Projects made with DDA