@wordpress/redux-routine
Advanced tools
@@ -6,2 +6,3 @@ /** | ||
| import createRuntime from './runtime'; | ||
| /** | ||
@@ -19,3 +20,2 @@ * Creates a Redux middleware, given an object of controls where each key is an | ||
| */ | ||
| export default function createMiddleware(controls = {}) { | ||
@@ -28,3 +28,2 @@ return store => { | ||
| } | ||
| return runtime(action); | ||
@@ -31,0 +30,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["@wordpress/redux-routine/src/index.js"],"names":["isGenerator","createRuntime","createMiddleware","controls","store","runtime","dispatch","next","action"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,WAAP,MAAwB,gBAAxB;AACA,OAAOC,aAAP,MAA0B,WAA1B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,gBAAT,CAA2BC,QAAQ,GAAG,EAAtC,EAA2C;AACzD,SAASC,KAAF,IAAa;AACnB,UAAMC,OAAO,GAAGJ,aAAa,CAAEE,QAAF,EAAYC,KAAK,CAACE,QAAlB,CAA7B;AACA,WAASC,IAAF,IAAcC,MAAF,IAAc;AAChC,UAAK,CAAER,WAAW,CAAEQ,MAAF,CAAlB,EAA+B;AAC9B,eAAOD,IAAI,CAAEC,MAAF,CAAX;AACA;;AAED,aAAOH,OAAO,CAAEG,MAAF,CAAd;AACA,KAND;AAOA,GATD;AAUA","sourcesContent":["/**\n * Internal dependencies\n */\nimport isGenerator from './is-generator';\nimport createRuntime from './runtime';\n\n/**\n * Creates a Redux middleware, given an object of controls where each key is an\n * action type for which to act upon, the value a function which returns either\n * a promise which is to resolve when evaluation of the action should continue,\n * or a value. The value or resolved promise value is assigned on the return\n * value of the yield assignment. If the control handler returns undefined, the\n * execution is not continued.\n *\n * @param {Record<string, (value: import('redux').AnyAction) => Promise<boolean> | boolean>} controls Object of control handlers.\n *\n * @return {import('redux').Middleware} Co-routine runtime\n */\nexport default function createMiddleware( controls = {} ) {\n\treturn ( store ) => {\n\t\tconst runtime = createRuntime( controls, store.dispatch );\n\t\treturn ( next ) => ( action ) => {\n\t\t\tif ( ! isGenerator( action ) ) {\n\t\t\t\treturn next( action );\n\t\t\t}\n\n\t\t\treturn runtime( action );\n\t\t};\n\t};\n}\n"]} | ||
| {"version":3,"names":["isGenerator","createRuntime","createMiddleware","controls","store","runtime","dispatch","next","action"],"sources":["@wordpress/redux-routine/src/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport isGenerator from './is-generator';\nimport createRuntime from './runtime';\n\n/**\n * Creates a Redux middleware, given an object of controls where each key is an\n * action type for which to act upon, the value a function which returns either\n * a promise which is to resolve when evaluation of the action should continue,\n * or a value. The value or resolved promise value is assigned on the return\n * value of the yield assignment. If the control handler returns undefined, the\n * execution is not continued.\n *\n * @param {Record<string, (value: import('redux').AnyAction) => Promise<boolean> | boolean>} controls Object of control handlers.\n *\n * @return {import('redux').Middleware} Co-routine runtime\n */\nexport default function createMiddleware( controls = {} ) {\n\treturn ( store ) => {\n\t\tconst runtime = createRuntime( controls, store.dispatch );\n\t\treturn ( next ) => ( action ) => {\n\t\t\tif ( ! isGenerator( action ) ) {\n\t\t\t\treturn next( action );\n\t\t\t}\n\n\t\t\treturn runtime( action );\n\t\t};\n\t};\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,WAAW,MAAM,gBAAgB;AACxC,OAAOC,aAAa,MAAM,WAAW;;AAErC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,gBAAgBA,CAAEC,QAAQ,GAAG,CAAC,CAAC,EAAG;EACzD,OAASC,KAAK,IAAM;IACnB,MAAMC,OAAO,GAAGJ,aAAa,CAAEE,QAAQ,EAAEC,KAAK,CAACE,QAAS,CAAC;IACzD,OAASC,IAAI,IAAQC,MAAM,IAAM;MAChC,IAAK,CAAER,WAAW,CAAEQ,MAAO,CAAC,EAAG;QAC9B,OAAOD,IAAI,CAAEC,MAAO,CAAC;MACtB;MAEA,OAAOH,OAAO,CAAEG,MAAO,CAAC;IACzB,CAAC;EACF,CAAC;AACF"} |
@@ -5,4 +5,4 @@ /** | ||
| import { isPlainObject } from 'is-plain-object'; | ||
| /* eslint-disable jsdoc/valid-types */ | ||
| /** | ||
@@ -15,6 +15,6 @@ * Returns true if the given object quacks like an action. | ||
| */ | ||
| export function isAction(object) { | ||
| return isPlainObject(object) && typeof object.type === 'string'; | ||
| } | ||
| /** | ||
@@ -29,3 +29,2 @@ * Returns true if the given object quacks like an action and has a specific | ||
| */ | ||
| export function isActionOfType(object, expectedType) { | ||
@@ -32,0 +31,0 @@ /* eslint-enable jsdoc/valid-types */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["@wordpress/redux-routine/src/is-action.js"],"names":["isPlainObject","isAction","object","type","isActionOfType","expectedType"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAT,QAA8B,iBAA9B;AAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,QAAT,CAAmBC,MAAnB,EAA4B;AAClC,SAAOF,aAAa,CAAEE,MAAF,CAAb,IAA2B,OAAOA,MAAM,CAACC,IAAd,KAAuB,QAAzD;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,cAAT,CAAyBF,MAAzB,EAAiCG,YAAjC,EAAgD;AACtD;AACA,SAAOJ,QAAQ,CAAEC,MAAF,CAAR,IAAsBA,MAAM,CAACC,IAAP,KAAgBE,YAA7C;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { isPlainObject } from 'is-plain-object';\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Returns true if the given object quacks like an action.\n *\n * @param {any} object Object to test\n *\n * @return {object is import('redux').AnyAction} Whether object is an action.\n */\nexport function isAction( object ) {\n\treturn isPlainObject( object ) && typeof object.type === 'string';\n}\n\n/**\n * Returns true if the given object quacks like an action and has a specific\n * action type\n *\n * @param {unknown} object Object to test\n * @param {string} expectedType The expected type for the action.\n *\n * @return {object is import('redux').AnyAction} Whether object is an action and is of specific type.\n */\nexport function isActionOfType( object, expectedType ) {\n\t/* eslint-enable jsdoc/valid-types */\n\treturn isAction( object ) && object.type === expectedType;\n}\n"]} | ||
| {"version":3,"names":["isPlainObject","isAction","object","type","isActionOfType","expectedType"],"sources":["@wordpress/redux-routine/src/is-action.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { isPlainObject } from 'is-plain-object';\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Returns true if the given object quacks like an action.\n *\n * @param {any} object Object to test\n *\n * @return {object is import('redux').AnyAction} Whether object is an action.\n */\nexport function isAction( object ) {\n\treturn isPlainObject( object ) && typeof object.type === 'string';\n}\n\n/**\n * Returns true if the given object quacks like an action and has a specific\n * action type\n *\n * @param {unknown} object Object to test\n * @param {string} expectedType The expected type for the action.\n *\n * @return {object is import('redux').AnyAction} Whether object is an action and is of specific type.\n */\nexport function isActionOfType( object, expectedType ) {\n\t/* eslint-enable jsdoc/valid-types */\n\treturn isAction( object ) && object.type === expectedType;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,iBAAiB;;AAE/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,QAAQA,CAAEC,MAAM,EAAG;EAClC,OAAOF,aAAa,CAAEE,MAAO,CAAC,IAAI,OAAOA,MAAM,CAACC,IAAI,KAAK,QAAQ;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAAEF,MAAM,EAAEG,YAAY,EAAG;EACtD;EACA,OAAOJ,QAAQ,CAAEC,MAAO,CAAC,IAAIA,MAAM,CAACC,IAAI,KAAKE,YAAY;AAC1D"} |
| /* eslint-disable jsdoc/valid-types */ | ||
| /** | ||
@@ -4,0 +3,0 @@ * Returns true if the given object is a generator, or false otherwise. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["@wordpress/redux-routine/src/is-generator.js"],"names":["isGenerator","object","Symbol","iterator","next"],"mappings":"AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,WAAT,CAAsBC,MAAtB,EAA+B;AAC7C;AACA;AACA;AACA,SACC,CAAC,CAAEA,MAAH,IACA,OAAOA,MAAM,CAAEC,MAAM,CAACC,QAAT,CAAb,KAAqC,UADrC,IAEA,OAAOF,MAAM,CAACG,IAAd,KAAuB,UAHxB;AAKA","sourcesContent":["/* eslint-disable jsdoc/valid-types */\n/**\n * Returns true if the given object is a generator, or false otherwise.\n *\n * @see https://www.ecma-international.org/ecma-262/6.0/#sec-generator-objects\n *\n * @param {any} object Object to test.\n *\n * @return {object is Generator} Whether object is a generator.\n */\nexport default function isGenerator( object ) {\n\t/* eslint-enable jsdoc/valid-types */\n\t// Check that iterator (next) and iterable (Symbol.iterator) interfaces are satisfied.\n\t// These checks seem to be compatible with several generator helpers as well as the native implementation.\n\treturn (\n\t\t!! object &&\n\t\ttypeof object[ Symbol.iterator ] === 'function' &&\n\t\ttypeof object.next === 'function'\n\t);\n}\n"]} | ||
| {"version":3,"names":["isGenerator","object","Symbol","iterator","next"],"sources":["@wordpress/redux-routine/src/is-generator.js"],"sourcesContent":["/* eslint-disable jsdoc/valid-types */\n/**\n * Returns true if the given object is a generator, or false otherwise.\n *\n * @see https://www.ecma-international.org/ecma-262/6.0/#sec-generator-objects\n *\n * @param {any} object Object to test.\n *\n * @return {object is Generator} Whether object is a generator.\n */\nexport default function isGenerator( object ) {\n\t/* eslint-enable jsdoc/valid-types */\n\t// Check that iterator (next) and iterable (Symbol.iterator) interfaces are satisfied.\n\t// These checks seem to be compatible with several generator helpers as well as the native implementation.\n\treturn (\n\t\t!! object &&\n\t\ttypeof object[ Symbol.iterator ] === 'function' &&\n\t\ttypeof object.next === 'function'\n\t);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASA,WAAWA,CAAEC,MAAM,EAAG;EAC7C;EACA;EACA;EACA,OACC,CAAC,CAAEA,MAAM,IACT,OAAOA,MAAM,CAAEC,MAAM,CAACC,QAAQ,CAAE,KAAK,UAAU,IAC/C,OAAOF,MAAM,CAACG,IAAI,KAAK,UAAU;AAEnC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]} | ||
| {"version":3,"names":[],"sources":["@wordpress/redux-routine/src/rungen.d.ts"],"sourcesContent":["declare module 'rungen' {\n\ttype Control = (\n\t\tvalue: any,\n\t\tnext: any,\n\t\titerate: any,\n\t\tyieldNext: ( result: boolean ) => void,\n\t\tyieldError: ( err: Error ) => void\n\t) => Promise< boolean > | boolean;\n\n\tfunction create(\n\t\t...args: any[]\n\t): (\n\t\taction: any,\n\t\tsuccessCallback: ( result: any ) => void,\n\t\terrorCallaback: () => void\n\t) => void;\n}\n"],"mappings":""} |
| /** | ||
| * External dependencies | ||
| */ | ||
| import { create } from 'rungen'; | ||
| import isPromise from 'is-promise'; | ||
| /** | ||
@@ -11,2 +11,3 @@ * Internal dependencies | ||
| import { isActionOfType, isAction } from './is-action'; | ||
| /** | ||
@@ -18,3 +19,2 @@ * Create a co-routine runtime. | ||
| */ | ||
| export default function createRuntime(controls = {}, dispatch) { | ||
@@ -25,5 +25,3 @@ const rungenControls = Object.entries(controls).map(([actionType, control]) => (value, next, iterate, yieldNext, yieldError) => { | ||
| } | ||
| const routine = control(value); | ||
| if (isPromise(routine)) { | ||
@@ -35,6 +33,4 @@ // Async control routine awaits resolution. | ||
| } | ||
| return true; | ||
| }); | ||
| const unhandledActionControl = (value, next) => { | ||
@@ -44,3 +40,2 @@ if (!isAction(value)) { | ||
| } | ||
| dispatch(value); | ||
@@ -50,3 +45,2 @@ next(); | ||
| }; | ||
| rungenControls.push(unhandledActionControl); | ||
@@ -58,3 +52,2 @@ const rungenRuntime = create(rungenControls); | ||
| } | ||
| resolve(result); | ||
@@ -61,0 +54,0 @@ }, reject)); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["@wordpress/redux-routine/src/runtime.ts"],"names":["create","isPromise","isActionOfType","isAction","createRuntime","controls","dispatch","rungenControls","Object","entries","map","actionType","control","value","next","iterate","yieldNext","yieldError","routine","then","unhandledActionControl","push","rungenRuntime","action","Promise","resolve","reject","result"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAT,QAAgC,QAAhC;AACA,OAAOC,SAAP,MAAsB,YAAtB;;AAGA;AACA;AACA;AACA,SAASC,cAAT,EAAyBC,QAAzB,QAAyC,aAAzC;AAEA;AACA;AACA;AACA;AACA;AACA;;AACA,eAAe,SAASC,aAAT,CACdC,QAGC,GAAG,EAJU,EAKdC,QALc,EAMb;AACD,QAAMC,cAAc,GAAGC,MAAM,CAACC,OAAP,CAAgBJ,QAAhB,EAA2BK,GAA3B,CACtB,CAAE,CAAEC,UAAF,EAAcC,OAAd,CAAF,KACC,CAAEC,KAAF,EAASC,IAAT,EAAeC,OAAf,EAAwBC,SAAxB,EAAmCC,UAAnC,KAAmD;AAClD,QAAK,CAAEf,cAAc,CAAEW,KAAF,EAASF,UAAT,CAArB,EAA6C;AAC5C,aAAO,KAAP;AACA;;AACD,UAAMO,OAAO,GAAGN,OAAO,CAAEC,KAAF,CAAvB;;AACA,QAAKZ,SAAS,CAAEiB,OAAF,CAAd,EAA4B;AAC3B;AACAA,MAAAA,OAAO,CAACC,IAAR,CAAcH,SAAd,EAAyBC,UAAzB;AACA,KAHD,MAGO;AACND,MAAAA,SAAS,CAAEE,OAAF,CAAT;AACA;;AACD,WAAO,IAAP;AACA,GAdoB,CAAvB;;AAiBA,QAAME,sBAAsB,GAAG,CAC9BP,KAD8B,EAE9BC,IAF8B,KAG1B;AACJ,QAAK,CAAEX,QAAQ,CAAEU,KAAF,CAAf,EAA2B;AAC1B,aAAO,KAAP;AACA;;AACDP,IAAAA,QAAQ,CAAEO,KAAF,CAAR;AACAC,IAAAA,IAAI;AACJ,WAAO,IAAP;AACA,GAVD;;AAWAP,EAAAA,cAAc,CAACc,IAAf,CAAqBD,sBAArB;AAEA,QAAME,aAAa,GAAGtB,MAAM,CAAEO,cAAF,CAA5B;AAEA,SAASgB,MAAF,IACN,IAAIC,OAAJ,CAAa,CAAEC,OAAF,EAAWC,MAAX,KACZJ,aAAa,CACZC,MADY,EAEVI,MAAF,IAAc;AACb,QAAKxB,QAAQ,CAAEwB,MAAF,CAAb,EAA0B;AACzBrB,MAAAA,QAAQ,CAAEqB,MAAF,CAAR;AACA;;AACDF,IAAAA,OAAO,CAAEE,MAAF,CAAP;AACA,GAPW,EAQZD,MARY,CADd,CADD;AAaA","sourcesContent":["/**\n * External dependencies\n */\nimport { create, Control } from 'rungen';\nimport isPromise from 'is-promise';\nimport type { Dispatch, AnyAction } from 'redux';\n\n/**\n * Internal dependencies\n */\nimport { isActionOfType, isAction } from './is-action';\n\n/**\n * Create a co-routine runtime.\n *\n * @param controls Object of control handlers.\n * @param dispatch Unhandled action dispatch.\n */\nexport default function createRuntime(\n\tcontrols: Record<\n\t\tstring,\n\t\t( value: any ) => Promise< boolean > | boolean\n\t> = {},\n\tdispatch: Dispatch\n) {\n\tconst rungenControls = Object.entries( controls ).map(\n\t\t( [ actionType, control ] ): Control =>\n\t\t\t( value, next, iterate, yieldNext, yieldError ) => {\n\t\t\t\tif ( ! isActionOfType( value, actionType ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst routine = control( value );\n\t\t\t\tif ( isPromise( routine ) ) {\n\t\t\t\t\t// Async control routine awaits resolution.\n\t\t\t\t\troutine.then( yieldNext, yieldError );\n\t\t\t\t} else {\n\t\t\t\t\tyieldNext( routine );\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t);\n\n\tconst unhandledActionControl = (\n\t\tvalue: AnyAction | unknown,\n\t\tnext: () => void\n\t) => {\n\t\tif ( ! isAction( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tdispatch( value );\n\t\tnext();\n\t\treturn true;\n\t};\n\trungenControls.push( unhandledActionControl );\n\n\tconst rungenRuntime = create( rungenControls );\n\n\treturn ( action: AnyAction | Generator ) =>\n\t\tnew Promise( ( resolve, reject ) =>\n\t\t\trungenRuntime(\n\t\t\t\taction,\n\t\t\t\t( result ) => {\n\t\t\t\t\tif ( isAction( result ) ) {\n\t\t\t\t\t\tdispatch( result );\n\t\t\t\t\t}\n\t\t\t\t\tresolve( result );\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t)\n\t\t);\n}\n"]} | ||
| {"version":3,"names":["create","isPromise","isActionOfType","isAction","createRuntime","controls","dispatch","rungenControls","Object","entries","map","actionType","control","value","next","iterate","yieldNext","yieldError","routine","then","unhandledActionControl","push","rungenRuntime","action","Promise","resolve","reject","result"],"sources":["@wordpress/redux-routine/src/runtime.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Control } from 'rungen';\nimport { create } from 'rungen';\nimport isPromise from 'is-promise';\nimport type { Dispatch, AnyAction } from 'redux';\n\n/**\n * Internal dependencies\n */\nimport { isActionOfType, isAction } from './is-action';\n\n/**\n * Create a co-routine runtime.\n *\n * @param controls Object of control handlers.\n * @param dispatch Unhandled action dispatch.\n */\nexport default function createRuntime(\n\tcontrols: Record<\n\t\tstring,\n\t\t( value: any ) => Promise< boolean > | boolean\n\t> = {},\n\tdispatch: Dispatch\n) {\n\tconst rungenControls = Object.entries( controls ).map(\n\t\t( [ actionType, control ] ): Control =>\n\t\t\t( value, next, iterate, yieldNext, yieldError ) => {\n\t\t\t\tif ( ! isActionOfType( value, actionType ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst routine = control( value );\n\t\t\t\tif ( isPromise( routine ) ) {\n\t\t\t\t\t// Async control routine awaits resolution.\n\t\t\t\t\troutine.then( yieldNext, yieldError );\n\t\t\t\t} else {\n\t\t\t\t\tyieldNext( routine );\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t);\n\n\tconst unhandledActionControl = (\n\t\tvalue: AnyAction | unknown,\n\t\tnext: () => void\n\t) => {\n\t\tif ( ! isAction( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tdispatch( value );\n\t\tnext();\n\t\treturn true;\n\t};\n\trungenControls.push( unhandledActionControl );\n\n\tconst rungenRuntime = create( rungenControls );\n\n\treturn ( action: AnyAction | Generator ) =>\n\t\tnew Promise( ( resolve, reject ) =>\n\t\t\trungenRuntime(\n\t\t\t\taction,\n\t\t\t\t( result ) => {\n\t\t\t\t\tif ( isAction( result ) ) {\n\t\t\t\t\t\tdispatch( result );\n\t\t\t\t\t}\n\t\t\t\t\tresolve( result );\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t)\n\t\t);\n}\n"],"mappings":"AAAA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,QAAQ;AAC/B,OAAOC,SAAS,MAAM,YAAY;AAGlC;AACA;AACA;AACA,SAASC,cAAc,EAAEC,QAAQ,QAAQ,aAAa;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,SAASC,aAAaA,CACpCC,QAGC,GAAG,CAAC,CAAC,EACNC,QAAkB,EACjB;EACD,MAAMC,cAAc,GAAGC,MAAM,CAACC,OAAO,CAAEJ,QAAS,CAAC,CAACK,GAAG,CACpD,CAAE,CAAEC,UAAU,EAAEC,OAAO,CAAE,KACxB,CAAEC,KAAK,EAAEC,IAAI,EAAEC,OAAO,EAAEC,SAAS,EAAEC,UAAU,KAAM;IAClD,IAAK,CAAEf,cAAc,CAAEW,KAAK,EAAEF,UAAW,CAAC,EAAG;MAC5C,OAAO,KAAK;IACb;IACA,MAAMO,OAAO,GAAGN,OAAO,CAAEC,KAAM,CAAC;IAChC,IAAKZ,SAAS,CAAEiB,OAAQ,CAAC,EAAG;MAC3B;MACAA,OAAO,CAACC,IAAI,CAAEH,SAAS,EAAEC,UAAW,CAAC;IACtC,CAAC,MAAM;MACND,SAAS,CAAEE,OAAQ,CAAC;IACrB;IACA,OAAO,IAAI;EACZ,CACF,CAAC;EAED,MAAME,sBAAsB,GAAGA,CAC9BP,KAA0B,EAC1BC,IAAgB,KACZ;IACJ,IAAK,CAAEX,QAAQ,CAAEU,KAAM,CAAC,EAAG;MAC1B,OAAO,KAAK;IACb;IACAP,QAAQ,CAAEO,KAAM,CAAC;IACjBC,IAAI,CAAC,CAAC;IACN,OAAO,IAAI;EACZ,CAAC;EACDP,cAAc,CAACc,IAAI,CAAED,sBAAuB,CAAC;EAE7C,MAAME,aAAa,GAAGtB,MAAM,CAAEO,cAAe,CAAC;EAE9C,OAASgB,MAA6B,IACrC,IAAIC,OAAO,CAAE,CAAEC,OAAO,EAAEC,MAAM,KAC7BJ,aAAa,CACZC,MAAM,EACJI,MAAM,IAAM;IACb,IAAKxB,QAAQ,CAAEwB,MAAO,CAAC,EAAG;MACzBrB,QAAQ,CAAEqB,MAAO,CAAC;IACnB;IACAF,OAAO,CAAEE,MAAO,CAAC;EAClB,CAAC,EACDD,MACD,CACD,CAAC;AACH"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOjD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACpC,QAAQ,yBAEE,GAAG,KAAM,QAAS,OAAO,CAAE,GAAG,OAAO,aACzC,EACN,QAAQ,EAAE,QAAQ,YAkCD,SAAS,GAAG,SAAS,sBAatC"} | ||
| {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOjD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACpC,QAAQ,yBAEE,GAAG,KAAM,QAAS,OAAO,CAAE,GAAG,OAAO,aACzC,EACN,QAAQ,EAAE,QAAQ,YAkCD,SAAS,GAAG,SAAS,sBAatC"} |
+0
-5
| "use strict"; | ||
| var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
| Object.defineProperty(exports, "__esModule", { | ||
@@ -9,7 +8,4 @@ value: true | ||
| exports.default = createMiddleware; | ||
| var _isGenerator = _interopRequireDefault(require("./is-generator")); | ||
| var _runtime = _interopRequireDefault(require("./runtime")); | ||
| /** | ||
@@ -38,3 +34,2 @@ * Internal dependencies | ||
| } | ||
| return runtime(action); | ||
@@ -41,0 +36,0 @@ }; |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["@wordpress/redux-routine/src/index.js"],"names":["createMiddleware","controls","store","runtime","dispatch","next","action"],"mappings":";;;;;;;;;AAGA;;AACA;;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,gBAAT,CAA2BC,QAAQ,GAAG,EAAtC,EAA2C;AACzD,SAASC,KAAF,IAAa;AACnB,UAAMC,OAAO,GAAG,sBAAeF,QAAf,EAAyBC,KAAK,CAACE,QAA/B,CAAhB;AACA,WAASC,IAAF,IAAcC,MAAF,IAAc;AAChC,UAAK,CAAE,0BAAaA,MAAb,CAAP,EAA+B;AAC9B,eAAOD,IAAI,CAAEC,MAAF,CAAX;AACA;;AAED,aAAOH,OAAO,CAAEG,MAAF,CAAd;AACA,KAND;AAOA,GATD;AAUA","sourcesContent":["/**\n * Internal dependencies\n */\nimport isGenerator from './is-generator';\nimport createRuntime from './runtime';\n\n/**\n * Creates a Redux middleware, given an object of controls where each key is an\n * action type for which to act upon, the value a function which returns either\n * a promise which is to resolve when evaluation of the action should continue,\n * or a value. The value or resolved promise value is assigned on the return\n * value of the yield assignment. If the control handler returns undefined, the\n * execution is not continued.\n *\n * @param {Record<string, (value: import('redux').AnyAction) => Promise<boolean> | boolean>} controls Object of control handlers.\n *\n * @return {import('redux').Middleware} Co-routine runtime\n */\nexport default function createMiddleware( controls = {} ) {\n\treturn ( store ) => {\n\t\tconst runtime = createRuntime( controls, store.dispatch );\n\t\treturn ( next ) => ( action ) => {\n\t\t\tif ( ! isGenerator( action ) ) {\n\t\t\t\treturn next( action );\n\t\t\t}\n\n\t\t\treturn runtime( action );\n\t\t};\n\t};\n}\n"]} | ||
| {"version":3,"names":["_isGenerator","_interopRequireDefault","require","_runtime","createMiddleware","controls","store","runtime","createRuntime","dispatch","next","action","isGenerator"],"sources":["@wordpress/redux-routine/src/index.js"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport isGenerator from './is-generator';\nimport createRuntime from './runtime';\n\n/**\n * Creates a Redux middleware, given an object of controls where each key is an\n * action type for which to act upon, the value a function which returns either\n * a promise which is to resolve when evaluation of the action should continue,\n * or a value. The value or resolved promise value is assigned on the return\n * value of the yield assignment. If the control handler returns undefined, the\n * execution is not continued.\n *\n * @param {Record<string, (value: import('redux').AnyAction) => Promise<boolean> | boolean>} controls Object of control handlers.\n *\n * @return {import('redux').Middleware} Co-routine runtime\n */\nexport default function createMiddleware( controls = {} ) {\n\treturn ( store ) => {\n\t\tconst runtime = createRuntime( controls, store.dispatch );\n\t\treturn ( next ) => ( action ) => {\n\t\t\tif ( ! isGenerator( action ) ) {\n\t\t\t\treturn next( action );\n\t\t\t}\n\n\t\t\treturn runtime( action );\n\t\t};\n\t};\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,YAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAF,sBAAA,CAAAC,OAAA;AAJA;AACA;AACA;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASE,gBAAgBA,CAAEC,QAAQ,GAAG,CAAC,CAAC,EAAG;EACzD,OAASC,KAAK,IAAM;IACnB,MAAMC,OAAO,GAAG,IAAAC,gBAAa,EAAEH,QAAQ,EAAEC,KAAK,CAACG,QAAS,CAAC;IACzD,OAASC,IAAI,IAAQC,MAAM,IAAM;MAChC,IAAK,CAAE,IAAAC,oBAAW,EAAED,MAAO,CAAC,EAAG;QAC9B,OAAOD,IAAI,CAAEC,MAAO,CAAC;MACtB;MAEA,OAAOJ,OAAO,CAAEI,MAAO,CAAC;IACzB,CAAC;EACF,CAAC;AACF"} |
@@ -8,5 +8,3 @@ "use strict"; | ||
| exports.isActionOfType = isActionOfType; | ||
| var _isPlainObject = require("is-plain-object"); | ||
| /** | ||
@@ -17,3 +15,2 @@ * External dependencies | ||
| /* eslint-disable jsdoc/valid-types */ | ||
| /** | ||
@@ -29,2 +26,3 @@ * Returns true if the given object quacks like an action. | ||
| } | ||
| /** | ||
@@ -39,4 +37,2 @@ * Returns true if the given object quacks like an action and has a specific | ||
| */ | ||
| function isActionOfType(object, expectedType) { | ||
@@ -43,0 +39,0 @@ /* eslint-enable jsdoc/valid-types */ |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["@wordpress/redux-routine/src/is-action.js"],"names":["isAction","object","type","isActionOfType","expectedType"],"mappings":";;;;;;;;AAGA;;AAHA;AACA;AACA;;AAGA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,QAAT,CAAmBC,MAAnB,EAA4B;AAClC,SAAO,kCAAeA,MAAf,KAA2B,OAAOA,MAAM,CAACC,IAAd,KAAuB,QAAzD;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,cAAT,CAAyBF,MAAzB,EAAiCG,YAAjC,EAAgD;AACtD;AACA,SAAOJ,QAAQ,CAAEC,MAAF,CAAR,IAAsBA,MAAM,CAACC,IAAP,KAAgBE,YAA7C;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { isPlainObject } from 'is-plain-object';\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Returns true if the given object quacks like an action.\n *\n * @param {any} object Object to test\n *\n * @return {object is import('redux').AnyAction} Whether object is an action.\n */\nexport function isAction( object ) {\n\treturn isPlainObject( object ) && typeof object.type === 'string';\n}\n\n/**\n * Returns true if the given object quacks like an action and has a specific\n * action type\n *\n * @param {unknown} object Object to test\n * @param {string} expectedType The expected type for the action.\n *\n * @return {object is import('redux').AnyAction} Whether object is an action and is of specific type.\n */\nexport function isActionOfType( object, expectedType ) {\n\t/* eslint-enable jsdoc/valid-types */\n\treturn isAction( object ) && object.type === expectedType;\n}\n"]} | ||
| {"version":3,"names":["_isPlainObject","require","isAction","object","isPlainObject","type","isActionOfType","expectedType"],"sources":["@wordpress/redux-routine/src/is-action.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { isPlainObject } from 'is-plain-object';\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Returns true if the given object quacks like an action.\n *\n * @param {any} object Object to test\n *\n * @return {object is import('redux').AnyAction} Whether object is an action.\n */\nexport function isAction( object ) {\n\treturn isPlainObject( object ) && typeof object.type === 'string';\n}\n\n/**\n * Returns true if the given object quacks like an action and has a specific\n * action type\n *\n * @param {unknown} object Object to test\n * @param {string} expectedType The expected type for the action.\n *\n * @return {object is import('redux').AnyAction} Whether object is an action and is of specific type.\n */\nexport function isActionOfType( object, expectedType ) {\n\t/* eslint-enable jsdoc/valid-types */\n\treturn isAction( object ) && object.type === expectedType;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,cAAA,GAAAC,OAAA;AAHA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,QAAQA,CAAEC,MAAM,EAAG;EAClC,OAAO,IAAAC,4BAAa,EAAED,MAAO,CAAC,IAAI,OAAOA,MAAM,CAACE,IAAI,KAAK,QAAQ;AAClE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,cAAcA,CAAEH,MAAM,EAAEI,YAAY,EAAG;EACtD;EACA,OAAOL,QAAQ,CAAEC,MAAO,CAAC,IAAIA,MAAM,CAACE,IAAI,KAAKE,YAAY;AAC1D"} |
@@ -7,5 +7,3 @@ "use strict"; | ||
| exports.default = isGenerator; | ||
| /* eslint-disable jsdoc/valid-types */ | ||
| /** | ||
@@ -12,0 +10,0 @@ * Returns true if the given object is a generator, or false otherwise. |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["@wordpress/redux-routine/src/is-generator.js"],"names":["isGenerator","object","Symbol","iterator","next"],"mappings":";;;;;;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,WAAT,CAAsBC,MAAtB,EAA+B;AAC7C;AACA;AACA;AACA,SACC,CAAC,CAAEA,MAAH,IACA,OAAOA,MAAM,CAAEC,MAAM,CAACC,QAAT,CAAb,KAAqC,UADrC,IAEA,OAAOF,MAAM,CAACG,IAAd,KAAuB,UAHxB;AAKA","sourcesContent":["/* eslint-disable jsdoc/valid-types */\n/**\n * Returns true if the given object is a generator, or false otherwise.\n *\n * @see https://www.ecma-international.org/ecma-262/6.0/#sec-generator-objects\n *\n * @param {any} object Object to test.\n *\n * @return {object is Generator} Whether object is a generator.\n */\nexport default function isGenerator( object ) {\n\t/* eslint-enable jsdoc/valid-types */\n\t// Check that iterator (next) and iterable (Symbol.iterator) interfaces are satisfied.\n\t// These checks seem to be compatible with several generator helpers as well as the native implementation.\n\treturn (\n\t\t!! object &&\n\t\ttypeof object[ Symbol.iterator ] === 'function' &&\n\t\ttypeof object.next === 'function'\n\t);\n}\n"]} | ||
| {"version":3,"names":["isGenerator","object","Symbol","iterator","next"],"sources":["@wordpress/redux-routine/src/is-generator.js"],"sourcesContent":["/* eslint-disable jsdoc/valid-types */\n/**\n * Returns true if the given object is a generator, or false otherwise.\n *\n * @see https://www.ecma-international.org/ecma-262/6.0/#sec-generator-objects\n *\n * @param {any} object Object to test.\n *\n * @return {object is Generator} Whether object is a generator.\n */\nexport default function isGenerator( object ) {\n\t/* eslint-enable jsdoc/valid-types */\n\t// Check that iterator (next) and iterable (Symbol.iterator) interfaces are satisfied.\n\t// These checks seem to be compatible with several generator helpers as well as the native implementation.\n\treturn (\n\t\t!! object &&\n\t\ttypeof object[ Symbol.iterator ] === 'function' &&\n\t\ttypeof object.next === 'function'\n\t);\n}\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,WAAWA,CAAEC,MAAM,EAAG;EAC7C;EACA;EACA;EACA,OACC,CAAC,CAAEA,MAAM,IACT,OAAOA,MAAM,CAAEC,MAAM,CAACC,QAAQ,CAAE,KAAK,UAAU,IAC/C,OAAOF,MAAM,CAACG,IAAI,KAAK,UAAU;AAEnC"} |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]} | ||
| {"version":3,"names":[],"sources":["@wordpress/redux-routine/src/rungen.d.ts"],"sourcesContent":["declare module 'rungen' {\n\ttype Control = (\n\t\tvalue: any,\n\t\tnext: any,\n\t\titerate: any,\n\t\tyieldNext: ( result: boolean ) => void,\n\t\tyieldError: ( err: Error ) => void\n\t) => Promise< boolean > | boolean;\n\n\tfunction create(\n\t\t...args: any[]\n\t): (\n\t\taction: any,\n\t\tsuccessCallback: ( result: any ) => void,\n\t\terrorCallaback: () => void\n\t) => void;\n}\n"],"mappings":""} |
+0
-12
| "use strict"; | ||
| var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); | ||
| Object.defineProperty(exports, "__esModule", { | ||
@@ -9,9 +8,5 @@ value: true | ||
| exports.default = createRuntime; | ||
| var _rungen = require("rungen"); | ||
| var _isPromise = _interopRequireDefault(require("is-promise")); | ||
| var _isAction = require("./is-action"); | ||
| /** | ||
@@ -36,5 +31,3 @@ * External dependencies | ||
| } | ||
| const routine = control(value); | ||
| if ((0, _isPromise.default)(routine)) { | ||
@@ -46,6 +39,4 @@ // Async control routine awaits resolution. | ||
| } | ||
| return true; | ||
| }); | ||
| const unhandledActionControl = (value, next) => { | ||
@@ -55,3 +46,2 @@ if (!(0, _isAction.isAction)(value)) { | ||
| } | ||
| dispatch(value); | ||
@@ -61,3 +51,2 @@ next(); | ||
| }; | ||
| rungenControls.push(unhandledActionControl); | ||
@@ -69,3 +58,2 @@ const rungenRuntime = (0, _rungen.create)(rungenControls); | ||
| } | ||
| resolve(result); | ||
@@ -72,0 +60,0 @@ }, reject)); |
@@ -1,1 +0,1 @@ | ||
| {"version":3,"sources":["@wordpress/redux-routine/src/runtime.ts"],"names":["createRuntime","controls","dispatch","rungenControls","Object","entries","map","actionType","control","value","next","iterate","yieldNext","yieldError","routine","then","unhandledActionControl","push","rungenRuntime","action","Promise","resolve","reject","result"],"mappings":";;;;;;;;;AAGA;;AACA;;AAMA;;AAVA;AACA;AACA;;AAKA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACe,SAASA,aAAT,CACdC,QAGC,GAAG,EAJU,EAKdC,QALc,EAMb;AACD,QAAMC,cAAc,GAAGC,MAAM,CAACC,OAAP,CAAgBJ,QAAhB,EAA2BK,GAA3B,CACtB,CAAE,CAAEC,UAAF,EAAcC,OAAd,CAAF,KACC,CAAEC,KAAF,EAASC,IAAT,EAAeC,OAAf,EAAwBC,SAAxB,EAAmCC,UAAnC,KAAmD;AAClD,QAAK,CAAE,8BAAgBJ,KAAhB,EAAuBF,UAAvB,CAAP,EAA6C;AAC5C,aAAO,KAAP;AACA;;AACD,UAAMO,OAAO,GAAGN,OAAO,CAAEC,KAAF,CAAvB;;AACA,QAAK,wBAAWK,OAAX,CAAL,EAA4B;AAC3B;AACAA,MAAAA,OAAO,CAACC,IAAR,CAAcH,SAAd,EAAyBC,UAAzB;AACA,KAHD,MAGO;AACND,MAAAA,SAAS,CAAEE,OAAF,CAAT;AACA;;AACD,WAAO,IAAP;AACA,GAdoB,CAAvB;;AAiBA,QAAME,sBAAsB,GAAG,CAC9BP,KAD8B,EAE9BC,IAF8B,KAG1B;AACJ,QAAK,CAAE,wBAAUD,KAAV,CAAP,EAA2B;AAC1B,aAAO,KAAP;AACA;;AACDP,IAAAA,QAAQ,CAAEO,KAAF,CAAR;AACAC,IAAAA,IAAI;AACJ,WAAO,IAAP;AACA,GAVD;;AAWAP,EAAAA,cAAc,CAACc,IAAf,CAAqBD,sBAArB;AAEA,QAAME,aAAa,GAAG,oBAAQf,cAAR,CAAtB;AAEA,SAASgB,MAAF,IACN,IAAIC,OAAJ,CAAa,CAAEC,OAAF,EAAWC,MAAX,KACZJ,aAAa,CACZC,MADY,EAEVI,MAAF,IAAc;AACb,QAAK,wBAAUA,MAAV,CAAL,EAA0B;AACzBrB,MAAAA,QAAQ,CAAEqB,MAAF,CAAR;AACA;;AACDF,IAAAA,OAAO,CAAEE,MAAF,CAAP;AACA,GAPW,EAQZD,MARY,CADd,CADD;AAaA","sourcesContent":["/**\n * External dependencies\n */\nimport { create, Control } from 'rungen';\nimport isPromise from 'is-promise';\nimport type { Dispatch, AnyAction } from 'redux';\n\n/**\n * Internal dependencies\n */\nimport { isActionOfType, isAction } from './is-action';\n\n/**\n * Create a co-routine runtime.\n *\n * @param controls Object of control handlers.\n * @param dispatch Unhandled action dispatch.\n */\nexport default function createRuntime(\n\tcontrols: Record<\n\t\tstring,\n\t\t( value: any ) => Promise< boolean > | boolean\n\t> = {},\n\tdispatch: Dispatch\n) {\n\tconst rungenControls = Object.entries( controls ).map(\n\t\t( [ actionType, control ] ): Control =>\n\t\t\t( value, next, iterate, yieldNext, yieldError ) => {\n\t\t\t\tif ( ! isActionOfType( value, actionType ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst routine = control( value );\n\t\t\t\tif ( isPromise( routine ) ) {\n\t\t\t\t\t// Async control routine awaits resolution.\n\t\t\t\t\troutine.then( yieldNext, yieldError );\n\t\t\t\t} else {\n\t\t\t\t\tyieldNext( routine );\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t);\n\n\tconst unhandledActionControl = (\n\t\tvalue: AnyAction | unknown,\n\t\tnext: () => void\n\t) => {\n\t\tif ( ! isAction( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tdispatch( value );\n\t\tnext();\n\t\treturn true;\n\t};\n\trungenControls.push( unhandledActionControl );\n\n\tconst rungenRuntime = create( rungenControls );\n\n\treturn ( action: AnyAction | Generator ) =>\n\t\tnew Promise( ( resolve, reject ) =>\n\t\t\trungenRuntime(\n\t\t\t\taction,\n\t\t\t\t( result ) => {\n\t\t\t\t\tif ( isAction( result ) ) {\n\t\t\t\t\t\tdispatch( result );\n\t\t\t\t\t}\n\t\t\t\t\tresolve( result );\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t)\n\t\t);\n}\n"]} | ||
| {"version":3,"names":["_rungen","require","_isPromise","_interopRequireDefault","_isAction","createRuntime","controls","dispatch","rungenControls","Object","entries","map","actionType","control","value","next","iterate","yieldNext","yieldError","isActionOfType","routine","isPromise","then","unhandledActionControl","isAction","push","rungenRuntime","create","action","Promise","resolve","reject","result"],"sources":["@wordpress/redux-routine/src/runtime.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { Control } from 'rungen';\nimport { create } from 'rungen';\nimport isPromise from 'is-promise';\nimport type { Dispatch, AnyAction } from 'redux';\n\n/**\n * Internal dependencies\n */\nimport { isActionOfType, isAction } from './is-action';\n\n/**\n * Create a co-routine runtime.\n *\n * @param controls Object of control handlers.\n * @param dispatch Unhandled action dispatch.\n */\nexport default function createRuntime(\n\tcontrols: Record<\n\t\tstring,\n\t\t( value: any ) => Promise< boolean > | boolean\n\t> = {},\n\tdispatch: Dispatch\n) {\n\tconst rungenControls = Object.entries( controls ).map(\n\t\t( [ actionType, control ] ): Control =>\n\t\t\t( value, next, iterate, yieldNext, yieldError ) => {\n\t\t\t\tif ( ! isActionOfType( value, actionType ) ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tconst routine = control( value );\n\t\t\t\tif ( isPromise( routine ) ) {\n\t\t\t\t\t// Async control routine awaits resolution.\n\t\t\t\t\troutine.then( yieldNext, yieldError );\n\t\t\t\t} else {\n\t\t\t\t\tyieldNext( routine );\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t}\n\t);\n\n\tconst unhandledActionControl = (\n\t\tvalue: AnyAction | unknown,\n\t\tnext: () => void\n\t) => {\n\t\tif ( ! isAction( value ) ) {\n\t\t\treturn false;\n\t\t}\n\t\tdispatch( value );\n\t\tnext();\n\t\treturn true;\n\t};\n\trungenControls.push( unhandledActionControl );\n\n\tconst rungenRuntime = create( rungenControls );\n\n\treturn ( action: AnyAction | Generator ) =>\n\t\tnew Promise( ( resolve, reject ) =>\n\t\t\trungenRuntime(\n\t\t\t\taction,\n\t\t\t\t( result ) => {\n\t\t\t\t\tif ( isAction( result ) ) {\n\t\t\t\t\t\tdispatch( result );\n\t\t\t\t\t}\n\t\t\t\t\tresolve( result );\n\t\t\t\t},\n\t\t\t\treject\n\t\t\t)\n\t\t);\n}\n"],"mappings":";;;;;;;AAIA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAC,sBAAA,CAAAF,OAAA;AAMA,IAAAG,SAAA,GAAAH,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACe,SAASI,aAAaA,CACpCC,QAGC,GAAG,CAAC,CAAC,EACNC,QAAkB,EACjB;EACD,MAAMC,cAAc,GAAGC,MAAM,CAACC,OAAO,CAAEJ,QAAS,CAAC,CAACK,GAAG,CACpD,CAAE,CAAEC,UAAU,EAAEC,OAAO,CAAE,KACxB,CAAEC,KAAK,EAAEC,IAAI,EAAEC,OAAO,EAAEC,SAAS,EAAEC,UAAU,KAAM;IAClD,IAAK,CAAE,IAAAC,wBAAc,EAAEL,KAAK,EAAEF,UAAW,CAAC,EAAG;MAC5C,OAAO,KAAK;IACb;IACA,MAAMQ,OAAO,GAAGP,OAAO,CAAEC,KAAM,CAAC;IAChC,IAAK,IAAAO,kBAAS,EAAED,OAAQ,CAAC,EAAG;MAC3B;MACAA,OAAO,CAACE,IAAI,CAAEL,SAAS,EAAEC,UAAW,CAAC;IACtC,CAAC,MAAM;MACND,SAAS,CAAEG,OAAQ,CAAC;IACrB;IACA,OAAO,IAAI;EACZ,CACF,CAAC;EAED,MAAMG,sBAAsB,GAAGA,CAC9BT,KAA0B,EAC1BC,IAAgB,KACZ;IACJ,IAAK,CAAE,IAAAS,kBAAQ,EAAEV,KAAM,CAAC,EAAG;MAC1B,OAAO,KAAK;IACb;IACAP,QAAQ,CAAEO,KAAM,CAAC;IACjBC,IAAI,CAAC,CAAC;IACN,OAAO,IAAI;EACZ,CAAC;EACDP,cAAc,CAACiB,IAAI,CAAEF,sBAAuB,CAAC;EAE7C,MAAMG,aAAa,GAAG,IAAAC,cAAM,EAAEnB,cAAe,CAAC;EAE9C,OAASoB,MAA6B,IACrC,IAAIC,OAAO,CAAE,CAAEC,OAAO,EAAEC,MAAM,KAC7BL,aAAa,CACZE,MAAM,EACJI,MAAM,IAAM;IACb,IAAK,IAAAR,kBAAQ,EAAEQ,MAAO,CAAC,EAAG;MACzBzB,QAAQ,CAAEyB,MAAO,CAAC;IACnB;IACAF,OAAO,CAAEE,MAAO,CAAC;EAClB,CAAC,EACDD,MACD,CACD,CAAC;AACH"} |
+2
-0
@@ -5,2 +5,4 @@ <!-- Learn how to maintain this file at https://github.com/WordPress/gutenberg/tree/HEAD/packages#maintaining-changelogs. --> | ||
| ## 4.40.0 (2023-08-16) | ||
| ## 4.39.0 (2023-08-10) | ||
@@ -7,0 +9,0 @@ |
+2
-2
| { | ||
| "name": "@wordpress/redux-routine", | ||
| "version": "4.39.0", | ||
| "version": "4.40.0", | ||
| "description": "Redux middleware for generator coroutines.", | ||
@@ -43,3 +43,3 @@ "author": "The WordPress Contributors", | ||
| }, | ||
| "gitHead": "b898cf1dc8e70841d1647ea0994ac6278acc18a7" | ||
| "gitHead": "78a288d55b83a713b2f7d98d5a855c0771a2afc6" | ||
| } |
+2
-1
| /** | ||
| * External dependencies | ||
| */ | ||
| import { create, Control } from 'rungen'; | ||
| import type { Control } from 'rungen'; | ||
| import { create } from 'rungen'; | ||
| import isPromise from 'is-promise'; | ||
@@ -6,0 +7,0 @@ import type { Dispatch, AnyAction } from 'redux'; |
Sorry, the diff of this file is not supported yet
98506
2.22%682
0.15%