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 🙏

© 2026 – Pkg Stats / Ryan Hefner

mongo-assets

v0.1.31

Published

Role based data management library

Readme

Class

MongoAssets

constructor()

config: *

db: *

client: *

initialize(config: Object, config.endpoint: String): Promise

Initialize the instance, connecting it to the database.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | config | Object | | a valid config object | | config.endpoint | String | | 'mongodb://user:pass@host:port/db' |

connect(args: object, args.endpoint: string): Promise

Create a connection to the mongo database, setting this.db as an instance.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | | args.endpoint | string | |

disconnect(args: Object): {"success": boolean}

Disconnect the instance from the database.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object |

createAsset(args: Object, args.type: String, args.user: Object, args.asset: Object, args.relate: Boolean, args.assoc_method: Boolean, args.role: Object): Promise

Insert an asset, associating it to the user role

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.type | String | | the type of asset (this determines the document collection) | | args.user | Object | | the current user, this determines the roles, team. | | args.asset | Object | | the "asset", the document. | | args.relate | Boolean | | indicator to relate the asset to the user's role, default true. | | args.assoc_method | Boolean | | the method to relate with - currently supports 'reference', 'clone', default 'clone'; | | args.role | Object | | associate the asset to a specific role the user belongs to, default the user's user role. |

createAssets(args: Object, args.type: String, args.user: Object, args.assets: Object|Array, args.relate: Boolean, args.assoc_method: String, args.role: Object): Promise

Insert an array of assets, associating it to the user role

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object. | | args.type | String | | the type of asset ( this determines the document collection) | | args.user | Object | | the current user, this determines the roles, team. | | args.assets | Object|Array | | a single, or array of "assets", the documents. | | args.relate | Boolean | | indicator to relate the asset to the user's role, default true. | | args.assoc_method | String | | the association method to use, default 'clone'. | | args.role | Object | | associate the asset to a specific role the user belongs to, default the user's user role. |

updateAsset(args: Object, args.type: String, args.asset: Object, args.assoc_method: String): Promise

Update Asset

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.type | String | | the asset type. | | args.asset | Object | | the asset. | | args.assoc_method | String | | the association method to use; if not provided the store default is used, failing that defaults to "clone" |

deleteAsset(args: Object, args.type: String, args.asset: Object, args.recycle: Boolean): Promise

Delete an asset, disassociating it from all related items.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.type | String | | the asset type | | args.asset | Object | | the asset | | args.recycle | Boolean | | move the asset to the recycle colection, default false. |

deleteAssets(args: Object, args.type: String, args.assets: Array, args.asset: Object): Promise

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.type | String | | the asset type. | | args.assets | Array | | an array of assets. | | args.asset | Object | | a single asset to remove, for convenience. |

dropAssetType(args: Object, args.type: String): Promise

Drop an asset type entirely, removing all associates.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | | args.type | String | |

assetCollectionExists(args: Object, args.type: String): Promise

Check for the existence of an asset collection.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.type | String | | the type of asset to check for |

associate(args: Object, args.target: Object, args.source: Object, args.relationship: String, args.assoc_method: String, args.withTree: Boolean, args.returnOnly: String): Promise

Associate Assets.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object. | | args.target | Object | | the target asset { type: { ...object} } , eg { user: { firstname: 'bren' .... }} | | args.source | Object | | the source asset { type: { ...object} } , eg { user: { firstname: 'bren' .... }} | | args.relationship | String | | relationship type, 'target' (target receives a relationship to the source), 'source' (source recieves a relationship to the target), or "peer" (both receive a relationship), default 'target'. | | args.assoc_method | String | | the assocation method, supported are 'clone', 'reference', default : clone. | | args.withTree | Boolean | | DEPRECATING... Include all subtrees in the association. By default we ONLY associate the top level elements which are not arrays or objects - argue true to associate the entire subtree. This is a safetu precaution. | | args.returnOnly | String | | what to return, 'peer' returns both as { target: , source: }, 'target' returns only the target, 'source' returns only the source. Default is 'source'. |

disassociate(args: Object, args.target: Object, args.source: Object, args.relationship: String, args.assoc_method: String, args.withTree: Boolean, args.returnOnly: String): Promise

