Nonviolent Pigeon Manifestation

    yt-quota-manager

    1.0.2 • Public • Published

    QuotaManager

    Example

    const QuotaManager = require("QuotaManager");
    const Quota = new QuotaManager(10000, "Quotausage.json");
    Quota.use("videos.insert");

    QuotaManager~QuotaManager

    Kind: inner class of QuotaManager

    new QuotaManager(quota, fileName)

    Param Type Default
    quota number 10000
    fileName string "QuotaUsage.json"

    quotaManager.fileName

    Represents the File destination where Quota usage stats will be stored

    Kind: instance property of QuotaManager

    quotaManager.quota

    Total Quota Available

    Kind: instance property of QuotaManager

    quotaManager.left

    Total Quota Left

    Kind: instance property of QuotaManager

    quotaManager.initTime

    The Time when quota was created

    Kind: instance property of QuotaManager

    quotaManager.clock

    Current Running clock Time in miliseconds

    Kind: instance property of QuotaManager

    quotaManager.clockInterval

    The setInterval thats runs evry half a second( 50ms ) and updates the time

    Kind: instance property of QuotaManager

    quotaManager.usage

    Quota Usage Data

    Kind: instance property of QuotaManager

    quotaManager.local

    A copy of Local JSON Data

    Kind: instance property of QuotaManager

    quotaManager.usageValues

    The Usage Values of how much quota it will consume per trype of request

    Kind: instance property of QuotaManager

    quotaManager.use() ⇒ boolean

    Use the use() method to log the consumption of quota

    Kind: instance method of QuotaManager
    Returns: boolean - whether the quota is consumed or not

    Param Type
    "{requestName}.{MethodName}" string

    Example

    new QuotaManager(10000, "QuotaUsage.json").use("videos.insert");
    new QuotaManager(10000, "QuotaUsage.json").use("thumbnails.set");
    new QuotaManager(10000, "QuotaUsage.json").use("watermarks.set");

    quotaManager.canRun() ⇒ boolean

    Checks whether you can perform a specific api action using your current quota

    Kind: instance method of QuotaManager
    Returns: boolean - whether you can run the action or not

    Param Type
    "{requestName}.{MethodName}" string

    Example

    new QuotaManager(10000, "QuotaUsage.json").canRun("videos.insert");

    Example

    new QuotaManager(10000, "QuotaUsage.json").canRun("thumbnails.set");

    quotaManager.checkQuota()

    Internal Method that checks for Quota Renewablity i.e whether its next day

    Kind: instance method of QuotaManager
    Example

    new QuotaManager(10000, "QuotaUsage.json").checkQuota;

    quotaManager.reset()

    Resets the Quota back to default values and clears the usage

    Kind: instance method of QuotaManager
    Example

    new QuotaManager(10000, "QuotaUsage.json").reset();

    quotaManager.localSync()

    Syncs the Quota Usage data to a local json file

    Kind: instance method of QuotaManager
    Example

    new QuotaManager(10000, "QuotaUsage.json").localSync();

    QuotaManager~{function} localSync - Syncs the local copy of usage with current usage()

    Manages and keep track of Data

    Kind: inner method of QuotaManager
    Author: Arnav Kumar
    Properties

    Name Type Description
    fileName string Name of the file to be used for local storage
    quota number Full Quota
    left number Current Left Quota
    initTime number The Time at whick quota was created (in miliseconds)
    clock number Current Time (in miliseconds)
    usage object Usage of the Quota
    local object Local copy of usage
    usageValues object Object containing the values of quota consumed each type of operation

    Example

    const Quota = new QuotaManager();
    Quota.use("videos.insert");
    Quota.use("videos.insert");
    Quota.use("videos.update");
    Quota.use("videos.delete");
    Quota.use("watermarks.set");
    Quota.use("videos.insert");
    Quota.reset();
    Quota.use("videos.insert");

    Install

    npm i yt-quota-manager

    DownloadsWeekly Downloads

    1

    Version

    1.0.2

    License

    MIT

    Unpacked Size

    26.5 kB

    Total Files

    4

    Last publish

    Collaborators

    • arnavkr