UNPKG

2.92 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.FileLinks = void 0;
4var tslib_1 = require("tslib");
5var common_1 = require("../common");
6var Uri_1 = require("../Uri");
7var Links_1 = require("../Links");
8var prefix = 'fs';
9var fs = Links_1.Links.create(prefix);
10exports.FileLinks = {
11 prefix: prefix,
12 is: {
13 fileKey: function (input) {
14 return fs.isKey(input);
15 },
16 fileValue: function (input) {
17 input = (input || '').toString().trim();
18 return Uri_1.Uri.is.file(input);
19 },
20 fileUploading: function (value) {
21 if (!exports.FileLinks.is.fileValue(value)) {
22 return false;
23 }
24 value = (value || '').toString().trim();
25 var query = (value.split('?')[1] || '').toLowerCase();
26 return query.includes('status=uploading');
27 },
28 },
29 total: function (links) {
30 if (links === void 0) { links = {}; }
31 return fs.total(links);
32 },
33 toKey: function (filename) {
34 return fs.toKey(filename);
35 },
36 parseKey: function (linkKey) {
37 return fs.parseKey(linkKey);
38 },
39 parseValue: function (linkValue) {
40 if (!exports.FileLinks.is.fileValue(linkValue)) {
41 throw new Error("Cannot parse '" + linkValue + "' as it is not a file URI.");
42 }
43 var res = fs.parseValue(linkValue);
44 var toString = function (options) {
45 if (options === void 0) { options = {}; }
46 var _a = res.query, status = _a.status, hash = _a.hash;
47 var query = common_1.queryString
48 .build({ allowNil: false })
49 .add('status', options.status === null ? null : options.status || status)
50 .add('hash', options.hash === null ? null : options.hash || hash)
51 .toString();
52 return "" + res.uri.toString() + query;
53 };
54 return tslib_1.__assign(tslib_1.__assign({}, res), { toString: toString });
55 },
56 parse: function (linkKey, linkValue) {
57 var key = exports.FileLinks.parseKey(linkKey);
58 var value = exports.FileLinks.parseValue(linkValue);
59 var toString = value.toString;
60 return tslib_1.__assign(tslib_1.__assign(tslib_1.__assign({}, key), value), { toString: toString });
61 },
62 toList: function (links) {
63 if (links === void 0) { links = {}; }
64 return fs.toList(links).map(function (_a) {
65 var key = _a.key, value = _a.value;
66 return exports.FileLinks.parse(key, value);
67 });
68 },
69 find: function (links) {
70 if (links === void 0) { links = {}; }
71 return {
72 byName: function (path) {
73 var match = fs.find(links).byName(path);
74 return match ? exports.FileLinks.parse(match.key, match.value) : undefined;
75 },
76 };
77 },
78};