use/objectSubscription
Classes
ObjectSubscriptionError
Custom error for handling issues related to object subscriptions.
Extends
Error
Constructors
Constructor
new ObjectSubscriptionError(
message,code):ObjectSubscriptionError
Create a new ObjectSubscriptionError.
Parameters
message
string
The error message.
code
string
The error code.
Returns
Overrides
Error.constructor
Properties
code
code:
string
name
name:
string
Inherited from
Error.name
Interfaces
ObjectSubscriptionContext
The context bound to shared objectSubscription functions.
Properties
objectInstance
objectInstance:
ObjectInstance
The object instance.
retrieveIntent
retrieveIntent:
CancellableIntent
The retrieve intent.
state
state:
object
The object subscription 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
intendToRetrieve:
boolean
Whether the object intends to retrieve.
intendToSubscribe
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
pk
pk:
string
The pk of the object.
pkKey
pkKey:
string
The pk key of the object.
subscribed
subscribed:
boolean
Whether the object is subscribed.
subscribeIntent
subscribeIntent:
CancellableIntent
The subscribe intent.
ObjectSubscriptionFunctions
Functions available for object subscription management.
Properties
clearError
clearError: () =>
void
Clears any errors related to the subscription, and resets the loading state.
Returns
void
ObjectSubscriptionOwnOptions
The options specific to an object subscription (reactive props, an optional instance to reuse, and handlers).
Properties
handlers?
optionalhandlers?:ObjectCrudHandlers
The handlers to be passed to useObjectInstance.
objectInstance?
optionalobjectInstance?:ObjectInstance
An object instance to use instead of creating a new one.
props
props:
object
The reactive args to be passed to useObjectInstance.
intendToRetrieve
intendToRetrieve:
boolean
Whether the object intends to retrieve.
intendToSubscribe
intendToSubscribe:
boolean
Whether the object intends to subscribe.
params
params:
any
The arguments to be passed to the retrieve function.
pk?
optionalpk?:PkInput
The pk of the object, optional to support creating new objects.
pkKey
pkKey:
string
The pk key of the object.
target
target:
object
The arguments to be passed to the crud handlers.
target.args
args:
TargetArgs
The arguments to be passed to the crud handlers.
target.create?
optionalcreate?:CrudCreateFn
A function to be used instead of the default crud create function.
target.delete?
optionaldelete?:CrudDeleteFn
A function to be used instead of the default crud delete function.
target.executeAction?
optionalexecuteAction?:CrudObjectExecuteActionFn
The function to execute a certain action on an object.
target.patch?
optionalpatch?:CrudPatchFn
A function to be used instead of the default crud patch function.
target.retrieve?
optionalretrieve?:CrudRetrieveFn
A function to be used instead of the default crud retrieve function.
target.subscribe?
optionalsubscribe?:CrudObjectSubscribeFn
A function to be used instead of the default crud subscribe function.
target.update?
optionalupdate?:CrudUpdateFn
A function to be used instead of the default crud update function.
ObjectSubscriptionProperties
Properties of the object subscription.
Properties
objectInstance
objectInstance:
ObjectInstance
The object instance.
retrieveIntent
retrieveIntent:
CancellableIntent
The retrieve intent.
state
state:
object
The object instance properties.
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
intendToRetrieve:
boolean
Whether the object intends to retrieve.
intendToSubscribe
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
pk
pk:
string
The pk of the object.
pkKey
pkKey:
string
The pk key of the object.
subscribed
subscribed:
boolean
Whether the object is subscribed.
stop
stop: () =>
void
Stops the subscription reactive effects.
Returns
void
subscribeIntent
subscribeIntent:
CancellableIntent
The subscribe intent.
ObjectSubscriptionRawProps
Raw props for the object subscription.
Properties
intendToRetrieve
intendToRetrieve:
boolean
Whether the object intends to retrieve.
intendToSubscribe
intendToSubscribe:
boolean
Whether the object intends to subscribe.
ObjectSubscriptionRawState
The raw state of the object subscription.
Properties
intendToRetrieve
intendToRetrieve:
Ref<boolean,boolean>
Whether the object intends to retrieve.
intendToSubscribe
intendToSubscribe:
Ref<boolean,boolean>
Whether the object intends to subscribe.
subscribed
subscribed:
Ref<boolean,boolean>
Whether the object is subscribed.
Type Aliases
ObjectSubscription
ObjectSubscription =
ObjectSubscriptionProperties&ObjectSubscriptionFunctions
The object subscription instance, combining state, properties, and functions.
Type Parameters
ObjectSubscriptionOptions
ObjectSubscriptionOptions =
ObjectSubscriptionOwnOptions&ObjectInstanceOptions
Options for initializing an object subscription, including reactive props and non-reactive handlers.
Type Parameters
ObjectSubscriptionState
ObjectSubscriptionState =
Reactive
The state of the object subscription, including both subscription and object instance states.
Type Parameters
Functions
useObjectSubscription()
useObjectSubscription(
options):ObjectSubscription
Initializes an object subscription to manage object state and reactivity, including subscription status and errors.
Parameters
options
Options for initializing the object subscription.
Returns
- An object containing the subscription state, properties, and handlers.
Example
<script setup>
import { useObjectSubscription } from "@arrai-innovations/reactive-helpers";
import { reactive, toRef } from "vue";
const pkKey = "id";
const props = defineProps({
app: { type: String, required: true },
model: { type: String, required: true },
pk: { type: String, default: "" },
});
const objectSubscriptionProps = reactive({
target: {
app: toRef(props, "app"),
model: toRef(props, "model"),
},
pk: toRef(props, "pk"),
pkKey: pkKey,
params: {
fields: ['foo', 'bar'],
},
intendToRetrieve: true,
intendToSubscribe: true,
});
const objectSubscription = useObjectSubscription({
props: objectSubscriptionProps,
});
</script>
<template>
<div v-if="objectSubscription.state.loading">Loading...</div>
<div v-else-if="objectSubscription.state.errored">Error: {{ objectSubscription.state.error.message }}</div>
<div v-else-if="objectSubscription.state.object[pkKey]">Foo: {{ objectSubscription.state.object.foo }}</div>
<div v-else>Object not found.</div>
</template>useObjectSubscriptions()
useObjectSubscriptions(
subscriptionArgs):object
Initializes multiple object subscriptions based on provided arguments.
Parameters
subscriptionArgs
Arguments for initializing object subscriptions.
Returns
object
- An object containing the initialized object subscriptions.