@coolgk/utils
Version:
javascript, typescript utility and wrapper functions and classes: array, string, base64, ampq, bcrypt, cache, captcha, csv, email, jwt, number, pdf, tmp, token, unit conversion, url params, session, form data, google sign in, facebook sign in
43 lines (41 loc) • 1.35 kB
JavaScript
/*!
* @package @coolgk/utils
* @version 3.1.4
* @link https://github.com/coolgk/node-utils
* @license MIT
* @author Daniel Gong <daniel.k.gong@gmail.com>
*
* Copyright (c) 2017 Daniel Gong <daniel.k.gong@gmail.com>. All rights reserved.
* Licensed under the MIT License.
*/
;
/*!
* Copyright (c) 2017 Daniel Gong <daniel.k.gong@gmail.com>. All rights reserved.
* Licensed under the MIT License.
*/
Object.defineProperty(exports, "__esModule", { value: true });
const tmp_1 = require("tmp");
function generateFile(options) {
return generate('file', options);
}
exports.generateFile = generateFile;
function generateDir(options) {
return generate('dir', options);
}
exports.generateDir = generateDir;
function generateTmpName(options) {
return generate('tmpName', options);
}
exports.generateTmpName = generateTmpName;
function generate(action, options = {}) {
return new Promise((resolve, reject) => {
if (!options.prefix) {
options.prefix = Date.now() + '';
}
const actions = { file: tmp_1.file, dir: tmp_1.dir, tmpName: tmp_1.tmpName };
actions[action](Object.assign({ tries: 10 }, options), (error, path, fd, cleanupCallback) => {
return error ? reject(error) : resolve({ path, fd, cleanupCallback });
});
});
}
exports.generate = generate;