rb-core-module v0.31.1
rb-core-module
The Restboard core module
Getting started
First of all, you need to install the package in your project:
npm i --save rb-core-module
Now, you can start to define and use your resources:
import { createResource } from 'rb-core-module'
// Create a new resource
const users = createResource({
name: 'users',
provider: ..., // The data provider used to query the API
...
})
// Resources can then be used to interact with the remote API:
const me = await users.getOne(1)
RbResource
RbResource
is a base class used to implement a proxy to interact with a remote API resource.
Options
Name | Description | Default |
---|---|---|
name | The unique resource name (e.g. users ) | |
provider | The data provider used to interact with the API | |
key | The identifier attribute name | id |
path | The resource base path (if different than name ) | name |
label | A human-readable description label for the resource | capitalized name |
displayAttr | The attr used as representation of a single resource instance | key |
stringify | A function used to get a human-readable reperesentation of a single resource instance | instance => instance[resource.displayAttr] |
schema | The JSON schema representing the strcuture of resource instances | undefined |
updateSchema | The JSON schema used on update | schema |
createSchema | The JSON schema used on creation | schema |
defaultParams | Default params passed to the data provider when fetching the API (e.g. default filters) | {} |
isKeyEditable | If true , allows editing the key of an instance | false |
actions | A map of actions executable on a single resource instance | {} |
listeners | A list of callbacks to be called when the resource is marked as dirty | [] |
methods | A dictionary of extra methods to extend the default resource API | {} |
ui | An object containing UI-specific options and methods. A special formComponent key will be used to assign default form components for creation (ui.createFormComponent ) and update (ui.updateFormComponent ) if none are specified | {} |
Methods
Signature | Description |
---|---|
getKey(instance) | Retrieve the primary key of the given resource instance |
stringify(instance) | Render a string representantion of the given resource instance |
getMany(params) | Retrieve a list of resource instances according to the given params |
getOne(key, params) | Retrieve a single resource instance, identified by key and params |
updateOne(key, data, params) | Update a single resource instance, identified by key and params , with the given data |
updateMany(data, params) | Update multiple resource instances according to data and params |
deleteOne(key, params) | Delete a single resource instance identified by key and params |
deleteMany(keys, params) | Delete multiple resource instances identified by the keys array and params |
getRelation(key, name, opts) | Return the related resource identified by name , scoped to the instance identified by key . For opts see Relation options |
getActions() | Return a dictionary of resource actions, where each action is bound to the resource |
setDirty() | Set the resource lastUpdate with the current timestamp and notify registered listeners |
addListener(callback) | Register a new listener callback |
removeListener(callback) | Unregister a previously registered listener callback |
mergeParams(params) | Merge given params with resource default ones |
Relation options
Name | Description | Default |
---|---|---|
notifyParentOnDirty | If true mark also the parent resource as dirty | true |
RbDataProvider
RbDataProvider
is a generic interface used by resources to interact with a
third-party API using the correct protocol and dialect.
Methods
Signature | Description |
---|---|
getMany(resourcePath, params) | See RbResource |
getOne(resourcePath, key, params) | See RbResource |
updateOne(resourcePath, key, data, params) | See RbResource |
updateMany(resourcePath, data, params) | See RbResource |
deleteOne(resourcePath, key, params) | See RbResource |
deleteMany(resourcePath, keys, params) | See RbResource |
RbAuthProvider
RbAuthProvider
is a generic interface used to perform authentication and
authorization over a third-party API, abstracting the details of underlying
strategies.
Methods
Signature | Description |
---|---|
login(credentials) | Attempt to log the user identified by the given credentials |
logout() | Terminate the current authenticated session |
checkAuth() | Check if the current authenticated session is still valid |
getIdentity(user) | Given a user , retrieve its textual representation |
getTenantIdentity(user) | Given a user , retireve its tenant identity |
can(user, action, subject) | Check if the given user can perform action on the subject |
Development
# Install dependencies
npm install
# Run tests
npm test
Contribute
If you want, you can also freely donate to fund the project development:
Have you found a bug?
Please open a new issue on:
https://github.com/restboard/rb-core-module/issues
License
Copyright (c) Emanuele Bertoldi
4 months ago
4 months ago
9 months ago
1 year ago
1 year ago
1 year ago
1 year ago
1 year ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago