@platform/react.ssr
Version:
A lightweight SSR (server-side-rendering) system for react apps bundled with ParcelJS and hosted on S3.
39 lines (38 loc) • 1.2 kB
JavaScript
import { jsYaml, fs, log, semver } from './libs';
export const asString = (value) => (typeof value === 'string' ? value : '').trim();
export function parseYaml(text) {
try {
const data = jsYaml.safeLoad(text);
return { ok: true, data };
}
catch (error) {
return { ok: false, error };
}
}
export function stripHttp(input) {
return asString(input)
.replace(/^https/, '')
.replace(/^http/, '')
.replace(/^\:\/\//, '');
}
export function stripSlashes(input) {
return asString(input)
.replace(/^\/*/, '')
.replace(/\/*$/, '');
}
export function formatPath(path) {
const file = fs.basename(path);
const dir = fs.dirname(path);
return log.gray(`${dir}/${log.cyan(file)}`);
}
export function firstSemver(...versionOrPath) {
const values = versionOrPath
.filter(value => typeof value === 'string')
.map(value => value.trim())
.filter(value => Boolean(value))
.map(value => fs.basename(value));
return values.find(value => semver.valid(value));
}
export function isDomainRegex(domain) {
return domain ? domain.startsWith('/') && domain.endsWith('/') : false;
}