Socket
Book a DemoInstallSign in
Socket

@cloudcmd/fileop

Package Overview
Dependencies
Maintainers
1
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cloudcmd/fileop

file operations emitter middleware

latest
Source
npmnpm
Version
8.0.2
Version published
Maintainers
1
Created
Source

Fileop License NPM version Build Status

File operations emitter middleware.

Install

npm i @cloudcmd/fileop

Client

Could be loaded from url /fileop/fileop.js.

fileop([options, ]): Promise

Initialize operator.

  • options:
    • prefix - prefix of fileop (/fileop by default)
    • socketPrefix - prefix of socket.io (`` by default)

Returns operator in callback.

operator

It is EventEmitter from the inide produce next types of events:

  • error
  • progress
  • file
  • end

Supports next types of operations:

  • operator.copy(from, to, names)
  • operator.move(from, to, names)
  • opreator.remove(from, names)
  • opreator.extract(from, to)
  • operator.zip(from, to)
  • operator.tar(from, to)
const prefix = '/fileop';
const operator = await fileop({
    prefix,
});

const from = '/';
const to = '/tmp';

const names = ['bin'];

const progress = (value) => {
    console.log('progress:', value);
};

const end = (op) => () => {
    console.log('end');
    op.removelistener('progress', progress);
    op.removelistener('end', end);
};

const error = (op) => (data) => {
    const msg = `${data}\n continue?`;
    const is = confirm(msg);
    
    if (is)
        return op.continue();
    
    op.abort();
};

const op = await operator.copy(from, to, names);
    
op.on('progress', progress);
op.on('end', end(op)); op.on('error', error(op));

Server

const fileop = require('fileop');
const http = require('node:http');
const express = require('express');
const io = require('socket.io');
const app = express();
const port = 1337;
const server = http.createServer(app);
const socket = io.listen(server);

server.listen(port);

app.use(fileop({
    prefix: '/fileop', /* default */
}));

fileop.listen(socket, {
    // default
    prefix: '/fileop', // string or a function
    root: '/',
    auth: (accept, reject) => (username, password) => {
        if (username === 'root' && password === 'toor')
            accept();
        
        reject();
    },
});
  • Spero - file copy emitter middleware based on socket.io and copymitter
  • Remedy - emitting middleware for file removing
  • Ishtar - pack and extract .tar.gz archives middleware
  • Omnes - extract zip, gz, tar, tar.gz, tgz archives middleware
  • Salam - pack and extract zip archives middleware

License

MIT

Keywords

file

FAQs

Package last updated on 06 May 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts