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.

farmOSFarmObject

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
modelFarmModel

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.

FetchSchemaPromise.<(EntitySchemata|BundleSchemata|JsonSchema)>

Fetch JSON Schema documents for farmOS data structures.

AuthMixinObject.<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
clientFarmClient

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.

Kind: global typedef

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.

Kind: global typedef

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.

Kind: global typedef

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.

Kind: global typedef

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

Kind: global typedef

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

Kind: global typedef

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