mirror of
https://github.com/netbirdio/docs.git
synced 2026-04-16 15:36:36 +00:00
43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import * as _ from 'lodash'
|
|
import * as fs from 'fs'
|
|
|
|
export const slugify = (text: string) => {
|
|
if (!text) return ''
|
|
return text
|
|
.toString()
|
|
.toLowerCase()
|
|
.replace(/[. )(]/g, '-') // Replace spaces and brackets -
|
|
.replace(/[^\w\-]+/g, '') // Remove all non-word chars
|
|
.replace(/\-\-+/g, '-') // Replace multiple - with single -
|
|
.replace(/^-+/, '') // Trim - from start of text
|
|
.replace(/-+$/, '') // Trim - from end of text
|
|
}
|
|
|
|
// Uppercase the first letter of a string
|
|
export const toTitle = (text: string) => {
|
|
return text.charAt(0).toUpperCase() + text.slice(1)
|
|
}
|
|
|
|
/**
|
|
* writeToDisk()
|
|
*/
|
|
export const writeToDisk = (fileName: string, content: any) => {
|
|
return new Promise((resolve, reject) => {
|
|
fs.writeFile(fileName, content, (err: any) => {
|
|
if (err) return reject(err)
|
|
else return resolve(true)
|
|
})
|
|
})
|
|
}
|
|
|
|
/**
|
|
* Convert Object to Array of values
|
|
*/
|
|
export const toArrayWithKey = (obj: object, keyAs: string) =>
|
|
_.values(
|
|
_.mapValues(obj, (value: any, key: string) => {
|
|
value[keyAs] = key
|
|
return value
|
|
})
|
|
)
|