API Reference
Typedefs
- FarmEntityMethods :
Object
The methods for writing to local copies of farmOS data structures, such as assets, logs, etc, and for transmitting those entities to a farmOS server.
- FarmObject :
Object
A collection of functions for working with farmOS data structures, their associated metadata and schemata, and for interacting with farmOS servers.
- EntityConfig :
EntityConfig
To enable support for each entity type, its config object must be provided.
- farmOS ⇒
FarmObject
The main farmOS factory function for creating a new farm object.
- JsonSchema :
JsonSchema
JSON Schema for defining the entities supported by a farmOS instance.
- JsonSchemaDereferenced :
JsonSchemaDereferenced
JSON Schema Dereferenced: A JSON Schema, but w/o any $ref keywords. As such, it may contain circular references that cannot be serialized.
- BundleSchemata :
Object.<string, JsonSchema>
An object containing the schemata for the bundles of a farmOS entity, with the bundle name as key and its corresponding schema as its value.
- EntitySchemata :
Object.<string, BundleSchemata>
An object containing the schemata for the bundles of a farmOS entity, with the bundle name as key and its corresponding schema as its value.
- ModelEntityMethods :
Object
The methods for writing to local copies of farmOS data structures, such as assets, logs, etc.
- FarmModel :
Object
A collection of functions for working with farmOS data structures, their associated metadata and schemata.
- EntityConfig :
EntityConfig
- model ⇒
FarmModel
Create a farm model for generating and manipulating farmOS data structures.
- ClientEntityMethods :
Object
The methods for transmitting farmOS data structures, such as assets, logs, etc, to a farmOS server.
- FetchSchema ⇒
Promise.<(EntitySchemata|BundleSchemata|JsonSchema)>
Fetch JSON Schema documents for farmOS data structures.
- AuthMixin ⇒
Object.<string, function()>
- FarmClient :
Object
A collection of functions for transmitting farmOS data structures to and from a farmOS Drupal 9 server using JSON:API.
- EntityConfig :
EntityConfig
- client ⇒
FarmClient
Create a farm client for interacting with farmOS servers.
- EntityReference :
Object
- Entity :
Object
- EntityConfig :
Object
- DefaultEntities :
Object.<String, EntityConfig>
FarmEntityMethods : Object
The methods for writing to local copies of farmOS data structures, such as assets, logs, etc, and for transmitting those entities to a farmOS server.
Kind: global typedef
Properties
Name | Type |
---|---|
create | createEntity |
update | updateEntity |
merge | mergeEntity |
[fetch] | fetchEntity |
[send] | sendEntity |
[delete] | deleteEntity |
FarmObject : Object
A collection of functions for working with farmOS data structures, their associated metadata and schemata, and for interacting with farmOS servers.
Kind: global typedef
Properties
Name | Type |
---|---|
schema | Object |
schema.get | function |
schema.set | function |
schema.on | function |
[schema.fetch] | function |
meta | Object |
meta.isUnsynced | function |
remote | Object |
remote.request | module:axios~AxiosInstance |
[remote.info] | function |
[remote.authorize] | function |
[remote.getToken] | function |
asset | FarmEntityMethods |
file | FarmEntityMethods |
log | FarmEntityMethods |
plan | FarmEntityMethods |
quantity | FarmEntityMethods |
term | FarmEntityMethods |
user | FarmEntityMethods |
EntityConfig : EntityConfig
To enable support for each entity type, its config object must be provided.
farmOS ⇒ FarmObject
The main farmOS factory function for creating a new farm object.
Kind: global typedef
Param | Type |
---|---|
farmConfig | Object |
Properties
Name | Type | Default |
---|---|---|
[config.schemata] | EntitySchemata |
|
[config.remote] | Object |
|
[config.remote.adapter] | client |
d9JsonApiAdapter |
[config.entities] | Object.<String, EntityConfig> |
defaultEntities |
JsonSchema : JsonSchema
JSON Schema for defining the entities supported by a farmOS instance.
Kind: global typedef
See: https://json-schema.org/understanding-json-schema/index.html
JsonSchemaDereferenced : JsonSchemaDereferenced
JSON Schema Dereferenced: A JSON Schema, but w/o any $ref keywords. As such, it may contain circular references that cannot be serialized.
BundleSchemata : Object.<string, JsonSchema>
An object containing the schemata for the bundles of a farmOS entity, with the bundle name as key and its corresponding schema as its value.
EntitySchemata : Object.<string, BundleSchemata>
An object containing the schemata for the bundles of a farmOS entity, with the bundle name as key and its corresponding schema as its value.
ModelEntityMethods : Object
The methods for writing to local copies of farmOS data structures, such as assets, logs, etc.
Kind: global typedef
Properties
Name | Type |
---|---|
create | createEntity |
update | updateEntity |
merge | mergeEntity |
FarmModel : Object
A collection of functions for working with farmOS data structures, their associated metadata and schemata.
Kind: global typedef
Properties
Name | Type |
---|---|
schema | Object |
schema.get | function |
schema.set | function |
schema.on | function |
meta | Object |
meta.isUnsynced | function |
asset | ModelEntityMethods |
file | ModelEntityMethods |
log | ModelEntityMethods |
plan | ModelEntityMethods |
quantity | ModelEntityMethods |
term | ModelEntityMethods |
user | ModelEntityMethods |
EntityConfig : EntityConfig
model ⇒ FarmModel
Create a farm model for generating and manipulating farmOS data structures.
Kind: global typedef
Param | Type |
---|---|
options | Object |
Properties
Name | Type | Default |
---|---|---|
[options.schemata] | EntitySchemata |
|
[options.entities] | Object.<String, EntityConfig> |
defaultEntities |
model~getSchemata(...args) ⇒ EntitySchemata
| BundleSchemata
| JsonSchemaDereferenced
Retrieve all schemata that have been previously set, or the schemata of a particular entity, or one bundle's schema, if specified.
Kind: inner method of model
Param | Type |
---|---|
...args | String |
model~setSchemata(...args)
Load all schemata, the schemata of a particular entity, or one bundle's schema, if specified.
Kind: inner method of model
Void:
Param | Type |
---|---|
...args | String | EntitySchemata | BundleSchemata | JsonSchema |
ClientEntityMethods : Object
The methods for transmitting farmOS data structures, such as assets, logs, etc, to a farmOS server.
Kind: global typedef
Properties
Name | Type |
---|---|
fetch | fetchEntity |
send | sendEntity |
delete | deleteEntity |
FetchSchema ⇒ Promise.<(EntitySchemata|BundleSchemata|JsonSchema)>
Fetch JSON Schema documents for farmOS data structures.
Kind: global typedef
Param | Type | Description |
---|---|---|
[entity] | string |
The farmOS entity for which you wish to retrieve schemata. |
[bundle] | string |
The entity bundle for which you wish to retrieve schemata. |
AuthMixin ⇒ Object.<string, function()>
Kind: global typedef
Param | Type |
---|---|
request | module:axios~AxiosInstance |
authOptions | Object |
Properties
Name | Type |
---|---|
authOptions.host | String |
FarmClient : Object
A collection of functions for transmitting farmOS data structures to and from a farmOS Drupal 9 server using JSON:API.
Kind: global typedef
Properties
Name | Type |
---|---|
request | module:axios~AxiosInstance |
[authorize] | function |
[getToken] | function |
info | function |
schema | Object |
schema.fetch | FetchSchema |
asset | ClientEntityMethods |
file | ClientEntityMethods |
log | ClientEntityMethods |
plan | ClientEntityMethods |
quantity | ClientEntityMethods |
term | ClientEntityMethods |
user | ClientEntityMethods |
EntityConfig : EntityConfig
client ⇒ FarmClient
Create a farm client for interacting with farmOS servers.
Kind: global typedef
Param | Type |
---|---|
host | String |
[options] | Object |
Properties
Name | Type | Default |
---|---|---|
[options.auth] | AuthMixin |
oauth |
[options.entities] | Object.<String, EntityConfig> |
defaultEntities |
[options.clientId] | String |
|
[options.getToken] | function |
|
[options.setToken] | function |
EntityReference : Object
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
id | String |
A v4 UUID as specified by RFC 4122. |
type | String |
Corresponding to the entity bundle (eg, 'activity'). |
Entity : Object
Kind: global typedef
Properties
Name | Type | Description |
---|---|---|
id | String |
A v4 UUID as specified by RFC 4122. |
type | String |
The combined form of entity & bundle (eg, 'log--activity'). |
attributes | Object |
Values directly attributable to this entity. |
relationships | Object.<String, (EntityReference|Array.<EntityReference>)> |
References to other entities that define a one-to-one or one-to-many relationship. |
meta | Object |
Non-domain information associated with the creation, modification, storage and transmission of the entity. |
meta.created | String |
An ISO 8601 date-time string indicating when the entity was first created, either locally or remotely. |
meta.changed | String |
An ISO 8601 date-time string indicating when the entity was last changed, either locally or remotely. |
meta.remote | Object |
|
meta.fieldChanges | Object |
|
meta.conflicts | Array |
EntityConfig : Object
Kind: global typedef
Properties
Name | Type |
---|---|
nomenclature | Object |
nomenclature.name | Object |
nomenclature.shortName | Object |
nomenclature.plural | Object |
nomenclature.shortPlural | Object |
nomenclature.display | Object |
nomenclature.displayPlural | Object |
defaultOptions | Object |
defaultOptions.byType | Object |
defaultOptions.byFormat | Object |
DefaultEntities : Object.<String, EntityConfig>
Kind: global typedef
Properties
Name | Type |
---|---|
asset | EntityConfig |
file | EntityConfig |
log | EntityConfig |
plan | EntityConfig |
quantity | EntityConfig |
taxonomy_term | EntityConfig |
user | EntityConfig |