@shoutem/assets-sdk
Advanced tools
Comparing version 0.0.1-beta.1 to 0.0.1
@@ -9,34 +9,137 @@ 'use strict'; | ||
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 _lodash = require('lodash'); | ||
var _lodash2 = _interopRequireDefault(_lodash); | ||
var _urijs = require('urijs'); | ||
var _urijs2 = _interopRequireDefault(_urijs); | ||
var _AbstractAssetManager2 = require('./AbstractAssetManager'); | ||
var _AbstractAssetManager3 = _interopRequireDefault(_AbstractAssetManager2); | ||
var _services = require('./services'); | ||
var services = _interopRequireWildcard(_services); | ||
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } } | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } | ||
var AssetManager = function () { | ||
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } | ||
function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } | ||
function validateConfig(config) { | ||
var mandatoryProperties = ['assetPolicyHost', 'scopeType', 'scopeId']; | ||
_lodash2.default.forEach(mandatoryProperties, function (property) { | ||
if (!_lodash2.default.has(config, property)) { | ||
throw new Error('Cannot create AssetManager. Missing required config property: \'' + property + '\''); | ||
} | ||
}); | ||
} | ||
function generatePolicyEndpoint(assetPolicyHost) { | ||
return new _urijs2.default(assetPolicyHost).segment(['v1', 'asset-policies']).toString(); | ||
} | ||
function generateHeaders() { | ||
var headers = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
return _extends({ | ||
Accept: 'application/vnd.api+json', | ||
'Content-Type': 'application/vnd.api+json' | ||
}, headers); | ||
} | ||
function createBody(attributes) { | ||
return JSON.stringify({ | ||
data: { | ||
type: 'shoutem.core.asset-policies', | ||
attributes: attributes | ||
} | ||
}); | ||
} | ||
var AssetManager = function (_AbstractAssetManager) { | ||
_inherits(AssetManager, _AbstractAssetManager); | ||
function AssetManager(config) { | ||
_classCallCheck(this, AssetManager); | ||
this.config = config; | ||
var _this = _possibleConstructorReturn(this, (AssetManager.__proto__ || Object.getPrototypeOf(AssetManager)).call(this, config)); | ||
validateConfig(config); | ||
_this.policyEndpoint = generatePolicyEndpoint(_this.config.assetPolicyHost); | ||
return _this; | ||
} | ||
// eslint-disable-next-line no-unused-vars | ||
_createClass(AssetManager, [{ | ||
key: 'signRequest', | ||
value: function signRequest(path, body, reject) { | ||
var _config = this.config, | ||
scopeType = _config.scopeType, | ||
scopeId = _config.scopeId, | ||
headers = _config.headers; | ||
_createClass(AssetManager, [{ | ||
var options = { | ||
method: 'POST', | ||
headers: generateHeaders(headers), | ||
body: createBody(_extends({ | ||
scopeType: scopeType, | ||
scopeId: scopeId, | ||
path: path | ||
}, body)) | ||
}; | ||
return fetch(this.policyEndpoint, options).then(function (res) { | ||
return res.json(); | ||
}, reject).then(function (json) { | ||
return Promise.resolve(json.data.attributes.signedRequest); | ||
}, reject); | ||
} | ||
}, { | ||
key: 'uploadFile', | ||
value: function uploadFile(path, file) { | ||
throw new Error('AssetManager.uploadFile not implemented!'); | ||
} | ||
var _this2 = this; | ||
// eslint-disable-next-line no-unused-vars | ||
return new Promise(function (resolve, reject) { | ||
_this2.signRequest(path, { action: 'upload', contentType: file.type }, reject).then(function (signedRequest) { | ||
var endpoint = signedRequest.endpoint, | ||
formData = signedRequest.formData; | ||
services.uploadFile(file, endpoint, formData).then(function () { | ||
var filePath = new _urijs2.default(endpoint).segment(formData.key).toString(); | ||
return resolve(filePath); | ||
}, reject); | ||
}, reject); | ||
}); | ||
} | ||
}, { | ||
key: 'listFolder', | ||
value: function listFolder(path) { | ||
throw new Error('AssetManager.listFolder not implemented!'); | ||
var _this3 = this; | ||
return new Promise(function (resolve, reject) { | ||
_this3.signRequest(path, { action: 'list' }, reject).then(function (signedRequest) { | ||
return resolve(services.listFolder(signedRequest.url)); | ||
}, reject); | ||
}); | ||
} | ||
// eslint-disable-next-line no-unused-vars | ||
}, { | ||
key: 'deleteFile', | ||
value: function deleteFile(path) { | ||
throw new Error('AssetManager.deleteFile not implemented'); | ||
var _this4 = this; | ||
return new Promise(function (resolve, reject) { | ||
_this4.signRequest(path, { action: 'delete' }, reject).then(function (signedRequest) { | ||
return resolve(services.deleteFile(signedRequest.url)); | ||
}, reject); | ||
}); | ||
} | ||
@@ -46,4 +149,4 @@ }]); | ||
return AssetManager; | ||
}(); | ||
}(_AbstractAssetManager3.default); | ||
exports.default = AssetManager; |
@@ -6,4 +6,8 @@ 'use strict'; | ||
}); | ||
exports.S3AssetManager = exports.AssetManager = undefined; | ||
exports.AssetManager = exports.AbstractAssetManager = undefined; | ||
var _AbstractAssetManager = require('./AbstractAssetManager'); | ||
var _AbstractAssetManager2 = _interopRequireDefault(_AbstractAssetManager); | ||
var _AssetManager = require('./AssetManager'); | ||
@@ -13,9 +17,5 @@ | ||
var _S3AssetManager = require('./s3/S3AssetManager'); | ||
var _S3AssetManager2 = _interopRequireDefault(_S3AssetManager); | ||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } | ||
exports.AssetManager = _AssetManager2.default; | ||
exports.S3AssetManager = _S3AssetManager2.default; | ||
exports.AbstractAssetManager = _AbstractAssetManager2.default; | ||
exports.AssetManager = _AssetManager2.default; |
@@ -91,3 +91,5 @@ 'use strict'; | ||
var uriScopeId = uriSegments[remotePathPrefixSegmentLength + 1]; | ||
// scope ID is located after scope type | ||
var uriScopeIdSegmentIndex = remotePathPrefixSegmentLength + 1; | ||
var uriScopeId = uriSegments[uriScopeIdSegmentIndex]; | ||
var scopeIdStr = '' + scopeId; | ||
@@ -98,3 +100,5 @@ if (scopeIdStr !== uriScopeId) { | ||
var segmentsWithoutScopeTypeId = uriSegments.slice(remotePathPrefixSegmentLength + 2); | ||
// relative path is located after scope type and scope ID | ||
var uriRelativePathSegmentStartIndex = remotePathPrefixSegmentLength + 2; | ||
var segmentsWithoutScopeTypeId = uriSegments.slice(uriRelativePathSegmentStartIndex); | ||
@@ -101,0 +105,0 @@ return new _urijs2.default().protocol(_const.assetSchema).host(uriScopeType).segment(segmentsWithoutScopeTypeId).normalize().toString(); |
@@ -6,7 +6,10 @@ 'use strict'; | ||
}); | ||
exports.S3AssetManager = exports.AssetManager = undefined; | ||
exports.AssetUriTransformer = exports.AssetManager = exports.AbstractAssetManager = undefined; | ||
var _assetManager = require('./asset-manager'); | ||
var _assetUriTransformer = require('./asset-uri-transformer'); | ||
exports.AbstractAssetManager = _assetManager.AbstractAssetManager; | ||
exports.AssetManager = _assetManager.AssetManager; | ||
exports.S3AssetManager = _assetManager.S3AssetManager; | ||
exports.AssetUriTransformer = _assetUriTransformer.AssetUriTransformer; |
{ | ||
"name": "@shoutem/assets-sdk", | ||
"version": "0.0.1-beta.1", | ||
"version": "0.0.1", | ||
"files": [ | ||
@@ -5,0 +5,0 @@ "build" |
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
5
31808
660