mockaton
Version:
HTTP Mock Server
25 lines (20 loc) • 563 B
JavaScript
// @KeepSync src/server/Filename.js
const reComments = /\(.*?\)/g // Anything within parentheses
export function extractComments(file) {
return Array.from(file.matchAll(reComments), ([c]) => c)
}
export function parseFilename(file) {
const tokens = file.replace(reComments, '').split('.')
return {
ext: tokens.pop(),
status: Number(tokens.pop()),
method: tokens.pop(),
urlMask: '/' + removeTrailingSlash(tokens.join('.'))
}
}
function removeTrailingSlash(url = '') {
return url
.replace(/\/$/, '')
.replace('/?', '?')
.replace('/#', '#')
}