day 11
This commit is contained in:
Executable
+67
@@ -0,0 +1,67 @@
|
||||
const fs = require('fs')
|
||||
const path = require('path')
|
||||
const sanitizeHtml = require('sanitize-html')
|
||||
|
||||
module.exports = {
|
||||
filterEmptyFields(object) {
|
||||
Object.keys(object).forEach((key) => {
|
||||
if (this.empty(object[key])) {
|
||||
delete object[key]
|
||||
}
|
||||
})
|
||||
return object
|
||||
},
|
||||
empty(value) {
|
||||
return value === ''
|
||||
},
|
||||
getMappingKey(mappingFunction, value) {
|
||||
return Object.keys(mappingFunction()).find(
|
||||
(key) => mappingFunction()[key].toLowerCase() === value.toLowerCase()
|
||||
)
|
||||
},
|
||||
checkFor(requiredFields) {
|
||||
for (const [key, value] of Object.entries(requiredFields)) {
|
||||
if (!value) {
|
||||
throw new Error(`Must provide ${key}`)
|
||||
}
|
||||
}
|
||||
return true
|
||||
},
|
||||
convertToCents(amount) {
|
||||
return parseFloat(amount) * 100
|
||||
},
|
||||
convertFromCents(amount) {
|
||||
return parseFloat(amount) / 100
|
||||
},
|
||||
inject_substitute(text, normalKey, value) {
|
||||
text = text.replace(new RegExp('{{{' + normalKey + '}}}', 'g'), value)
|
||||
return text
|
||||
},
|
||||
createDirectoriesRecursive(filePath) {
|
||||
let fileDirectoryPath = path.dirname(filePath)
|
||||
if (!fs.existsSync(fileDirectoryPath)) {
|
||||
fs.mkdirSync(fileDirectoryPath, { recursive: true })
|
||||
}
|
||||
},
|
||||
sanitizeInputs(body) {
|
||||
if (Array.isArray(body)) {
|
||||
body.forEach((item) => {
|
||||
item = sanitizeHtml(item)
|
||||
})
|
||||
return body
|
||||
}
|
||||
if (this.isObject(body)) {
|
||||
Object.keys(body).forEach((key) => {
|
||||
body[key] = sanitizeHtml(body[key])
|
||||
})
|
||||
return body
|
||||
}
|
||||
return sanitizeHtml(body)
|
||||
},
|
||||
isObject(obj) {
|
||||
return obj === Object(obj)
|
||||
},
|
||||
ucFirst(string) {
|
||||
return string.charAt(0).toUpperCase() + string.slice(1)
|
||||
},
|
||||
}
|
||||
Reference in New Issue
Block a user