npm.io
1.2.3 • Published 2 years ago

@obsidize/rotating-file-stream

Licence
MIT
Version
1.2.3
Deps
1
Size
25 kB
Vulns
0
Weekly
0

@obsidize/rotating-file-stream

Simple wrapper for streaming data to files on mobile devices in hybrid apps.

If you're using this for log capture on a cordova / capacitor app, consider using cordova-plugin-secure-logger instead.

If you need a pure NodeJS implementation, use rotating-file-stream instead.

Installation

  • npm:
npm install --save @obsidize/rotating-file-stream

API

Source documentation can be found here

Usage

  1. Create A RotationFileStream instance:
import { RotatingFileStream, CordovaFileEntryApi, CapacitorFileEntryApi } from '@obsidize/rotating-file-stream';

const fileStream = new RotatingFileStream({
	maxFileSize: 2e6, // 2MB
	files: CordovaFileEntryApi.createCacheRotationFiles(
		cdvFile, // @awesome-cordova-plugins/file reference
		'logs',
		['debug-a.log', 'debug-b.log']
	)
});

// Or if you want to use @capacitor/filesystem
const fileStream = new RotatingFileStream({
	maxFileSize: 2e6, // 2MB
	files: CapacitorFileEntryApi.createCacheRotationFiles(
		Filesystem, // @capacitor/filesystem reference
		'logs',
		['debug-a.log', 'debug-b.log']
	)
});
  1. Write to the stream:
const buffer = new ArrayBuffer(42);
fileStream.write(buffer).then(...);
  1. Read data back later on:
const entries = await fileStream.refreshAllEntries();

for (const entry of entries) {
	// read the entry data, or get its URL and do something with it
}

Keywords