repo_description: Parse Server for Node.js / Express
repo_topics: baas backend file-storage graphql graphql-api graphql-relay graphql-server hacktoberfest mbaas mongodb nodejs notifications object-storage parse-platform parse-server postgres relay rest-api
code: 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;
      }
      const clientVersion = clientSDK.version;
      const compatiblityVersion = compatibleSDK[clientSDK.sdk];
      return semver.satisfies(clientVersion, compatiblityVersion);
    };
  }
  
  function supportsForwardDelete(clientSDK) {
    return compatible({
      js: '>=1.9.0',
    })(clientSDK);
  }
  
  function fromString(version) {
    const versionRE = /([-a-zA-Z]+)([0-9\.]+)/;
    const match = version.toLowerCase().match(versionRE);
    if (match && match.length === 3) {
      return {
        sdk: match[1],
        version: match[2],
      };
    }
    return undefined;
  }
  
  module.exports = {
    compatible,
    supportsForwardDelete,
    fromString,
  };
  