asset-js

1.1.7 • Public • Published

Simple DB caching manager

npm i asset-js --save

Usage:

const asset = require("asset-js")(gethandler, sethandler, defaults, deleteHandler, autosave)
let myasset = await asset("asset1", defaultValue?, persistent /*persistent = available forever, never uncached, useful for assets used regularly like a config file*/)
myasset.someproperty = "a"
//gets saved automatically after a while
//or save everything manually:
asset.save()

Example:

const fs = require("fs")

function default(assetID){ //Gets called if a certain asset is not found (ie a default value)
  if(assetID.startsWith("user/")){ //if assetID is in user folder
    return { //return default userdata
      username:"",
      timeCreated:Date.now()
    }
  }else return {} //otherwise, return an empty object
}
function get(name){
  return JSON.parse(fs.readFileSync(name))
}
function set(name, data){
  fs.writeFileSync(name, JSON.strinify(data))
}


const asset = require("asset-js")(get, set, default, fs.unlinkSync, 900000 /*autosave every 900000ms, or 15mins*/)

var john = asset("user/john")
john.username = "johnny_english"

var configuration = asset("config.json", {} /*default value: function default() is ignored in this case*/)
configuration.allowRetards = false

asset.save() //optional because we have autosave

Presets

You can load custom pre-made wrapping functions (presets) to save yourself some time, for example, for firebase: (use asset-js-firestore)

const asset = require("asset-js")(
  require("asset-js-firestore")(collectionName, credentials, default)
  //connnects to FIRESTORE!
)

Typically, assetdb presets on npm are named something like asset-js-XXX, if you wish to make one, please use that format, as it will help users determine what the preset is made for.

Readme

Keywords

none

Package Sidebar

Install

npm i asset-js

Weekly Downloads

0

Version

1.1.7

License

ISC

Unpacked Size

4.55 kB

Total Files

3

Last publish

Collaborators

  • blobkat