UNPKG

typespec-bdd

Version:

BDD framework for TypeScript.

64 lines 2.48 kB
(function (factory) { if (typeof module === "object" && typeof module.exports === "object") { var v = factory(require, exports); if (v !== undefined) module.exports = v; } else if (typeof define === "function" && define.amd) { define(["require", "exports"], factory); } })(function (require, exports) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); class FileReader { static getInstance(testReporter) { if (typeof window !== 'undefined') { return new BrowserFileReader(testReporter); } return new NodeFileReader(testReporter); } } exports.FileReader = FileReader; class BrowserFileReader extends FileReader { constructor(testReporter) { super(); this.testReporter = testReporter; } getFile(url, successCallback) { const cacheBust = '?cb=' + new Date().getTime(); const client = new XMLHttpRequest(); client.open('GET', url + cacheBust); client.onreadystatechange = () => { if (client.readyState === 4) { if (client.status === 200) { successCallback(client.responseText); } else { this.testReporter.error('getFile', url, new Error(`Error loading specification: ${client.statusText} (${client.status}).`)); } } }; client.send(); } } exports.BrowserFileReader = BrowserFileReader; class NodeFileReader extends FileReader { constructor(testReporter) { super(); this.testReporter = testReporter; } getFile(url, successCallback) { let fs = require('fs'); let path = require('path'); // Make the path relative in Node's terms and resolve it const resolvedUrl = path.resolve('.' + url); fs.readFile(resolvedUrl, 'utf8', (err, data) => { if (err) { this.testReporter.error('getNodeFile', url, new Error(`Error loading specification: ${err}).`)); } successCallback(data); }); } } exports.NodeFileReader = NodeFileReader; }); //# sourceMappingURL=FileSystem.js.map