1
+ import { OPERATIONS } from './utils' ;
2
+
1
3
export default function ScrollBuffer ( elementRoutines , bufferSize , startIndex ) {
2
4
const buffer = Object . create ( Array . prototype ) ;
3
5
@@ -19,7 +21,7 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
19
21
append ( items ) {
20
22
items . forEach ( ( item ) => {
21
23
++ buffer . next ;
22
- buffer . insert ( 'append' , item ) ;
24
+ buffer . insert ( OPERATIONS . APPEND , item ) ;
23
25
} ) ;
24
26
buffer . maxIndex = buffer . eof ? buffer . next - 1 : Math . max ( buffer . next - 1 , buffer . maxIndex ) ;
25
27
} ,
@@ -32,7 +34,7 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
32
34
else {
33
35
-- buffer . first ;
34
36
}
35
- buffer . insert ( 'prepend' , item ) ;
37
+ buffer . insert ( OPERATIONS . PREPEND , item ) ;
36
38
} ) ;
37
39
buffer . minIndex = buffer . bof ? buffer . minIndex = buffer . first : Math . min ( buffer . first , buffer . minIndex ) ;
38
40
} ,
@@ -41,15 +43,15 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
41
43
* inserts wrapped element in the buffer
42
44
* the first argument is either operation keyword (see below) or a number for operation 'insert'
43
45
* for insert the number is the index for the buffer element the new one have to be inserted after
44
- * operations: 'append', 'prepend', 'insert', 'remove', 'update', ' none'
46
+ * operations: 'append', 'prepend', 'insert', 'remove', 'none'
45
47
*/
46
48
insert ( operation , item , isTop ) {
47
49
const wrapper = {
48
50
item : item
49
51
} ;
50
52
51
- if ( operation % 1 === 0 ) { // it is an insert
52
- wrapper . op = 'insert' ;
53
+ if ( operation % 1 === 0 ) { // it is an insert
54
+ wrapper . op = OPERATIONS . INSERT ;
53
55
buffer . splice ( operation , 0 , wrapper ) ;
54
56
if ( isTop ) {
55
57
buffer . first -- ;
@@ -60,10 +62,10 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
60
62
} else {
61
63
wrapper . op = operation ;
62
64
switch ( operation ) {
63
- case 'append' :
65
+ case OPERATIONS . APPEND :
64
66
buffer . push ( wrapper ) ;
65
67
break ;
66
- case 'prepend' :
68
+ case OPERATIONS . PREPEND :
67
69
buffer . unshift ( wrapper ) ;
68
70
break ;
69
71
}
@@ -152,7 +154,7 @@ export default function ScrollBuffer(elementRoutines, bufferSize, startIndex) {
152
154
} ,
153
155
154
156
getItems ( ) {
155
- return buffer . filter ( item => item . op === 'none' ) ;
157
+ return buffer . filter ( item => item . op === OPERATIONS . NONE ) ;
156
158
} ,
157
159
158
160
getFirstItem ( ) {
0 commit comments