Skip to content

use/objectCalculated

Interfaces

ObjectCalculatedProperties

The properties for object calculated.

Properties

parentState

parentState: object

The parent state.

crud

crud: object

The crud handlers.

crud.args

args: Reactive<{ } | TargetArgs>

The arguments to be passed to the crud handlers.

crud.create

create: CrudCreateFn

The create function.

crud.delete

delete: CrudDeleteFn

The delete function.

crud.executeAction

executeAction: CrudObjectExecuteActionFn

The executeAction function.

crud.patch

patch: CrudPatchFn

The patch function.

crud.retrieve

retrieve: CrudRetrieveFn

The retrieve function.

crud.subscribe

subscribe: CrudObjectSubscribeFn

The subscribe function.

crud.update

update: CrudUpdateFn

The update function.

deleted

deleted: boolean

Whether the object was deleted by the delete action or a subscription delete event. Cleared when a later create, retrieve, update, or patch repopulates the object, and by clear().

error

error: Error

The error that occurred.

errored

errored: boolean

Whether an error has occurred.

intendToRetrieve?

optional intendToRetrieve?: boolean

Whether the object intends to retrieve.

intendToSubscribe?

optional intendToSubscribe?: boolean

Whether the object intends to subscribe.

loading

loading: boolean

Whether the component is loading.

object

object: Reactive<CrudObject>

The object.

params

params: object

The arguments to be passed to the retrieve function.

Index Signature

[key: string]: any

parentStateObjectWatchRunning?

optional parentStateObjectWatchRunning?: boolean

Whether the parent state object watch is running.

pk

pk: string

The pk of the object.

pkKey

pkKey: string

The pk key of the object.

relatedObject?

optional relatedObject?: object

The related objects, by rule name. Each entry is backed by a computed, but it is read through a reactive proxy that unwraps it, so reads yield the related object (or array of related objects) and never carry a .value.

Index Signature

[rule: string]: any

relatedObjectRules?

optional relatedObjectRules?: ObjectRelatedRawRules

The rules for defining relationships for the managed object to other collections of objects.

relatedObjectWatchRunning?

optional relatedObjectWatchRunning?: boolean

Whether the related object watch is running.

relatedRunning?

optional relatedRunning?: boolean

Whether the related objects are loading.

running?

optional running?: boolean

Whether the related objects are loading or the parent state is loading.

subscribed?

optional subscribed?: boolean

Whether the object is subscribed.

state

state: object

The object calculated state.

calculatedObject

calculatedObject: object

The calculated values, by rule name. Each entry is backed by a computed, but it is read through a reactive proxy that unwraps it, so reads yield the calculated value and never carry a .value.

Index Signature

[ruleKey: string]: any

calculatedObjectRules

calculatedObjectRules: ObjectCalculatedRules

The calculated object rules.

calculatedObjectWatchRunning

calculatedObjectWatchRunning: boolean

Whether the calculated object watch is running.

calculatedRunning

calculatedRunning: boolean

Whether the calculated is running.

crud

crud: object

The crud handlers.

crud.args

args: Reactive<{ } | TargetArgs>

The arguments to be passed to the crud handlers.

crud.create

create: CrudCreateFn

The create function.

crud.delete

delete: CrudDeleteFn

The delete function.

crud.executeAction

executeAction: CrudObjectExecuteActionFn

The executeAction function.

crud.patch

patch: CrudPatchFn

The patch function.

crud.retrieve

retrieve: CrudRetrieveFn

The retrieve function.

crud.subscribe

subscribe: CrudObjectSubscribeFn

The subscribe function.

crud.update

update: CrudUpdateFn

The update function.

deleted

deleted: boolean

Whether the object was deleted by the delete action or a subscription delete event. Cleared when a later create, retrieve, update, or patch repopulates the object, and by clear().

error

error: Error

The error that occurred.

errored

errored: boolean

Whether an error has occurred.

intendToRetrieve?

optional intendToRetrieve?: boolean

Whether the object intends to retrieve.

intendToSubscribe?

optional intendToSubscribe?: boolean

Whether the object intends to subscribe.

loading

loading: boolean

Whether the component is loading.

object

object: Reactive<CrudObject>

The object.

params

params: object

The arguments to be passed to the retrieve function.

Index Signature

[key: string]: any

parentStateObjectWatchRunning

parentStateObjectWatchRunning: boolean

Whether the parent state object watch is running.

pk

pk: string

The pk of the object.

pkKey

pkKey: string

The pk key of the object.

relatedObject?

optional relatedObject?: object

The related objects, by rule name. Each entry is backed by a computed, but it is read through a reactive proxy that unwraps it, so reads yield the related object (or array of related objects) and never carry a .value.

