Files
kami-parse-server/src/ClientSDK.js
Florent Vilmart 069275d3df Fix for #1840, Strip operations from results, forwards delete operations to SDKs (#1946)
* Adding a test demonstrating issue #1840.

* Fixes #1840

* Adds failing test with other use case

- That test fails on parse.com as well

* Bumps parse to 1.9.0

* exclude pg db

* Exclude pg on other test

* Adds clientSDK compatibility check for forward deletion

- Mark js1.9.0 as compatible

* Strips all operations from result

- fix for #1606
2016-07-15 09:24:53 -04:00

41 lines
876 B
JavaScript

var semver = require('semver');
function compatible(compatibleSDK) {
return function(clientSDK) {
if (typeof clientSDK === 'string') {
clientSDK = fromString(clientSDK);
}
// REST API, or custom SDK
if (!clientSDK) {
return true;
}
let clientVersion = clientSDK.version;
let compatiblityVersion = compatibleSDK[clientSDK.sdk];
return semver.satisfies(clientVersion, compatiblityVersion);
}
}
function supportsForwardDelete(clientSDK) {
return compatible({
js: '>=1.9.0'
})(clientSDK);
}
function fromString(version) {
let versionRE = /([-a-zA-Z]+)([0-9\.]+)/;
let match = version.toLowerCase().match(versionRE);
if (match && match.length === 3) {
return {
sdk: match[1],
version: match[2]
}
}
return undefined;
}
module.exports = {
compatible,
supportsForwardDelete,
fromString
}