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
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
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([entity], [bundle]) ⇒ 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 Description
[entity] String The name of a farmOS entity (eg, 'asset', 'log', etc).
[bundle] String The entity's bundle (eg, 'activity' for type 'log--activity').

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
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
log EntityConfig
plan EntityConfig
quantity EntityConfig
taxonomy_term EntityConfig
user EntityConfig