Index Signature

[rule: string]: any

relatedObjectRules?

optional relatedObjectRules?: ObjectRelatedRawRules

The rules for defining relationships for the managed object to other collections of objects.

relatedObjectWatchRunning?

optional relatedObjectWatchRunning?: boolean

Whether the related object watch is running.

relatedRunning?

optional relatedRunning?: boolean

Whether the related objects are loading.

running

running: boolean

Whether the related objects are loading or the parent state is loading.

subscribed?

optional subscribed?: boolean

Whether the object is subscribed.

stop

stop: () => void

Stops composition's effects and cleans up resources.

Returns

void


ObjectCalculatedRawProps

The consumer-supplied props for the object calculated composable, namely the calculated-object rules ref.

Properties

calculatedObjectRules

calculatedObjectRules: Ref<ObjectCalculatedRules, ObjectCalculatedRules>

The calculated object rules.


ObjectCalculatedRawState

The raw state for object calculated.

Properties

calculatedObject

calculatedObject: object

The calculated values, by rule name. Each entry is backed by a computed, but it is read through a reactive proxy that unwraps it, so reads yield the calculated value and never carry a .value.

Index Signature

[ruleKey: string]: any

calculatedObjectRules

calculatedObjectRules: ObjectCalculatedRules

The calculated object rules.

calculatedObjectWatchRunning

calculatedObjectWatchRunning: boolean

Whether the calculated object watch is running.

calculatedRunning

calculatedRunning: boolean

Whether the calculated is running.

parentStateObjectWatchRunning

parentStateObjectWatchRunning: boolean

Whether the parent state object watch is running.

running

running: Ref<boolean, boolean>

Whether the object calculated is running.

Type Aliases

ObjectCalculated

ObjectCalculated = ObjectCalculatedProperties

The object calculated instance.

Type Parameters


ObjectCalculatedOptions

ObjectCalculatedOptions = object & ObjectCalculatedRawProps

The options used to create an object calculated instance (the parent state plus the calculated-object rules).

Type Declaration

parentState

parentState: ObjectCalculatedParentState

Type Parameters


ObjectCalculatedParentRawState

ObjectCalculatedParentRawState = ObjectInstanceRawState & Partial<ObjectSubscriptionRawState> & Partial<ObjectRelatedRawState>

The raw, pre-unwrapped parent state consumed by the object calculated mixin, aggregating the upstream object composable states.

Type Parameters


ObjectCalculatedParentState

ObjectCalculatedParentState = UnwrapNestedRefs

The object calculated options.

Type Parameters


ObjectCalculatedRules

ObjectCalculatedRules = object

Rules for calculating values from the managed object, keyed by rule name. Each rule is used as a computed body and receives exactly two arguments: the managed object and its related objects (the latter only populated when a useObjectRelated sits upstream).

Type Parameters

Index Signature

[ruleKey: string]: (object, relatedObject) => any


ObjectCalculatedState

ObjectCalculatedState = UnwrapNestedRefs

The state for object calculated.

Type Parameters

Functions

useObjectCalculated()

useObjectCalculated(options): ObjectCalculatedProperties

Vue Composition API composable function for object calculated.

Parameters

options

ObjectCalculatedOptions

The object calculated options.

Returns

ObjectCalculatedProperties

  • The object calculated instance.

Example

vue
<script setup>
import { useObjectCalculated, useObjectSubscription } from "@arrai-innovations/reactive-helpers";
import { reactive } from "vue";

const objectSubscriptionProps = reactive({
    // whatever object subscription props you need to work with your crud implementation
    target: {},
    params: {},
    pk: '1',
    pkKey: 'id',
    intendToRetrieve: true,
});
const objectSubscription = useObjectSubscription({ props: objectSubscriptionProps });
const objectCalculatedProps = reactive({
    parentState: objectSubscription.state,
    calculatedObjectRules: {
        someRule: (object, relatedObject) => {
           // some complex calculation. relatedObject holds the managed object's related objects, and is
           // only populated when a useObjectRelated sits between the object and this composable.
           // this is used as a computed body.
           return object.someProperty + object.someOtherProperty;
         },
        // ...further rules
     },
 });
const objectCalculated = useObjectCalculated(objectCalculatedProps);
</script>
<template>
<div>
    <!-- the reactive result of the calculation, based on the fn passed in, turned into a computed -->
    <p>{{ objectCalculated.state.calculatedObject.someRule }}</p>
</div>
</template>

useObjectCalculateds()

useObjectCalculateds(objectCalculatedArgs): object

Helper function to create multiple object calculateds instances.

Parameters

objectCalculatedArgs

Options for each object calculated to create.

Returns

object

  • The created object calculated instances by key.