26 lines
556 B
JavaScript
26 lines
556 B
JavaScript
const parseNet = /^tcp:\/\/([^\/:]+)(?::(\d+))?\/?$/i;
|
|
const parsePrinter = /^printer:([^\/]+)(?:\/([\w-]*))?$/i;
|
|
|
|
function getInterface(uri) {
|
|
if (typeof uri === "object") {
|
|
return uri;
|
|
}
|
|
|
|
const net = parseNet.exec(uri);
|
|
if (net) {
|
|
const Mod = require('./net');
|
|
return new Mod(net[1], net[2]);
|
|
}
|
|
|
|
const printer = parsePrinter.exec(uri);
|
|
if (printer) {
|
|
const Mod = require('./printer');
|
|
return new Mod(printer[1], printer[2]);
|
|
}
|
|
|
|
const Mod = require('./file');
|
|
return new Mod(uri);
|
|
}
|
|
|
|
module.exports = getInterface;
|