Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Flux Standard Action creation with schema validation.

NotificationsYou must be signed in to change notification settings

rstuven/fsa-creator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

build statusnpm version

Flux Standard Action creation with schema validation.

npminstall--savefsa-creator

This module started as a fork ofredux-actions by Andrew Clark.It focuses in the creation of actions with handy specifications of mapping functions and schema validation.

createAction(type, ?payloadSpec, ?metaSpec)

payloadSpec andmetaSpec aremapping function specifications forpayloadandmeta properties, respectively.

Returns an action creator function with following signature:

function actionCreator(?payloadInput, ?metaInput)

payloadInput andmetaInput are the input of the respective mapping function.

A mapping function specification can be:

undefined orfalse (omission)

The property (payload ormeta) will be omitted.

– Function (mapping)

A mapping function will be used.

Example:

letactionCreator=createAction('ACTION',arg=>'(u'+arg+'u)');expect(actionCreator('.')).to.deep.equal({type:'ACTION',payload:'(u.u)'});

true (identity mapping without validation)

The identity function will be used.

Example:

letincrement=createAction('INCREMENT',true);// same asincrement=createAction('INCREMENT',amount=>amount);expect(increment(42)).to.deep.equal({type:'INCREMENT',payload:42});

– Plain object (identity mapping with validation)

A validated identity function will be used.JSONSchema v4 validation powered byis-my-json-valid.

Example:

letactionCreator=createAction('ACTION',{required:true,type:'object',properties:{hello:{required:true,type:'string',description:'A greeting'}}});expect(actionCreator()).to.deep.equal({type:'ACTION',error:true,payload:newError('payload is required')});expect(actionCreator({})).to.deep.equal({type:'ACTION',error:true,payload:newError('payload.hello is required')});expect(actionCreator({hello:123})).to.deep.equal({type:'ACTION',error:true,payload:newError('payload.hello is the wrong type')});expect(actionCreator({hello:'world'})).to.deep.equal({type:'ACTION',payload:{hello:'world'}});

– Array (property extraction)

A property extraction function will be used. This is thought to be used as a fast way of document expected properties, without defining a schema (yet).

Example:

letactionCreator=createAction('ACTION',['prop1','prop3']);expect(actionCreator({prop1:1,prop2:2,prop3:3})).to.deep.equal({type:'ACTION',payload:{prop1:1,prop3:3}});

NOTE: The more correct name forcreateAction function probably iscreateActionCreator(), but that seems a bit redundant.

About

Flux Standard Action creation with schema validation.

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp