Skip to content

10play/dexie-logger

Repository files navigation

Stargazers Issues MIT License

10Play - Dexie Logger

dexie logger logo

About the project

This project created while working with dexie, from the need to better debugging tool

Getting Started

Installation

To install the package use:

    yarn add dexie-logger

OR

    npm install dexie-logger

Usage

To add the logger to your DB, simply apply it as a middleware

// Import the logger
import logger from "dexie-logger";

// Apply the logger
db.use(logger());

More options

when creating the logger you can git it some params

  • either tableWhiteList or tablesBlackList, Those receive a list with table names to white list / black list

  • either operationsWhiteList or operationsBlackList, same as for tables but receives dexie operations names: mutate, get, getMany, query, openCursor, count

  • logType that can be either Minimal or Default to control the logs

Advanced example

// Import the logger
import logger from "dexie-logger";

// Apply the logger
db.use(
  logger({
    tableWhiteList: ["events", "users"],
    operationsWhiteList: ["mutate", "query"],
    logType: LogType.Minimal
  })
);

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

You can test and validate your changes with the Demo

Ideas + next steps

  • Add dev tool ui cmopoent
    • Show log history
    • modify logs from ui
  • pass custom loggerCallbacks in the dexie-logger props: dexieLogger({ customCallbacks: { get: ... } })
  • Add logs for transactions
    • enable and disable from props
    • create shortcut key for transaction (for redability)
    • log the transaction time, included operations, and eache oparation time
  • "score" oparations by time, and add color to the logs (Green = realy fast, Red = realy slow)
  • improve readme
  • Tests

License

Distributed under the MIT License. See LICENSE.txt for more information.