devshare
Version:
Library to communicate with devshare development sharing platform.
91 lines (65 loc) • 2.87 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _file2 = require('./file');
var _file3 = _interopRequireDefault(_file2);
var _entity2 = require('./entity');
var _entity3 = _interopRequireDefault(_entity2);
var _folder2 = require('./folder');
var _folder3 = _interopRequireDefault(_folder2);
var _config = require('../../config');
var _utils = require('../../utils');
var _zipper = require('../../utils/zipper');
var _firebaser = require('../../utils/firebaser');
var _firebaser2 = _interopRequireDefault(_firebaser);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (owner, projectname) {
var relativePath = [_config.paths.files, owner, projectname];
// const projectUrl = `${paths.files}/projects/${owner}/${projectname}`
var methods = {
firebaseUrl: function firebaseUrl() {
return (0, _firebaser.createFirebaseUrl)(relativePath)();
},
firebaseRef: function firebaseRef() {
return (0, _firebaser.createFirebaseRef)(relativePath)();
},
addFile: function addFile(filePath, content) {
return (0, _file3.default)(relativePath, filePath).add(content);
},
addFolder: function addFolder(folderPath) {
return (0, _folder3.default)(relativePath, folderPath).add();
},
clone: function clone(newOwner, newName) {
return (0, _firebaser.get)(relativePath)().then(function (files) {
return (0, _firebaser.set)([_config.paths.files, newOwner, newName || projectname])(files).then(function () {
return files;
});
});
},
zip: function zip() {
return (0, _zipper.zipFileSystem)({ owner: owner, name: projectname }, relativePath);
},
download: function download() {
return (0, _zipper.zipFileSystem)({ owner: owner, name: projectname }, relativePath);
},
// TODO: Check other existing colors before returning
getUserColor: function getUserColor() {
return _config.highlightColors[(0, _utils.randomIntBetween)(0, _config.highlightColors.length - 1)];
}
};
var subModels = {
entity: function entity(entityPath) {
return (0, _entity3.default)(relativePath, entityPath);
},
file: function file(filePath) {
return (0, _file3.default)(relativePath, filePath);
},
folder: function folder(folderPath) {
return (0, _folder3.default)(relativePath, folderPath);
}
};
return _extends({}, (0, _firebaser2.default)(relativePath, ['get', 'sync']), methods, subModels);
};
module.exports = exports['default'];