mirror of
https://github.com/coderaiser/cloudcmd.git
synced 2026-01-23 02:35:49 +00:00
65 lines
1.2 KiB
JavaScript
65 lines
1.2 KiB
JavaScript
/* global CloudCmd, filepicker */
|
|
|
|
import exec from 'execon';
|
|
import currify from 'currify';
|
|
import load from 'load.js';
|
|
|
|
const {log} = CloudCmd;
|
|
|
|
import {ajax} from '../dom/load.js';
|
|
import Files from '../dom/files.js';
|
|
import Images from '../dom/images.js';
|
|
|
|
const upload = currify(_upload);
|
|
|
|
const Name = 'Cloud';
|
|
CloudCmd[Name] = module.exports;
|
|
|
|
export const init = async () => {
|
|
const [modules] = await loadFiles();
|
|
const {key} = modules.data.FilePicker;
|
|
|
|
filepicker.setKey(key);
|
|
Images.hide();
|
|
};
|
|
|
|
export const uploadFile = (filename, data) => {
|
|
const mimetype = '';
|
|
|
|
filepicker.store(data, {
|
|
mimetype,
|
|
filename,
|
|
}, (fpFile) => {
|
|
filepicker.exportFile(fpFile, log, log);
|
|
});
|
|
};
|
|
|
|
export const saveFile = (callback) => {
|
|
filepicker.pick(upload(callback));
|
|
};
|
|
|
|
function _upload(callback, file) {
|
|
const {
|
|
url,
|
|
filename,
|
|
} = file;
|
|
|
|
const responseType = 'arraybuffer';
|
|
const success = exec.with(callback, filename);
|
|
|
|
ajax({
|
|
url,
|
|
responseType,
|
|
success,
|
|
});
|
|
}
|
|
|
|
async function loadFiles() {
|
|
const js = '//api.filepicker.io/v2/filepicker.js';
|
|
|
|
return Promise.all([
|
|
Files.get('modules'),
|
|
load.js(js),
|
|
]);
|
|
}
|
|
|