return rootPath
}
-// Thanks: https://stackoverflow.com/a/12034334
-function escapeHTML (stringParam) {
- if (!stringParam) return ''
-
- const entityMap = {
- '&': '&',
- '<': '<',
- '>': '>',
- '"': '"',
- '\'': ''',
- '/': '/',
- '`': '`',
- '=': '='
- }
-
- return String(stringParam).replace(/[&<>"'`=/]/g, s => entityMap[s])
-}
-
function pageToStartAndCount (page: number, itemsPerPage: number) {
const start = (page - 1) * itemsPerPage
}
}
+type SemVersion = { major: number, minor: number, patch: number }
+function parseSemVersion (s: string) {
+ const parsed = s.match(/^v?(\d+)\.(\d+)\.(\d+)$/i)
+
+ return {
+ major: parseInt(parsed[1]),
+ minor: parseInt(parsed[2]),
+ patch: parseInt(parsed[3])
+ } as SemVersion
+}
+
const randomBytesPromise = promisify1<number, Buffer>(randomBytes)
const createPrivateKey = promisify1<number, { key: string }>(pem.createPrivateKey)
const getPublicKey = promisify1<string, { publicKey: string }>(pem.getPublicKey)
objectConverter,
root,
- escapeHTML,
pageToStartAndCount,
sanitizeUrl,
sanitizeHost,
getPublicKey,
execPromise2,
execPromise,
- pipelinePromise
+ pipelinePromise,
+
+ parseSemVersion
}