Disassociate Assets.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object. | | args.target | Object | | the target asset { type: { ...object} } , eg { user: { firstname: 'bren' .... }} | | args.source | Object | | the source asset { type: { ...object} } , eg { user: { firstname: 'bren' .... }} | | args.relationship | String | | relationship type, 'target' (target removes a relationship to the source), 'source' (source removes a relationship to the target), or "peer" (both remove a relationship) | | args.assoc_method | String | | the assocation method, supported are 'clone', 'reference', default : clone. | | args.withTree | Boolean | | DEPRECATING... Include all subtrees in the association. By default we ONLY associate the top level elements which are not arrays or objects - argue true to associate the entire subtree. This is a safetu precaution. | | args.returnOnly | String | | what to return, 'peer' returns both as { target: , source: }, 'target' returns only the target, 'source' returns only the source. Default is 'source'. |

updateAssociations(args: Object, args.type: String, args.asset: Object): Promise

Update all associations of an argued asset.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.type | String | | the asset type. | | args.asset | Object | | the asset |

dropAssociations(args: Object, args.type: String, args.asset: Object): Promise

Drop all assocations from the asset and update associates, this orphans the asset (useful prior to deletion of an asset)

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument objet | | args.type | String | | the asset type | | args.asset | Object | | the asset |

gatherAssets(args: Object, args.user: Object, args.type: String, args.types: Array): Promise

Gather assets associated to argued roles.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | then argument object | | args.user | Object | | the user. | | args.type | String | | the asset type. | | args.types | Array | | an array of asset types to gather. |

getAssociates(args: Object, args.assetType: String, args.assocs: Array, args.exclude: Array): Promise

Retrieve the associates in their full form.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object. | | args.assetType | String | | the type of asset. | | args.assocs | Array | | an array of assets either in their full form (clone) or reference form. | | args.exclude | Array | | an array of ids to exclude from the return |

getAssociatedRoles(args: Object, args.type: String, args.asset: Object): Promise

Gain the roles assocated to an argued asset.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.type | String | | the argument type | | args.asset | Object | | the asset to gain roles from. |

shareAssets(args: Object, args.user: Object, args.type: String, args.asset: Object, args.assets: Object, args.role: Object, args.roles: Object, args.assoc_method: String): Promise

Share assets to argued roles.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.user | Object | | the user | | args.type | String | | the asset type. | | args.asset | Object | | the asset | | args.assets | Object | | an array of assets to share | | args.role | Object | | the target role | | args.roles | Object | | an array of target roles | | args.assoc_method | String | |

_isRealObject(obj: Object): Boolean

Test a variable to be an object

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | obj | Object | | the object to test |

defaultrole(user: Object): Object

Get the default role for an argued user.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | user | Object | |

handleError(method: String, err: Error, options: Object): {"success": *, "errored": boolean, "message": string}

Error handler.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | method | String | | | err | Error | | | options | Object | |

splitAsset(args: *): *

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | * | nullable: undefined |

_findAssetChunks(root: *, key: *, chunks: *, itr: *, id: *): {"root": *, "chunks": *, "paged": *, "pages": *, "frag": *}

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | root | * | nullable: undefined | | key | * | nullable: undefined | | chunks | * | nullable: undefined | | itr | * | nullable: undefined | | id | * | nullable: undefined |

create(args: object, args.collection: string, args.documents: array): *

Insert one or many documents

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | | args.collection | string | | the collection to insert the document into. | | args.documents | array | | the document being inserted. |

findOne(args: Object, args.collection: String, args.frag: Object): Promise

Find One asset.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.collection | String | | the collection | | args.frag | Object | | the search fragment. |

find(args: object, args.collection: string, args.documents: object|array, args.ql: function, args.fuse: boolean, args.debug: boolean): *

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | | args.collection | string | | the collection which the saught document resides. | | args.documents | object|array | | the document partial , or array of partials to seek for, otherwise all documents in the collection are returned. | | args.ql | function | | dirty as, "graphQL" reducer argument. | | args.fuse | boolean | | for QL queries, if a single root is provided eg '{module}' or '{module.something}' then an object is returned rather than an array, fusing all items on that key. | | args.debug | boolean | | flag true to see operation manifest. |

