npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

myfun

v0.0.11

Published

a js function library

Downloads

6

Readme

安裝

npm i myfun

文件結構

  • src 源碼目錄
    • common 一些項目內部使用的模塊
      • index.ts 這個文件, 由於 部分 內部模塊的 實用性較高, 因此, 在這裡統一定義對外暴露
    • lib 對外暴露的函數庫, 所有可用函數的源碼所在
    • test 測試文件
  • dist 生產版本代碼目錄
    • myfun.min.js 經過壓縮的項目代碼

文檔

  • toFormData (data: object = {}): FormData

    • JSON 轉 FormData 的 函數
    • 接受一個 object 對象, 返回一個 FormData 對象
    • 將 JSON 轉爲 FormData 格式的 數據
      • 用於 AJAX 請求發送數據 爲 [object, object] (封裝的函數沒有進行深拷貝複製, 微信小程序便是如此),
      • 亦或者 後端程序員 不懂得(─.─||) 如何處理 JSON 字符串 的 情況
    • 參數
      • data, 必填, 一個 JSON 格式的 對象
    • 返回值
      • 一個 formData 對象
    • toFormData.wx(data: object = {}): object
      • 微信小程序沒有 FormData 對象,
      • 調用 toFormData 的 靜態方法 wx, 便可用於 微信小程序
      • 參數
        • data, 必填, 一個 JSON 格式的 對象
      • 返回值
        • object, 一個經過深拷貝處理, 可以被微信小程序解析爲一般 formData 的 object 對象
  • cookie

    • 對象實例
      • 提供一系列方法, 對 cookie 進行操作
    • units
      • readonly(只讀屬性), [ object, TimeUnit { day: 1440, hour: 60,minute: 1 } ]
      • 值爲一個 { day: 1440, hour: 60, minute: 1 } 對象, 用於設置 timeUnit 屬性
    • timeUnit
      • 屬性, [number, enum TimeUnit { day = 1440, hour = 60,minute = 1 }]
      • 值爲 number 類型, 爲 day = 1440, hour = 60,minute = 1, 三者其中之一,
      • 建議通過 units 屬性 進行設置
      • 用於定義 set() 方法 的 deadline 參數
    • set (key: string, value: string, deadline: number = 1440, path: string = '/')
      • 設置 cookie 的方法
      • key, 必填, cookie 的 名
      • value, 必填, cookie 的 值
      • deadline, 可選, cookie 的 期限時間, 默認單位爲-天 , 默認值爲 1天,
        • 單位可以 timeUnit 屬性進行修改設置
      • path, 可選, cookie 生效的頁面路径, 默認爲 '/'
    • get (key: string): string | null
      • 獲取 cookie 的方法
      • 獲取 對應 名字 的 cookie 值, 返回一個字符串, 獲取不到便返回 null
      • key, 必填, cookie 的 名
    • delete (key: string)
      • 刪除對應 鍵名 的 cookie
      • key, 必填, 要移除的 cookie 名
    • getAll (): object
      • 獲取 所有的 cookie, 返回一個 對象類型的 數據
  • toLocaleString(t: Date | string | number, format: string = 'YYYY-MM-DD hh:mm:ss', zeroPad: boolean = true): string

    • 格式化時間的函數
    • 參數
      • t, 必填, 一個符合 new Date() 構造函數規範 的 參數, 可以是 Date 類型, 日期字符串, 或者 時間戳
      • format, 可選, 時間的格式, 可包含 YYYY(年) | MM(月) | DD(日) | hh(時) | mm(分) | ss(秒),
      • zeroPad, 可選, 補零(日期時間值不滿10), 用於決定是否補零
    • 返回值
      • 一個格式化了的日期字符串
  • compressImg (args: Args, callback?: Function): Promise< object > | null

    • 圖片壓縮函數
    • 參數
      • args,
        • fileName: string, 必填, 壓縮後的文件名
        • src?: string, 和 file 二選一, 圖片路徑
        • file?: File, 和 src 二選一, 圖片文件
        • quality?: 可選, number 壓縮的圖片質量, 取值範圍 0 到 1, 默認 0.1, 以實現最大程度壓縮圖片
      • callback
        • 可選, 回調函數, 接受處理完的結果
        • 如果不傳, 則默認返回 promise 對象, 後續 通過 then 函數 或者 async/await 取得處理完的結果
      • 返回值
        • callback 參數存在, 即 返回 null
        • 否則, 返回 promise 對象
  • fileHandler

    • 對象實例
      • 提供處理文件的一些方法
      • 注: 該模塊, 最好在支持 Promise 對象 的 環境中 使用
    • fileToBase64 (file: File): Promise< string >
      • 文件 轉 base64 的方法
      • 參數
        • file, 必填 文件對象
      • 返回值
        • 一個 promise 對象, 響應處理結果(一個 base64 字符串)
    • base64ToFile (dataurl: string, fileName: string)
      • base64 轉 文件 的方法
      • 參數
        • dataurl, 必填, 要轉譯的 base64 字符串
        • fileName, 必填, 轉譯完的文件名
  • I18N

    • 類, Class
      • 用於項目國際化多語言配置
    • constructor (langStrings: object, lang?: string)
      • 構造函數,
      • langStrings, 必填, 語言配置對象
      • lang, 可選, 默認顯示的語言, 不填則使用 langStrings 首個屬性
    • 例如
        let langStrings = {
            cn: {
                "哇哈哈": '哇哈哈',
                "请输入链接": '请输入链接',
            },
            en: {
                "哇哈哈": 'wahaha',
                "请输入链接": 'place input url',
            },
        }
        let i18n = new I18N(langStrings)
        console.log(i18n.lang) // cn
        // ------
        let i18n = new I18N(langStrings, 'en')
        console.log(i18n.lang) // en
    • lang(屬性), string
      • 當前使用的語言版本, 通過更改此屬性, 更換語言版本
    • langStrings(屬性), object
      • 所有版本語言要翻譯的字段對象, 即爲構造函數傳入的那個對象
    • langs(屬性), Array<string>
      • 所有語言的標記字符串, 實爲 langStrings 對象的各個屬性名, 值用於設置 lang 屬性
    • strings(屬性), object
      • 要翻譯的字段名, 這是一個鍵值對完全一致的對象, 建議使用此對象的值作爲 getText() 方法 的參數
    • getText (key: string): string
      • 通過此方法, 獲取當前語言對應字段的文本
      • key, string, 要獲取的文本其對應的字段名
        • 建議使用 I18N 實例屬性 strings 屬性的值, 當然也允許直接傳入有效字符串, 如果傳入的字符串不存在, 則會報錯
        // 接上一個例子
        i18n.lang = 'en'
        i18n.getText(i18n.string.哇哈哈) // wahaha
        // 等同於
        i18n.getText('哇哈哈') // wahaha
        //報錯
        i18n.getText('哇哈哈555') // 哇哈哈555 is invalid value

項目倉庫