1.0.0 • Published 4 months ago

@omegajs/mirror-drive v1.0.0

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
4 months ago

Mirror Omega Drives

@omegajs/mirror-drive

Mirror an Omega Drive or Localdrive into another one

Install Via L1FE's NPM

npm config set registry https://npm.l1fe.tech
npm install @omegajs/mirror-drive

Install Via L1FE's Git Repository

git clone https://lab.l1fe.tech/omega/mirror-drive.git
cd mirror-drive
npm install

Usage

import MirrorDrive from '@omegajs/mirror-drive'

const src = new Localdrive('./src')
const dst = new Drive(vault)

const mirror = new MirrorDrive(src, dst)
console.log(mirror.count) // => { files: 0, add: 0, remove: 0, change: 0 }

for await (const diff of mirror) {
  console.log(diff) /* {
    op: 'add',
    key: '/new-file.txt',
    bytesRemoved: 0,
    bytesAdded: 4
  }*/
}

console.log(mirror.count) // => { files: 1, add: 1, remove: 0, change: 0 }

Another example:

const mirror = new MirrorDrive(src, dst)

console.log(mirror.count) // => { files: 0, add: 0, remove: 0, change: 0 }
await mirror.done()
console.log(mirror.count) // => { files: 1, add: 1, remove: 0, change: 0 }

API

const mirror = new MirrorDrive(src, dst, [options])

Creates a mirror instance to efficiently move src drive into dst drive.

Available options:

{
  prefix: '/',
  dryRun: false,
  prune: true,
  includeEquals: false,
  filter: (key) => true,
  metadataEquals: (srcMetadata, dstMetadata) => { ... }
  batch: false,
  entries: null // Array of key entries (if you use this then prefix is ignored)
}

mirror.count

It counts the total files proccessed, added, removed, and changed.

Default value: { files: 0, add: 0, remove: 0, change: 0 }

await mirror.done()

It starts processing all the diffing until is done.

License

Apache-2.0