ftp-service

May 28, 2024 · View on GitHub

ftp-service

A simple wrapper for a simpler FTP client surface API with pool and retry management.

GitHub license

This wrapper is directly usable with Knifecycle.

API

initFTPService(services) ⇒ Promise.<FTPService>

Instantiate the FTP service

Kind: global function
Returns: Promise.<FTPService> - A promise of the FTP service

ParamTypeDescription
servicesObjectThe services to inject
[services.ENV]ObjectAn environment object
services.FTPfunctionThe configuration object as given to basic-ftp client access method
services.FTP_CONFIGfunctionThe FTP service configuration object
[services.FTP_POOL]functionThe FTP pool configuration object as given to generic-pool.
[services.FTP_TIMEOUT]functionThe FTP service timeout as given to basic-ftp client constructor
[services.FTP_PASSWORD_ENV_NAME]functionThe environment variable name in which to pick-up the FTP password
services.logfunctionA logging function
[services.delay]functionA service to manage delays

Example

import initFTPService from 'ftp-service';
import { initDelayService } from 'common-services';

const delay = await initDelayService({
  log: console.log.bind(console),
})
const fpt = await initFTPService({
  FTP: {
    host: 'localhost',
    user: 'user',
    pasword: 'pwd',
  },
  FTP_CONFIG: { base: '' },
  ENV: process.env,
  delay,
  log: console.log.bind(console),
});

const files = await ftp.list('/');

Authors

License

MIT