UNPKG

s3-tus-store

Version:

[![Build Status](https://travis-ci.org/blockai/s3-tus-store.svg?branch=master)](https://travis-ci.org/blockai/s3-tus-store)

73 lines (57 loc) 2.3 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _os = require('os'); var _os2 = _interopRequireDefault(_os); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _path = require('path'); var _debug = require('debug'); var _debug2 = _interopRequireDefault(_debug); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step("next", value); }, function (err) { step("throw", err); }); } } return step("next"); }); }; } const debug = (0, _debug2.default)('s3-tus-store:tmpfile'); exports.default = _asyncToGenerator(function* () { let prefix = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 's3-tus-store'; const tmpDirPath = (0, _path.join)(_os2.default.tmpdir(), prefix); debug('create tmp dir', { tmpDirPath }); const dir = yield new Promise(function (resolve, reject) { _fs2.default.mkdtemp(tmpDirPath, function (err, result) { if (err) return reject(err); resolve(result); }); }); const path = (0, _path.join)(dir, 'tmpfile'); const createWriteStream = function () { debug('createWriteStream', { path }); return _fs2.default.createWriteStream(path); }; const createReadStream = function () { debug('createReadStream', { path }); return _fs2.default.createReadStream(path); }; const rm = (() => { var _ref2 = _asyncToGenerator(function* () { return new Promise(function (resolve, reject) { debug('rm', { path }); _fs2.default.unlink(path, function (err) { if (err) return reject(err); _fs2.default.rmdir(dir, function (err2) { if (err2) return reject(err2); resolve(); }); }); }); }); return function rm() { return _ref2.apply(this, arguments); }; })(); return { path, createWriteStream, createReadStream, rm }; });