semantic-network
Version:
A utility library for manipulating a list of links that form a semantic interface to a network of resources.
94 lines (93 loc) • 3.23 kB
TypeScript
import { ResourceSync } from '../interfaces/sync/resourceSync';
import { Document, Representation } from '../types/types';
/**
* Retrieves a resource (singleton or collection, either directly or through a link relation) and synchronises from
* the given document. It then will recurse through all provides `strategies`.
*
* @example
*
* ```sync({resource, document})```
*
* Resource Document
*
* sync
* +-----+ +-----+
* | | <-----------+ | |
* | | | |
* +-----+ +-----+
*
* @example
*
* ```sync({resource: collection, document})```
*
* resource
* Collection Document
*
* +-----+
* | |
* | |
* +-----+ sync
* X +---+
* X <-----------+ | x |
* X +---+
* items
*
* @example
*
* ```sync(resource: parentResource, rel, document})```
*
* parent resource
* Resource Collection Document
*
* +----------+
* | |
* | +-----+
* | Named| |
* | | |
* | +-----+ sync
* | | X +---+
* | | X <-----------+ | x |
* +----------+ X +---+
* items
*
* @example
*
* ```sync({resource: parentResource, rel, document: parentDocument})
*
* parent singleton singleton parent
* Resource Resource Document Document
*
* +----------+ +---------+
* | | sync | |
* | +-----+ +-----+ |
* | Named| | <-----------+ | |Named |
* | | | | | |
* | +-----+ +-----+ |
* | | | |
* | | ^ | |
* +----------+ | +---------+
* |
* +
* looks for
*
* @example
*
* ```sync({resource: parentResource, rel, document: parentDocument})```
*
* parent resource document parent
* Resource Collection Collection Document
*
* +----------+ +----------+
* | | sync | |
* | +-----+ +-----+ |
* | Named| | <-----------+ | | |
* | | | | | |
* | +-----+ +-----+ |
* | | X X | |
* | | X items items X | |
* +----------+ X X +----------+
*
*
* @param syncAction
*/
export declare function sync<T extends Representation = Representation, U extends Document = Document>(syncAction: ResourceSync<T, U>): Promise<void>;