1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.FileLinks = void 0;
|
4 | var tslib_1 = require("tslib");
|
5 | var common_1 = require("../common");
|
6 | var Uri_1 = require("../Uri");
|
7 | var Links_1 = require("../Links");
|
8 | var prefix = 'fs';
|
9 | var fs = Links_1.Links.create(prefix);
|
10 | exports.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 | };
|