UNPKG

@platform/cell.client

Version:

A strongly typed HTTP client for operating with a CellOS service end-point.

89 lines (88 loc) 3.12 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.HttpClientCellLinksInfo = void 0; var common_1 = require("../common"); var HttpClientFile_1 = require("./HttpClientFile"); var HttpClientCell_1 = require("./HttpClientCell"); var HttpClientNs_1 = require("./HttpClientNs"); function HttpClientCellLinksInfo(args) { var urls = args.urls, http = args.http, _a = args.links, links = _a === void 0 ? {} : _a; var list = Object.keys(links).map(function (key) { return toLink({ urls: urls, http: http, key: key, value: links[key] }); }); var filter = function (type) { return list.filter(function (item) { return item.type === type; }); }; var api = { toObject: function () { return args.links; }, get list() { return list; }, get files() { return filter('FILE'); }, get cells() { return filter('CELL'); }, get namespaces() { return filter('NS'); }, }; return api; } exports.HttpClientCellLinksInfo = HttpClientCellLinksInfo; function toLink(args) { var http = args.http, urls = args.urls, value = args.value; var uri = common_1.Uri.parse(value); var type = uri.parts.type; if (type === 'FILE') { var client_1; var link = common_1.Schema.File.Links.parseValue(value); var uri_1 = link.uri; var hash = link.query.hash || ''; var _a = common_1.Schema.File.Links.parseKey(args.key), key_1 = _a.key, name_1 = _a.name, dir = _a.dir, path = _a.path; var res_1 = { type: 'FILE', value: value, uri: uri_1, key: key_1, path: path, dir: dir, name: name_1, hash: hash, get http() { return client_1 || (client_1 = (0, HttpClientFile_1.HttpClientFile)({ uri: uri_1, urls: urls, http: http })); }, }; return res_1; } if (type === 'CELL') { var key_2 = common_1.Schema.Ref.Links.parseKey(args.key).path; var _client_1; var uri_2 = common_1.Uri.cell(value); var res_2 = { type: 'CELL', key: key_2, value: value, uri: uri_2, get http() { return _client_1 || (_client_1 = (0, HttpClientCell_1.HttpClientCell)({ uri: uri_2, urls: urls, http: http })); }, }; return res_2; } if (type === 'NS') { var key_3 = common_1.Schema.Ref.Links.parseKey(args.key).path; var _client_2; var uri_3 = common_1.Uri.ns(value); var res_3 = { type: 'NS', key: key_3, value: value, uri: uri_3, get http() { return _client_2 || (_client_2 = (0, HttpClientNs_1.HttpClientNs)({ uri: uri_3, urls: urls, http: http })); }, }; return res_3; } var key = common_1.Schema.Ref.Links.parseKey(args.key).path; var res = { type: 'UNKNOWN', key: key, value: value }; return res; }