UNPKG

@zzznpm/mens

Version:

All about idea management.

76 lines (65 loc) 1.57 kB
// import { v6 as uuidv6 } from 'uuid' import { getConfigDir, getDataDir, random } from 'samael' import base62 from 'base62/lib/ascii.js' import { parse } from 'node-html-parser' import markdownIt from 'markdown-it' import { nanoid } from 'nanoid' import path from 'path' const isTemporary = true const md = markdownIt() export const getRoot = ()=> { return global || window } export const getUUID = ()=> { // return uuidv6() // return getRoot().crypto.randomUUID() return getNanoID() } export const verifyUUID = (uuid)=> { if(uuid.length === 36 || uuid.length === 21){ return true } } export const getTinyID = (isTest = false)=> { // 13 bits const time = new Date().valueOf() if(!isTest){ const x = random(62) return base62.encode(time) + base62.encode(x) } // 10 bits const short = Math.floor(time / 1000) // 6 characters return base62.encode(short) } export const getNanoID = ()=> { return nanoid() } export const md2plain = (mdText)=> { const html = md.render(mdText) const root = parse(html) return root.innerText } export const getLogFilePath = ()=> { let p if(isTemporary){ p = path.join(import.meta.dirname, '../log/') }else{ p = path.join(getDataDir('mens'), 'log/') } // console.log(`[logger][getDataFilePath] log file path: ${p}`) return p } /** * Get the configuration file path. * @returns {string} path */ export const getConfigFilePath = ()=> { let p if(isTemporary){ p = path.join(import.meta.dirname, '../temp/', 'config.toml') }else { p = path.join(getConfigDir('mens'), 'config.toml') } return p }