jaydata
Version:
Cross-platform HTML5 data-management, JavaScript Language Query (JSLQ) support for OData, SQLite, WebSQL, IndexedDB, YQL and Facebook (packaged for Node.JS)
64 lines (51 loc) • 2.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; };
var _index = require('../TypeSystem/index.js');
var _index2 = _interopRequireDefault(_index);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
(function ($data) {
$data.initService = function (apiKey, options) {
var d = new $data.PromiseHandler();
var cfg;
if ((typeof apiKey === 'undefined' ? 'undefined' : _typeof(apiKey)) === 'object') {
//appId, serviceName, ownerid, isSSL, port, license, url
cfg = apiKey;
var protocol = cfg.isSSL || cfg.isSSL === undefined ? 'https' : 'http';
var port = cfg.port ? ':' + cfg.port : '';
if (typeof cfg.license === 'string' && cfg.license.toLowerCase() === 'business') {
if (cfg.appId && cfg.serviceName) {
apiKey = protocol + '://' + cfg.appId + '.jaystack.net' + port + '/' + cfg.serviceName;
} else {
apiKey = cfg.url;
}
} else {
if (cfg.ownerId && cfg.appId && cfg.serviceName) {
apiKey = protocol + '://open.jaystack.net/' + cfg.ownerId + '/' + cfg.appId + '/api/' + cfg.serviceName;
} else {
apiKey = cfg.url;
}
}
delete cfg.url;
cfg = $data.typeSystem.extend(cfg, options);
} else {
cfg = options;
}
$data.service(apiKey, cfg).then(function (factory) {
var ctx = factory();
return ctx.onReady().then(function (context) {
context.serviceFactory = factory;
d.deferred.resolve(context, factory, factory.type);
}).fail(function () {
d.deferred.reject.apply(d.deferred, arguments);
});
}).fail(function () {
d.deferred.reject.apply(d.deferred, arguments);
});
return d.getPromise();
};
})(_index2.default);
exports.default = _index2.default;
module.exports = exports['default'];