1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.FilePath = void 0;
|
4 | var Uri_1 = require("../Uri");
|
5 | var Url_1 = require("../Url");
|
6 | exports.FilePath = {
|
7 | fromUrl: function (input) {
|
8 | input = (input || '').trim();
|
9 | var parsed = Url_1.Url.parse(input);
|
10 | var parts = parsed.path.replace(/^\/*/, '').split('/');
|
11 | var path = '';
|
12 | var dir = '';
|
13 | var filename = '';
|
14 | var error = '';
|
15 | if (!Uri_1.Uri.is.cell(parts[0])) {
|
16 | error = 'The path does not start with a cell URI';
|
17 | }
|
18 | if (!error && parts[1] !== 'fs') {
|
19 | error = 'not a file-system path (eg "/cell:foo:A1/fs/filename")';
|
20 | }
|
21 | if (!error && parts.length > 2) {
|
22 | parts = parts.slice(2);
|
23 | path = parts.join('/');
|
24 | dir = parts.slice(0, parts.length - 1).join('/');
|
25 | filename = parts[parts.length - 1];
|
26 | }
|
27 | return {
|
28 | ok: !Boolean(error),
|
29 | path: path,
|
30 | dir: dir,
|
31 | filename: filename,
|
32 | error: error ? error : undefined,
|
33 | toString: function () { return parsed.path; },
|
34 | };
|
35 | },
|
36 | };
|