UNPKG

1.2 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.FilePath = void 0;
4var Uri_1 = require("../Uri");
5var Url_1 = require("../Url");
6exports.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};