@@ -1688,16 +1688,55 @@ export const COMMANDS: Record<keyof C.ICommandAPIs, ICommand> = {
16881688 * @see https://redis.io/commands/lPop
16891689 */
16901690 'lPop' : {
1691- prepare : createDefaultPreparer ( 'LPOP' ) ,
1692- process : U . buffer2String
1691+ prepare ( key : string , count : number = 1 ) : IPrepareResult {
1692+
1693+ return {
1694+ args : [ key , count ] ,
1695+ cmd : 'LPOP'
1696+ } ;
1697+ } ,
1698+ process ( data : any , args : any [ ] ) : string | null | string [ ] {
1699+
1700+ if ( data === null ) {
1701+
1702+ return args [ 1 ] !== '1' ? [ ] : null ;
1703+ }
1704+
1705+ if ( data . length === 1 ) {
1706+
1707+ return data [ 0 ] [ 1 ] . toString ( ) ;
1708+ }
1709+
1710+ return U . list2StringList ( data ) ;
1711+ }
16931712 } ,
16941713
16951714 /**
16961715 * Command: lPop
16971716 * @see https://redis.io/commands/lPop
16981717 */
16991718 'lPop$' : {
1700- prepare : createDefaultPreparer ( 'LPOP' )
1719+ prepare ( key : string , count : number = 1 ) : IPrepareResult {
1720+
1721+ return {
1722+ args : [ key , count ] ,
1723+ cmd : 'LPOP'
1724+ } ;
1725+ } ,
1726+ process ( data : any , args : any [ ] ) : Buffer | null | Buffer [ ] {
1727+
1728+ if ( data === null ) {
1729+
1730+ return null ;
1731+ }
1732+
1733+ if ( data . length === 1 ) {
1734+
1735+ return args [ 1 ] !== '1' ? [ ] : null ;
1736+ }
1737+
1738+ return U . list2BufferList ( data ) ;
1739+ }
17011740 } ,
17021741
17031742 /**
@@ -1777,16 +1816,55 @@ export const COMMANDS: Record<keyof C.ICommandAPIs, ICommand> = {
17771816 * @see https://redis.io/commands/rPop
17781817 */
17791818 'rPop' : {
1780- prepare : createDefaultPreparer ( 'RPOP' ) ,
1781- process : U . buffer2String
1819+ prepare ( key : string , count : number = 1 ) : IPrepareResult {
1820+
1821+ return {
1822+ args : [ key , count ] ,
1823+ cmd : 'RPOP'
1824+ } ;
1825+ } ,
1826+ process ( data : any , args : any [ ] ) : string | null | string [ ] {
1827+
1828+ if ( data === null ) {
1829+
1830+ return args [ 1 ] !== '1' ? [ ] : null ;
1831+ }
1832+
1833+ if ( data . length === 1 ) {
1834+
1835+ return data [ 0 ] [ 1 ] . toString ( ) ;
1836+ }
1837+
1838+ return U . list2StringList ( data ) ;
1839+ }
17821840 } ,
17831841
17841842 /**
17851843 * Command: rPop
17861844 * @see https://redis.io/commands/rPop
17871845 */
17881846 'rPop$' : {
1789- prepare : createDefaultPreparer ( 'RPOP' )
1847+ prepare ( key : string , count : number = 1 ) : IPrepareResult {
1848+
1849+ return {
1850+ args : [ key , count ] ,
1851+ cmd : 'RPOP'
1852+ } ;
1853+ } ,
1854+ process ( data : any , args : any [ ] ) : Buffer | null | Buffer [ ] {
1855+
1856+ if ( data === null ) {
1857+
1858+ return null ;
1859+ }
1860+
1861+ if ( data . length === 1 ) {
1862+
1863+ return args [ 1 ] !== '1' ? [ ] : null ;
1864+ }
1865+
1866+ return U . list2BufferList ( data ) ;
1867+ }
17901868 } ,
17911869
17921870 /**
0 commit comments