iterparse
Version:
Delightful data parsing
52 lines (34 loc) • 1.53 kB
Markdown
## CacheIterOptions
* `cacheFolder` - where cache data will be stored?
* `enabled` - is cache enabled?
Easy way to enable or disable caching logic
`@defaultValue` - `true`
* `referenceId` - when reference id changes cache folder will be regenerated.
`@defaultValue` - `hash(new Date().toDateString() + iteratableStructure + JSON.stringify(options.nice))` basically this means regenerate cache every single day
`iteratableStructure` - Any changes to source iteratable may regenerate cache
```typescript
getFeed()
.take(1000) // Changes to take count will regenerate cache
.pipe(cacheIter({ cacheFolder: "./folder" }))
.count()
```
`Note`: If you want to disable cache regeneration logic just hard code `referenceId` as static value
```typescript
getFeed()
.pipe(cacheIter({ cacheFolder: "./folder", referenceId: "v1" }))
.count()
```
Also keep in mind that `referenceId` can be function.
```typescript
getFeed()
.pipe(cacheIter({
cacheFolder: "./folder",
referenceId: ({ iteratableStructureId, nice }) => new Date().toDateString() + iteratableStructure + JSON.stringify(nice)
}))
.count()
```
* `nice` - format cache in human readable `JSON` format.
* `nice.buffer` - how big is single file?
Recommended value is `3000` objects
Keep in mind that this option can create a lot of files
* `logger` - helpful for debugging purposes