architect-sdk
Version:
Essentialz Architect SDK
52 lines (51 loc) • 2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ArchitectClient = void 0;
var Sdk_1 = require("./Sdk");
var types_1 = require("./types");
var ArchitectClient = /** @class */ (function () {
function ArchitectClient(config) {
this.schema = {};
var proxyHandler = {
get: function (target, propKey) {
var sdk = Sdk_1.ArchitectSDK.getInstance(config);
switch (propKey) {
case types_1.BaseFunction.login:
return function () {
var args = [];
for (var _i = 0; _i < arguments.length; _i++) {
args[_i] = arguments[_i];
}
var credentials = args[0], provider = args[1];
return sdk.auth().login(credentials, provider);
};
case types_1.BaseFunction.logout: {
return function () { return sdk.auth().logout(); };
}
case types_1.BaseFunction.getUserId: {
return function () { return sdk.auth().getUserId(); };
}
case types_1.BaseFunction.isAuthenticated: {
return function () { return sdk.auth().isAuthenticated(); };
}
case types_1.BaseService.files: {
return sdk.files();
}
default:
return sdk.resource(propKey);
}
},
};
this.proxy = (new Proxy(this.schema, proxyHandler));
}
return ArchitectClient;
}());
exports.ArchitectClient = ArchitectClient;
var instance;
function client(config) {
if (!instance) {
instance = new ArchitectClient(config);
}
return instance.proxy;
}
exports.default = client;