Skip to content

self-assert / FieldDraftAssistant

Class: FieldDraftAssistant<ContainerModel, Model> ​

An assistant designed to manage a single field or a simple piece of data within a larger form or model.

Extends ​

Type Parameters ​

Type ParameterDefault type
ContainerModelany
Model extends stringstring

Model creation ​

isInvalidModel() ​

static isInvalidModel(potentialModel): boolean

Parameters ​

ParameterType
potentialModelunknown

Returns ​

boolean

Inherited from ​

DraftAssistant.isInvalidModel


createModel() ​

createModel(): Model

Attempts to create a model. It fails if any of the assertions fail.

Returns ​

Model

See ​

withCreatedModelDo.

Throws ​

RulesBroken if the model is invalid

Overrides ​

DraftAssistant.createModel


withCreatedModelDo() ​

withCreatedModelDo<ReturnType>(validModelClosure, invalidModelClosure): ReturnType

Executes a closure depending on whether the model is valid or not after creating it.

Type Parameters ​

Type ParameterDescription
ReturnTypeThe type of the value returned by the closures.

Parameters ​

ParameterTypeDescription
validModelClosure(model) => ReturnTypeA closure that will be called with the created model if it's valid.
invalidModelClosure() => ReturnTypeA closure that will be called if the model is invalid.

Returns ​

ReturnType

The return value of the closure that was called.

Inherited from ​

DraftAssistant.withCreatedModelDo


getModel() ​

getModel(): Model

Returns ​

Model

Inherited from ​

DraftAssistant.getModel


setModel() ​

setModel(newModel): void

Parameters ​

ParameterType
newModelModel

Returns ​

void

Inherited from ​

DraftAssistant.setModel


resetModel() ​

resetModel(): void

Resets the model to its initial value.

Returns ​

void

Inherited from ​

DraftAssistant.resetModel


setModelFrom() ​

setModelFrom(containerModel): void

Sets the model from its container.

Parameters ​

ParameterType
containerModelContainerModel

Returns ​

void

Inherited from ​

DraftAssistant.setModelFrom

Rules ​

addBrokenRule() ​

addBrokenRule(aBrokenRuleLabel): void

Adds a rule to the list of broken rules.

Parameters ​

ParameterType
aBrokenRuleLabelLabeledRule

Returns ​

void

Inherited from ​

DraftAssistant.addBrokenRule


addBrokenRules() ​

addBrokenRules(brokenRules): void

Adds a list of rules to the list of broken rules.

Parameters ​

ParameterType
brokenRulesLabeledRule[]

Returns ​

void

Inherited from ​

DraftAssistant.addBrokenRules


hasBrokenRules() ​

hasBrokenRules(): boolean

Returns ​

boolean

true if the list of broken rules is not empty

Inherited from ​

DraftAssistant.hasBrokenRules


doesNotHaveBrokenRules() ​

doesNotHaveBrokenRules(): boolean

Opposite of hasBrokenRules.

Returns ​

boolean

Inherited from ​

DraftAssistant.doesNotHaveBrokenRules


brokenRulesDescriptions() ​

brokenRulesDescriptions(): string[]

Returns ​

string[]

The descriptions of the broken rules

Inherited from ​

DraftAssistant.brokenRulesDescriptions


handles() ​

handles(aRule): boolean

Parameters ​

ParameterType
aRuleLabeledRule

Returns ​

boolean

true if this assistant handles the given Assertion.

Inherited from ​

DraftAssistant.handles


addLabelId() ​

addLabelId(aLabelId): void

Adds an assertion id to the list of handled assertions.

Parameters ​

ParameterType
aLabelIdstring

Returns ​

void

Inherited from ​

DraftAssistant.addLabelId


hasBrokenRule() ​

hasBrokenRule(aBrokenRuleLabel): boolean

Parameters ​

ParameterType
aBrokenRuleLabelLabeledRule

Returns ​

