0.7.5 • Published 11 days ago

power-helper v0.7.5

Weekly downloads
-
License
MIT
Repository
github
Last release
11 days ago

Power Helper 是一套整合了多種 JavaScript 工具的輕量化集成工具,它非常簡潔,並且不需要任何依賴項目。這套工具可以被視為一種較為複雜的 Lodash,它可以支援幾乎所有的 JavaScript 環境。

在開發過程中,我們遵照以下幾點讓開發者能夠獲得最佳的開發體驗:

  • 對產品進行了完整的測試覆蓋,確保產品的可靠性。
  • 提供了完善的中文文件支援,以幫助使用者快速上手。
  • 持續改善程式碼品質,確保產品的可維護性和可擴展性。
  • 為編輯器提供了完整的提示,以幫助使用者更高效地進行開發。
  • 提供了完整的 TypeScript 支援,以幫助使用者更好地進行開發。

安裝

npm

npm install power-helper

yarn

yarn add power-helper

如何使用?

PowerHelper 分成三個區塊,相關敘述如下:

Utils

大多由單純的 Function 組成。

calc - 負責計算的單元。

  • toMs - 將指定時間格式的數值轉換成毫秒。

array - 優雅的 Array 操作。

  • check - 如果 Array 沒有指定的值,加入該值,如果有則移除。
  • unique - 移除 Array 中相同的元素。
  • groups - 將 Array 依照指定數量集成一組。
  • asyncMap - 允許非同步進行的 map。
  • randomPick - 從 Array 中隨機獲取一個值。
  • randomPicks - 從 Array 中隨機獲取指定數量且不重複的值,如果指定數量大於 Array 長度時會傳整組 Array。

detect - 驗證當下的執行環境。

  • inAppBrowser - 是否正在 in app browser 裡面執行,很難覆蓋所有應用範圍,僅供參考使用。
  • inMobile - 是否正在 iOS 或是 Android 系統裡面執行。
  • inIOS - 是否正在 iOS 系統裡面執行。
  • inAndroid - 是否正在 Android 系統裡面執行。
  • inSafari - 是否正在 Safari 瀏覽器裡面執行。

flow - 流程控制的工具。

  • run - 直接運行方法並返回結果。
  • sleep - 停止執行指定時間(毫秒)。
  • randomInt - 求整數範圍內的隨機值。
  • createUuid - 建立一組隨機的 v4 uuid。
  • createWithTsUuid - 建立一組隨機的 v4 uuid,但在前面加上當下的 timestamp(ms)。
  • retry - 優雅的設計有限的重複執行直到成功為止。
  • asyncWhile - 結合非同步與計數的迴圈操作。

json - 優雅的 JSON 格式相關處理。

  • jpjs - 經典的深拷貝方案 JSON.parse(JSON.stringify(data))。
  • nonStrictJSONParse - 執行 JSON Parse,如果失敗回傳空白物件 {}
  • nonStrictJSONStringify - 執行 JSON Stringify,如果失敗回傳字串 '{}'

text - 字串相關的處理。

  • headMatch - Text 開頭是否符合目標。
  • lastMatch - Text 結尾是否符合目標。
  • byteLength - 獲取指定 Text 的 Byte 長度。
  • replaceVar - 複寫 Text 的指定變數。
  • format - 轉換 Text 轉換成指定格式,填入 v 代表映射的值。
  • findMatchOrLast - 將指定文字限縮指定字組中,如果都不符合則返回最後一個字組。。

pick - 精準地提取目標相關資源。

  • ifBad - 值如果是 null | undefined | Error | NaN,則回傳預設值。
  • ifEmpty - 值如果是 null | undefined,則回傳預設值。
  • getType - 比 typeof 回傳更精準的類型。
  • peel - 獲取指定路徑的值,如果值不存在回傳 null
  • vars - 獲取文字裡面的變數列表。

checker - 資料檢查器。

  • inputAccept - 負責檢查檔案是否符合 input tag accept 指定的格式。

element - 優雅的 Dom 操作。

  • importScript - 透過執行階段注入 Javascript Tag,這個方法只允許在 Browser 中執行。
  • importCss - 透過執行階段注入帶 stylesheet 的 Link Tag,這個方法只允許在 Browser 中執行。
  • createAndAppend - 新增並將 Tag Append 至指定 Element,這個方法只允許在 Browser 中執行。

record - 優雅的 Object 操作。

  • omit - 淺拷貝同一份 Object,但忽略掉指定對象。
  • simpleCheckDeepDiff - 簡易比對兩個 Object 是否有差異,有差異回傳 true,僅支援 JSON 的所有型態。
  • setMapValue - 複製指定物件的值到目標 Object 上,並產生一份新的 Object。
  • createStrictObject - 建立一組嚴格檢查、轉譯並實質不能變動的 Object,通常應用在環境變數。
  • promiseAllWithKeys - Promise.all 的鍵值對版本。

