@kernel-js/auth
Version:
42 lines (34 loc) • 3.8 kB
JavaScript
import _construct from "@babel/runtime/helpers/construct";
import { get, isEmpty } from '@kernel-js/support';
import { ArgumentNullError } from '@kernel-js/exceptions';
/**
* @returns any
*/
export default function ValidateOAuthClass() {
/**
* @param {any} constructor
*/
return function (constructor) {
var original = constructor;
var newConstructor = function newConstructor() {
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var config = args[0];
var client = get(config, 'client', {});
if (isEmpty(client)) {
throw new ArgumentNullError('client');
}
if (isEmpty(get(client, 'id', null))) {
throw new ArgumentNullError('client.id');
}
if (isEmpty(get(client, 'secret', null))) {
throw new ArgumentNullError('client.secret');
}
return _construct(original, args);
};
newConstructor.prototype = original.prototype;
return newConstructor;
};
}
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kZWNvcmF0b3JzL1ZhbGlkYXRlT0F1dGhDbGFzcy50cyJdLCJuYW1lcyI6WyJnZXQiLCJpc0VtcHR5IiwiQXJndW1lbnROdWxsRXJyb3IiLCJWYWxpZGF0ZU9BdXRoQ2xhc3MiLCJjb25zdHJ1Y3RvciIsIm9yaWdpbmFsIiwibmV3Q29uc3RydWN0b3IiLCJhcmdzIiwiY29uZmlnIiwiY2xpZW50IiwicHJvdG90eXBlIl0sIm1hcHBpbmdzIjoiO0FBQUEsU0FBU0EsR0FBVCxFQUFjQyxPQUFkLFFBQTZCLG9CQUE3QjtBQUNBLFNBQVNDLGlCQUFULFFBQWtDLHVCQUFsQztBQUVBOzs7O0FBR0EsZUFBZSxTQUFTQyxrQkFBVCxHQUFtQztBQUVoRDs7O0FBR0EsU0FBTyxVQUFVQyxXQUFWLEVBQTRCO0FBQ2pDLFFBQU1DLFFBQVEsR0FBR0QsV0FBakI7O0FBQ0EsUUFBTUUsY0FBbUIsR0FBRyxTQUF0QkEsY0FBc0IsR0FBMEI7QUFBQSx3Q0FBYkMsSUFBYTtBQUFiQSxRQUFBQSxJQUFhO0FBQUE7O0FBRXBELFVBQU1DLE1BQWMsR0FBR0QsSUFBSSxDQUFDLENBQUQsQ0FBM0I7QUFDQSxVQUFNRSxNQUFNLEdBQUdULEdBQUcsQ0FBQ1EsTUFBRCxFQUFTLFFBQVQsRUFBbUIsRUFBbkIsQ0FBbEI7O0FBRUEsVUFBSVAsT0FBTyxDQUFDUSxNQUFELENBQVgsRUFBcUI7QUFDbkIsY0FBTSxJQUFJUCxpQkFBSixDQUFzQixRQUF0QixDQUFOO0FBQ0Q7O0FBRUQsVUFBSUQsT0FBTyxDQUFDRCxHQUFHLENBQUNTLE1BQUQsRUFBUyxJQUFULEVBQWUsSUFBZixDQUFKLENBQVgsRUFBc0M7QUFDcEMsY0FBTSxJQUFJUCxpQkFBSixDQUFzQixXQUF0QixDQUFOO0FBQ0Q7O0FBRUQsVUFBSUQsT0FBTyxDQUFDRCxHQUFHLENBQUNTLE1BQUQsRUFBUyxRQUFULEVBQW1CLElBQW5CLENBQUosQ0FBWCxFQUEwQztBQUN4QyxjQUFNLElBQUlQLGlCQUFKLENBQXNCLGVBQXRCLENBQU47QUFDRDs7QUFFRCx3QkFBV0csUUFBWCxFQUF1QkUsSUFBdkI7QUFDRCxLQWxCRDs7QUFvQkFELElBQUFBLGNBQWMsQ0FBQ0ksU0FBZixHQUEyQkwsUUFBUSxDQUFDSyxTQUFwQztBQUVBLFdBQU9KLGNBQVA7QUFDRCxHQXpCRDtBQTBCRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGdldCwgaXNFbXB0eSB9IGZyb20gJ0BrZXJuZWwtanMvc3VwcG9ydCc7XG5pbXBvcnQgeyBBcmd1bWVudE51bGxFcnJvciB9IGZyb20gJ0BrZXJuZWwtanMvZXhjZXB0aW9ucyc7XG5cbi8qKlxuICogQHJldHVybnMgYW55XG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFZhbGlkYXRlT0F1dGhDbGFzcygpOiBhbnkge1xuICBcbiAgLyoqXG4gICAqIEBwYXJhbSAge2FueX0gY29uc3RydWN0b3JcbiAgICovXG4gIHJldHVybiBmdW5jdGlvbiAoY29uc3RydWN0b3I6IGFueSkge1xuICAgIGNvbnN0IG9yaWdpbmFsID0gY29uc3RydWN0b3I7XG4gICAgY29uc3QgbmV3Q29uc3RydWN0b3I6IGFueSA9IGZ1bmN0aW9uICguLi5hcmdzOiBhbnlbXSkge1xuXG4gICAgICBjb25zdCBjb25maWc6IG9iamVjdCA9IGFyZ3NbMF07XG4gICAgICBjb25zdCBjbGllbnQgPSBnZXQoY29uZmlnLCAnY2xpZW50Jywge30pO1xuXG4gICAgICBpZiAoaXNFbXB0eShjbGllbnQpKSB7XG4gICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFcnJvcignY2xpZW50Jyk7XG4gICAgICB9XG4gICAgICBcbiAgICAgIGlmIChpc0VtcHR5KGdldChjbGllbnQsICdpZCcsIG51bGwpKSkge1xuICAgICAgICB0aHJvdyBuZXcgQXJndW1lbnROdWxsRXJyb3IoJ2NsaWVudC5pZCcpO1xuICAgICAgfVxuICAgICAgXG4gICAgICBpZiAoaXNFbXB0eShnZXQoY2xpZW50LCAnc2VjcmV0JywgbnVsbCkpKSB7XG4gICAgICAgIHRocm93IG5ldyBBcmd1bWVudE51bGxFcnJvcignY2xpZW50LnNlY3JldCcpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gbmV3IG9yaWdpbmFsKC4uLmFyZ3MpO1xuICAgIH1cblxuICAgIG5ld0NvbnN0cnVjdG9yLnByb3RvdHlwZSA9IG9yaWdpbmFsLnByb3RvdHlwZTtcblxuICAgIHJldHVybiBuZXdDb25zdHJ1Y3RvcjtcbiAgfVxufSJdfQ==