Const
@kosDependency({modelType: Pump.type, id: "pumpId"})
private pumpModel: PumpModel;
The factory method creates a factory function that can be used to create new PumpModel instances.
The factory function is a curried function that takes the model id as the first argument and the options as the second argument.
If a model with the specified id already exists, the factory function will return the existing model. The options will be ignored in this case and the existing model will be returned in its current state.
const model = Pump.factory("S1")({
name: "S1",
path: "core.assembly.pump.S1",
beveragePour: true,
type: "syrup",
ingredientId: "1234532",
holderPath: "core.dispenser.holder.s1",
boardPath: "core.dispenser.board.s1",
nozzlePath: "core.dispenser.nozzle.s1",
inserted: true,
category: "flavor",
prevIngredientId: "1234567",
});
Typescript type predicate function that will identify and narrow down a model to a PumpModel.
const model: IKosDataModel = ...; // some model
if (Pump.predicate(model)) {
// if the function evaluates to true, the model is narrowed down to PumpModel
// and the compiler will know that the model has the PumpModel interface
model.updateAvailability(false);
}
The registration property is an object that can be used to simplify registration of the model with the model registry. The registration object can be spread into the model registration and provides all of the required information to register the model implementation class against the model type.
In an application registration file you can declare the model registration as follows:
registration.ts
import { Pump } from "@kosdev-code/kos-dispense-sdk";
...
import { IKosRegistry } from "@kosdev-code/kos-ui-sdk";
export const kosModels: IKosRegistry["models"] = {
...Pump.registration,
};
The pump model is not a singleton model. This means that each time the factory function is called with a unique ID, a new model instance will be created. If the factory function is called with an ID that already exists, the existing model will be returned.
Pump
The registration bean includes convenience methods for creating and working with PumpModel instances.
type
The type property is a string that identifies the model type. The type is used to identify the model type in the model registry and to narrow down the model type in type predicates. It's most frequently used when declaring dependencies on models.