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