typespec-bdd
Version:
BDD framework for TypeScript.
64 lines • 2.48 kB
JavaScript
(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