Socket
Book a DemoInstallSign in
Socket

netiam-adapter-sequelize

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

netiam-adapter-sequelize

The sequelize persistence adapter.

latest
Source
npmnpm
Version
1.0.0
Version published
Maintainers
1
Created
Source

netiam-adapter-sequelize

Build Status Dependencies npm version

A sequelize persistence adapter

Get it

npm i -S netiam netiam-adapter-sequelize

Anatomy of a persistence adapter

Every adapter has to export a public interface with the following requirements.

/**
 * Get ID names for type
 * @param {string} type - The type of resource
 * @returns {string|string[]} An ID field or list of ID fields
 */
getId(type) {
}

/**
 * Get type by model
 * @param {*} model - The model you want a type of
 * @returns {string} The model as string representation aka type
 */
getType(model) {
}

/**
 * Get model by type
 * @param {string} type - The model of a specific type
 * @returns {model} The model for the specified type
 */
getType(model) {
}

/**
 * Find one or more resources
 * @param {string} type - The type of resource you are looking for
 * @param {string|number|string[]|number[]} [id] - A single or list of resource IDs to find
 * @param {object} [opts] - Optional configuration of the query
 * @param {number} [opts.page] - Pagination
 * @param {number} [opts.page.size] - Size of resultset
 * @param {number} [opts.page.limit] - Limt size of resultset
 * @param {number} [opts.page.offset] - Offset resultset
 * @param {number} [opts.page.before] - Curser based pagination
 * @param {number} [opts.page.after] - Curser based pagination
 * @param {string} [opts.filter] - Filter
 * @param {string} [opts.sort] - Sort
 * @param {string} [opts.fields] - Sparse fieldsets
 * @param {string} [opts.include] - Compound documents
 * @returns {Promise} The result or a resultset
 */
find(type, id, opts) {
}

/**
 * Update a resource
 * @param {string} type - The type of resource you want to update
 * @param {string|number} id - The ID of a resource you wanna update
 * @param {object} [opts] - Optional configuration of the query
 * @returns {Promise} The modified resource
 */
update(type, id, opts) {
}

/**
 * Delete a resource
 * @param {string} type - The type of resource you want to delete
 * @param {string|number} id - The ID of a resource you wanna delete
 * @returns {Promise}
 */
remove(type, id) {
}

/**
 * Set attributes for a resource
 * @param {string} type - The type of resource you want to set attributes for
 * @param {object} resource - The resource you want to set attributes for
 * @param {object} attributes - A object literal with attribute names as keys
 * @returns {Promise} The modified resource
 */
setAttributes(type, resource, attributes) {
}

/**
 * Get only the attributes for a specific resource
 * @param {string} type - The type of resource you want to get attributes from
 * @param {object} resource - The resource you want to get attributes from
 * @returns {object} The attributes for the given resource
 */
getAttributes(type, resource) {
}

/**
 * Get all attribute keys as list of path names
 * @param {string} type - The type of resource you want to get attributes from
 * @param {object} resource - The resource you want to get attributes from
 * @returns {string[]} A list of attribute names
 */
getAttributeKeys(type, resource) {
}

/**
 * Set a relationship for a resource
 * @param {string} type - The type of resource you want to set a relationship for
 * @param {object} resource - The resource you want to set a relationship for
 * @param {string} relationship - The relationship/association name
 * @param {object|object[]} resourceIdentifiers - A single resource identifier or a list of identifiers
 * @see {@link http://jsonapi.org/format/#document-resource-identifier-objects|JSON API}
 * @returns {Promise} The relationship
 */
setRelationship(type, resource, relationship, resourceIdentifiers) {
}

/**
 * Set relationships for a resource
 * @param {string} type - The type of resource you want to set a relationship for
 * @param {object} resource - The resource you want to set a relationship for
 * @param {object.<string, object>|object.<string, object[]>} relationships - The relationships to set
 * @returns {Promise} The relationship
 */
setRelationships(type, resource, relationships) {
}

/**
 * Get a relationship from resource
 * @param {string} type - The type of resource you want to get a relationship from
 * @param {object} resource - The resource you want to get a relationship from
 * @param {string} relationship - The relationship/association name
 * @returns {Promise} The relationship
 */
getRelationship(type, resource, relationship) {
}

/**
 * Get all relationships as list of path names
 * @param {string} type - The type of resource you want to get relationships from
 * @param {object} resource - The resource you want to get relationships from
 * @returns {string[]} A list of relaionship names
 */
getRelationshipKeys(type, resource) {
}

/**
 * Check if a specific type has a relationship defined
 * @param {string} type - The type of resource
 * @param {string} relationship - The name of the relationship you want to check
 * @returns {boolean} True if relationship is defined, otherwise false
 */
hasRelationship(type, relationship) {
}

/**
 * Get the type of a relationship
 * @param {string} type - The type of resource
 * @param {string} relationship - The name of the relationship you want to get a type for
 * @returns {string} The resource type for the relationship
 */
getRelationshipType(type, relationship) {
}

License

MIT License

Keywords

netiam

FAQs

Package last updated on 09 Dec 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts