@platform/cell.schema
Version:
URI and database schemas for the `cell.os`.
60 lines (59 loc) • 1.94 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isLocal = exports.isInternalIP = exports.toProtocol = exports.stripSlashEnd = exports.stripSlashStart = exports.stripSlash = exports.stripPort = exports.stripHttp = exports.toPort = void 0;
var common_1 = require("../common");
function toPort(input) {
var text = common_1.R.pipe(stripHttp, stripSlash)(input || '').split(':')[1];
return text === undefined ? undefined : common_1.value.toNumber(text);
}
exports.toPort = toPort;
function stripHttp(input) {
return (input || '')
.trim()
.replace(/^http:\/\//, '')
.replace(/^https:\/\//, '');
}
exports.stripHttp = stripHttp;
function stripPort(input) {
return (input || '').replace(/:\d*$/, '');
}
exports.stripPort = stripPort;
function stripSlash(input) {
return (input || '').replace(/^\/*/, '').replace(/\/*$/, '');
}
exports.stripSlash = stripSlash;
function stripSlashStart(input) {
return (input || '').replace(/^\/*/, '');
}
exports.stripSlashStart = stripSlashStart;
function stripSlashEnd(input) {
return (input || '').replace(/\/*$/, '');
}
exports.stripSlashEnd = stripSlashEnd;
function toProtocol(input) {
input = (input || '').trim();
if (input.startsWith('localhost') && !input.includes('.')) {
return 'http';
}
if (isInternalIP(input)) {
return 'http';
}
return 'https';
}
exports.toProtocol = toProtocol;
function isInternalIP(input) {
var host = common_1.R.pipe(stripHttp, stripSlash)(input || '').split('/')[0] || '';
return host.startsWith('192.168.');
}
exports.isInternalIP = isInternalIP;
function isLocal(input) {
if (isInternalIP(input)) {
return true;
}
var host = stripSlash(stripHttp(input)).split('/')[0] || '';
if (host === 'localhost' || host.startsWith('localhost:')) {
return true;
}
return false;
}
exports.isLocal = isLocal;