boolean

Inherited from ​

DraftAssistant.hasBrokenRule


hasOnlyOneRuleBrokenIdentifiedAs() ​

hasOnlyOneRuleBrokenIdentifiedAs(assertionId): boolean

Parameters ​

ParameterType
assertionIdstring

Returns ​

boolean

true if this assistant has only one failed assertion that is identified as the given assertionId.

Remarks ​

Used mostly for testing.

Inherited from ​

DraftAssistant.hasOnlyOneRuleBrokenIdentifiedAs


removeBrokenRules() ​

removeBrokenRules(): void

Returns ​

void

Inherited from ​

DraftAssistant.removeBrokenRules

Viewers ​

accept() ​

accept(aViewer): void

Adds a viewer to the list of observers.

Parameters ​

ParameterType
aViewerDraftViewer<Model>

Returns ​

void

Inherited from ​

DraftAssistant.accept


removeViewer() ​

removeViewer(aViewer): void

Removes a viewer from the list of observers.

Parameters ​

ParameterType
aViewerDraftViewer<never>

Returns ​

void

Inherited from ​

DraftAssistant.removeViewer


numberOfViewers() ​

numberOfViewers(): number

Returns ​

number

The number of viewers currently observing the assistant.

Inherited from ​

DraftAssistant.numberOfViewers

Others ​

handling() ​

static handling<ContainerModel, Model>(assertionId, modelFromContainer, initialModel): FieldDraftAssistant<ContainerModel, Model>

Type Parameters ​

Type ParameterDefault type
ContainerModelany
Model extends stringstring

Parameters ​

ParameterTypeDefault value
assertionIdstringundefined
modelFromContainerModelFromContainer<Model, ContainerModel>undefined
initialModelstring""

Returns ​

FieldDraftAssistant<ContainerModel, Model>


handlingAll() ​

static handlingAll<ContainerModel, Model>(assertionIds, modelFromContainer, initialModel): FieldDraftAssistant<ContainerModel, Model>

Type Parameters ​

Type ParameterDefault type
ContainerModelany
Model extends stringstring

Parameters ​

ParameterTypeDefault value
assertionIdsstring[]undefined
modelFromContainerModelFromContainer<Model, ContainerModel>undefined
initialModelstring""

Returns ​

FieldDraftAssistant<ContainerModel, Model>


requiring() ​

static requiring<ContainerModel, Model>(assertion, modelFromContainer, initialModel): FieldDraftAssistant<ContainerModel, Model>

Type Parameters ​

Type ParameterDefault type
ContainerModelany
Model extends stringstring

Parameters ​

ParameterTypeDefault value
assertionCollectableRule<void | Model, void>undefined
modelFromContainerModelFromContainer<Model, ContainerModel>undefined
initialModelstring""

Returns ​

FieldDraftAssistant<ContainerModel, Model>


requiringAll() ​

static requiringAll<ContainerModel, Model>(assertions, modelFromContainer, initialModel): FieldDraftAssistant<ContainerModel, Model>

Type Parameters ​

Type ParameterDefault type
ContainerModelany
Model extends stringstring

Parameters ​

ParameterTypeDefault value
assertionsCollectableRule<void | Model, void>[]undefined
modelFromContainerModelFromContainer<Model, ContainerModel>undefined
initialModelstring""

Returns ​

FieldDraftAssistant<ContainerModel, Model>


topLevelModelFromContainer() ​

static topLevelModelFromContainer<Model>(): ModelFromContainer<Model, unknown>

Type Parameters ​

Type ParameterDefault type
Modelany

Returns ​

ModelFromContainer<Model, unknown>

A default model getter from a container for the top-level assistant. Since there is no container to get the model from, it throws an error.

Inherited from ​

DraftAssistant.topLevelModelFromContainer


review() ​

review(): void

Checks if the current draft verifies all assertions. If not, it adds them to the list of failed assertions.

Returns ​

void