UNPKG

3.14 kBJavaScriptView Raw
1"use strict";
2var __extends = (this && this.__extends) || (function () {
3 var extendStatics = function (d, b) {
4 extendStatics = Object.setPrototypeOf ||
5 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7 return extendStatics(d, b);
8 };
9 return function (d, b) {
10 extendStatics(d, b);
11 function __() { this.constructor = d; }
12 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13 };
14})();
15var __importDefault = (this && this.__importDefault) || function (mod) {
16 return (mod && mod.__esModule) ? mod : { "default": mod };
17};
18Object.defineProperty(exports, "__esModule", { value: true });
19var isUrlRe = /^(?:https?:)?\/\//i;
20var url_1 = __importDefault(require("url"));
21var request;
22var abstract_file_manager_js_1 = __importDefault(require("../less/environment/abstract-file-manager.js"));
23var logger_1 = __importDefault(require("../less/logger"));
24var UrlFileManager = /** @class */ (function (_super) {
25 __extends(UrlFileManager, _super);
26 function UrlFileManager() {
27 return _super !== null && _super.apply(this, arguments) || this;
28 }
29 UrlFileManager.prototype.supports = function (filename, currentDirectory, options, environment) {
30 return isUrlRe.test(filename) || isUrlRe.test(currentDirectory);
31 };
32 UrlFileManager.prototype.loadFile = function (filename, currentDirectory, options, environment) {
33 return new Promise(function (fulfill, reject) {
34 if (request === undefined) {
35 try {
36 request = require('native-request');
37 }
38 catch (e) {
39 request = null;
40 }
41 }
42 if (!request) {
43 reject({ type: 'File', message: 'optional dependency \'native-request\' required to import over http(s)\n' });
44 return;
45 }
46 var urlStr = isUrlRe.test(filename) ? filename : url_1.default.resolve(currentDirectory, filename);
47 /** native-request currently has a bug */
48 var hackUrlStr = urlStr.indexOf('?') === -1 ? urlStr + '?' : urlStr;
49 request.get(hackUrlStr, function (error, body, status) {
50 if (status === 404) {
51 reject({ type: 'File', message: "resource '" + urlStr + "' was not found\n" });
52 return;
53 }
54 if (error) {
55 reject({ type: 'File', message: "resource '" + urlStr + "' gave this Error:\n " + error + "\n" });
56 return;
57 }
58 if (!body) {
59 logger_1.default.warn("Warning: Empty body (HTTP " + status + ") returned by \"" + urlStr + "\"");
60 }
61 fulfill({ contents: body, filename: urlStr });
62 });
63 });
64 };
65 return UrlFileManager;
66}(abstract_file_manager_js_1.default));
67exports.default = UrlFileManager;
68//# sourceMappingURL=url-file-manager.js.map
\No newline at end of file