distinct(args: Object, args.collection: String, args.attribute: String): Array

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.collection | String | | the subject collection. | | args.attribute | String | | the attribute to return a unique list for. |

findAsset(args: Object, args.type: String, args.frag: Object): Object

Retrieve an asset.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument Object | | args.type | String | | the cannonical type of asset | | args.frag | Object | | the search shim/document frag. |

findAssets(args: object, args.user: object, args.role: object|array, args.userrole: boolean, args.type: string): *

Retrieve assets for a given user/roles.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | the argument object | | args.user | object | | the user object | | args.role | object|array | | use a provided role or array of roles, otherwise all roles of the user will be returned. | | args.userrole | boolean | | when provided as true, only assets associated to the user will be returned. | | args.type | string | | the type of asset to retrieve. |

getAssetPartial(args: object, args.type: string, args.asset: object, args.nest: string, args.page: integer, args.pages: array): *

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | the argument object | | args.type | string | | the type of asset | | args.asset | object | | the asset. | | args.nest | string | | | args.page | integer | | the page number | | args.pages | array | | the page range. |

findAssociatedRoles(args: object, args.type: string, args.asset: object): *

Retrieve roles that are associated to a given asset.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | the argument object. | | args.type | string | | the type of asset being saught | | args.asset | object | | the asset. |

updateOne(args: object, args.collection: string, args.document: object, args.ops: object): Promise

Update a document

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | | args.collection | string | | the collection which the saught document resides. | | args.document | object | | the document | | args.ops | object | | an object of special $ ops, eg, $push, $set etc.. default is null and when null the args.document is used as the update, otherwise this is used. |

deleteOne(args: object, args.collection: string, args.document: object): object

Deletes a document

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | | args.collection | string | | The collection to remove the document from | | args.document | object | | The document being removed, we enforce the id be present for data sanity. |

delete(args: object, args.collection: string, args.frag: object, args.documents: array): object

Deletes multiple documents

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | | args.collection | string | | The collection to remove the document from | | args.frag | object | | The document being removed, we enforce. | | args.documents | array | | an array of documents scheduled for deleteion. |

deleteOneAsset(args: *): *

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | * | nullable: undefined |

releaseAssets(args: object): *

Release assets from a relationship, effective "un-sharing" them.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | the argument object. |

releaseAssetType(args: object, args.type: string, args.target: object, args.targetType: string): *

Release an entire assetType from a relationship, effectively unsharing that type.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | object | | the argument object. | | args.type | string | | the type of asset to release/unshare | | args.target | object | | the document to unrelease the share - normally a role. | | args.targetType | string | | the type of target, default 'role' |

assetToAssoc(method: String, type: String, asset: Object): Promise

Get the association representation of an asset.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | method | String | | the assoc_method , supported is 'clone', 'reference'. | | type | String | | the cannoncial type of the asset. | | asset | Object | | the asset |

assocToAsset(asset: Object): Promise

Gain the actual asset from an association method.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | asset | Object | | the asset it its association form. |

reassociate(args: Object, args.type: String, args.role: Object|Array, args.method: String): Array

Change the association method of related assets to a role(s)

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object | | args.type | String | | the asset type | | args.role | Object|Array | | the role(s) to perform reassociation upon. | | args.method | String | | the method to reassociate with. |

decouple_associates(o: *): *

Strip an objects out of arrays and objects, leaving just the attributes.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | o | * | nullable: undefined |

parseQL(ql: *): *

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | ql | * | nullable: undefined |

idify(doc: *): *

Takes a document with a string typed _id, returns it with an ObjectId.

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | doc | * | nullable: undefined |

Function

withMongoAssets(args: Object, args.key: String, args.initialize: Boolean, args.config: Object, args.config.endpoint: String): *

Decorate a class with an instance of Mongo Assets

| Name | Type | Attribute | Description | | --- | --- | --- | --- | | args | Object | | the argument object. | | args.key | String | | the class variable to attach the instance to, default 'db'. | | args.initialize | Boolean | | Initialize the MongoAssets instance upon class declaration, default false. | | args.config | Object | | a configuration object, required if initializing via the decorator, otherwise argue your config to myClass.db.initialize() | | args.config.endpoint | String | | a mongo database URI. |