nodejs

大约 1 分钟

nodejs

添加jsdoc的type提示

/** @type {import('@sveltejs/kit').Config} */

js

https://github.com/vangleer/vangleopen in new window

nodejs颜色文字

let tty = require("tty")

let isColorSupported =
 !("NO_COLOR" in process.env || process.argv.includes("--no-color")) &&
 ("FORCE_COLOR" in process.env ||
  process.argv.includes("--color") ||
  process.platform === "win32" ||
  (tty.isatty(1) && process.env.TERM !== "dumb") ||
  "CI" in process.env)

let formatter =
 (open, close, replace = open) =>
 input => {
  let string = "" + input
  let index = string.indexOf(close, open.length)
  return ~index
   ? open + replaceClose(string, close, replace, index) + close
   : open + string + close
 }

let replaceClose = (string, close, replace, index) => {
 let start = string.substring(0, index) + replace
 let end = string.substring(index + close.length)
 let nextIndex = end.indexOf(close)
 return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end
}

let createColors = (enabled = isColorSupported) => ({
 isColorSupported: enabled,
 reset: enabled ? s => `\x1b[0m${s}\x1b[0m` : String,
 bold: enabled ? formatter("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m") : String,
 dim: enabled ? formatter("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m") : String,
 italic: enabled ? formatter("\x1b[3m", "\x1b[23m") : String,
 underline: enabled ? formatter("\x1b[4m", "\x1b[24m") : String,
 inverse: enabled ? formatter("\x1b[7m", "\x1b[27m") : String,
 hidden: enabled ? formatter("\x1b[8m", "\x1b[28m") : String,
 strikethrough: enabled ? formatter("\x1b[9m", "\x1b[29m") : String,
 black: enabled ? formatter("\x1b[30m", "\x1b[39m") : String,
 red: enabled ? formatter("\x1b[31m", "\x1b[39m") : String,
 green: enabled ? formatter("\x1b[32m", "\x1b[39m") : String,
 yellow: enabled ? formatter("\x1b[33m", "\x1b[39m") : String,
 blue: enabled ? formatter("\x1b[34m", "\x1b[39m") : String,
 magenta: enabled ? formatter("\x1b[35m", "\x1b[39m") : String,
 cyan: enabled ? formatter("\x1b[36m", "\x1b[39m") : String,
 white: enabled ? formatter("\x1b[37m", "\x1b[39m") : String,
 gray: enabled ? formatter("\x1b[90m", "\x1b[39m") : String,
 bgBlack: enabled ? formatter("\x1b[40m", "\x1b[49m") : String,
 bgRed: enabled ? formatter("\x1b[41m", "\x1b[49m") : String,
 bgGreen: enabled ? formatter("\x1b[42m", "\x1b[49m") : String,
 bgYellow: enabled ? formatter("\x1b[43m", "\x1b[49m") : String,
 bgBlue: enabled ? formatter("\x1b[44m", "\x1b[49m") : String,
 bgMagenta: enabled ? formatter("\x1b[45m", "\x1b[49m") : String,
 bgCyan: enabled ? formatter("\x1b[46m", "\x1b[49m") : String,
 bgWhite: enabled ? formatter("\x1b[47m", "\x1b[49m") : String,
})

module.exports = createColors()
module.exports.createColors = createColors

js export用法

// xxx.js
export const Aa = "a"
export const Bb = 111
export default = [1,2,3]
//下面是用法

import {Aa,Bb} from './xxx'

会把 xxx 中所有的非default导出

//useLocal.ts
export function useLocalStore(){
    console.log("useLocal")
}
//useOnline.ts
export function useOnline(options: ConfigurableWindow = {}) {
  const { isOnline } = useNetwork(options)
  return isOnline
}
//index.ts
export * from './useLocal'
export * from './useOnline'
// 无法在外部 import {default} from "xxx"
//下面是用法

import {useLocalStore,useOnline} from '@vueuse/core'