Modules

更強大的複合工具。

Log - 可以更多變化的 Log。

Hook - 基於非同步架構的事件。

I18n - 多語系操作系統。

Once - 只會執行一次的非同步事件。

Pool - 輕鬆發出請求與快取請求資料的資料池。

Cache - 可以將指定參數請求進行有期限的固定資料存取。

Asset - 資源載入工具,目的是初始化必要的靜態資源。

Event - 簡單的事件監聽器,可以用來監聽和觸發事件。

Timer - 一組計時器,可以正向也可以反向計時。

Ticker - 就如同 setInterval (實際上也是) 一樣運作,只是你可以監聽好幾組事件。

Loader - 可以搜集並發出多個 Promise 的加載元件。

Debounce - 去抖動功能,當觸發事件後會搜集結果並延遲事件發生,避免頻繁發出請求。

Resource - 更優雅的實現獲取各類靜態資源。

Schedule - 可以建立多個定時執行系統,且能保證不重複執行。

Reactive - 透過輪詢的方法監聽物件有沒有發生變動。

JobsQueue - 有限的批次執行作業。

Exception - 高階的錯誤訊息處理工具。

CacheLite - 指定鍵值並同步的存取,非常近似 Map,但是有 TTL。

Breakpoint - 畫面斷點驗證工具。

Interaction - 建立可監聽、追蹤、可搭配視圖化的訊息整合工具。

StyleString - 方便組合出 HTML Element Style 的工具。

LocalStorage - 協助你在複雜的網頁應用程式中更安全的操作 LocalStorage。

AsyncLocalStorage - 非同步的操作 LocalStorage,有助於擴展更多應用模式。

PromiseOverlap - 控制多次發出相同 Promise 時只獲取第一次或是最後一次的結果。

QueryCollection - 一定時間內蒐集資料並統一發出。

WebSocketClient - 具有重新連線與頻道模式的 WebSocket 模塊,你可以透過 onMessage 監聽伺服器方的訊息,並透過 event system 發送給其他監聽對象。

ElementListenerGroup - 將 element 的 addEventListener 昇華到更好操作的階段。

PreloadPort - 可以預先載入資料並透過 id 傳遞給需要的對象。

Types

將複雜的型態方案進行封裝,提高開發的安全性與效率。

date

pick

string

record

import { TDate, TPick, TRecord, TString } from 'power-helper'

Types 只是一種開發 module 時順手的包裝,想要更強大的表達式可以使用以下套件:

utility-types

ts-essentials

Veriosns

0.6.0

  • 新增 - Websocket 新增 keepAlive 保持連線功能。
  • 修正 - 標準化 Event 相關的 Channel 命名。
  • 修正 - job-queues -> jobs-queue。
  • 優化 - 優化文件。

0.7.0

我們對打包形態和文件進行了調整,可以讓整個開發體驗獲得最佳化。

Breaking Changes
  • CacheLite - expTime 參數改為 ttl。
  • Cache - keepAlive 參數改為 ttl。
0.7.5

11 days ago

0.7.4

12 days ago

0.7.3

27 days ago

0.7.2

3 months ago

0.7.1

3 months ago

0.7.0

3 months ago

0.6.8

4 months ago

0.6.6

4 months ago

0.6.5

7 months ago

0.6.2

10 months ago

0.6.4

9 months ago

0.6.1

11 months ago

0.6.0

12 months ago

0.5.4

1 year ago

0.5.3

1 year ago

0.5.6

1 year ago

0.5.5

1 year ago

0.5.2

1 year ago

0.5.8

1 year ago

0.5.7

1 year ago

0.5.9

1 year ago

0.4.9

1 year ago

0.4.8

1 year ago

0.4.5

1 year ago

0.4.4

1 year ago

0.4.7

1 year ago

0.4.6

1 year ago

0.5.0

1 year ago

0.4.1

2 years ago

0.4.0

2 years ago

0.4.3

2 years ago

0.3.4

2 years ago

0.5.1

1 year ago

0.4.2

2 years ago

0.3.2

2 years ago

0.3.1

2 years ago

0.3.3

2 years ago

0.3.0

2 years ago

0.2.7

2 years ago

0.2.6

2 years ago

0.2.9

2 years ago

0.2.8

2 years ago

0.2.3

2 years ago

0.2.5

2 years ago

0.2.4

2 years ago

0.2.0

2 years ago

0.1.8

2 years ago

0.1.7

2 years ago

0.1.9

2 years ago

0.1.6

2 years ago

0.1.5

2 years ago

0.1.4

2 years ago

0.1.0

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago

0.0.9

2 years ago

0.1.3

2 years ago

0.0.8

2 years ago

0.0.7

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.1

2 years ago