Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 53 additions & 18 deletions types/bytes/bytes-tests.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,56 @@
import bytes = require("bytes");
import { BytesOptions, Unit } from "bytes";

bytes(104857);
bytes(104857, { thousandsSeparator: " " });
bytes(104857, { decimalPlaces: 2 });
bytes(104857, { fixedDecimals: true });
bytes(104857, { unitSeparator: "-" });
bytes(104857, { unit: "GB" });
bytes(104857, { unit: "B" });

bytes.format(104857);
bytes.format(104857, { thousandsSeparator: " " });
bytes.format(104857, { decimalPlaces: 2 });
bytes.format(104857, { fixedDecimals: true });
bytes.format(104857, { unitSeparator: "-" });
bytes.format(104857, { unit: "GB" });
bytes.format(104857, { unit: "pb" });

bytes("1024kb");
bytes.parse("1024kb");
const options: BytesOptions = {
decimalPlaces: 2,
thousandsSeparator: ",",
unitSeparator: " ",
fixedDecimals: false,
unit: "MB",
};

// $ExpectType string | null
bytes(1024);

// $ExpectType string | null
bytes(1024, options);

// $ExpectType string | null
bytes(1024, { decimalPlaces: 0, fixedDecimals: true });

// $ExpectType number | null
bytes("1KB");

// $ExpectType number | null
bytes("10.5 MB");

// $ExpectType number | null
bytes.parse("100GB");

// $ExpectType number | null
bytes.parse("1024");

// $ExpectType number | null
bytes.parse(1024);

// $ExpectType string | null
bytes.format(1024);

// $ExpectType string | null
bytes.format(1024 * 1024, options);

// $ExpectType string | null
bytes.format(1024 * 1024 * 1024, { unit: "GB", unitSeparator: "_" });

const kb: Unit = "KB";
const mb: Unit = "MB";
const gb: Unit = "GB";

// $ExpectType string | null
bytes.format(1000, { unit: kb });

// $ExpectType string | null
bytes.format(1000, { unit: mb });

// $ExpectType string | null
bytes.format(1000, { unit: gb });
37 changes: 37 additions & 0 deletions types/bytes/index.d.ts
Original file line number Diff line number Diff line change
@@ -1,21 +1,51 @@
/**
* Convert the given value in bytes into a string.
*
* @param value Number of bytes to convert.
* @param options Formatting options.
* @returns Formatted string, or null if value is invalid.
*
* @example
* bytes(1024); // '1KB'
* bytes(1000, { thousandsSeparator: ' ' }); // '1 000B'
*/
declare function bytes(value: number, options?: bytes.BytesOptions): string | null;

/**
* Parse string to an integer in bytes.
*
* @param value String representation of bytes to parse.
* @returns Number of bytes, or null if value is invalid.
*
* @example
* bytes('1KB'); // 1024
* bytes('10.5MB'); // 11010048
*/
declare function bytes(value: string): number | null;

declare namespace bytes {
type Unit = "b" | "gb" | "kb" | "mb" | "pb" | "tb" | "B" | "GB" | "KB" | "MB" | "PB" | "TB";

interface BytesOptions {
/**
* Number of decimal places to include. Default is `2`.
*/
decimalPlaces?: number | undefined;
/**
* Whether to format with fixed decimal precision. Default is `false`.
*/
fixedDecimals?: boolean | undefined;
/**
* Thousands separator character (e.g. `','` or `' '`). Default is `''`.
*/
thousandsSeparator?: string | undefined;
/**
* Specific unit to force formatting into (e.g. `'MB'`, `'GB'`). Default is `''`.
*/
unit?: Unit | undefined;
/**
* Separator between the number and metric unit. Default is `''`.
*/
unitSeparator?: string | undefined;
}

Expand All @@ -24,13 +54,20 @@ declare namespace bytes {
*
* If the value is negative, it is kept as such.
* If it is a float, it is rounded.
*
* @param value Number of bytes to format.
* @param options Formatting options.
* @returns Formatted string, or null if value is invalid.
*/
function format(value: number, options?: BytesOptions): string | null;

/**
* Parse the string value into an integer in bytes.
*
* If no unit is given, it is assumed the value is in bytes.
*
* @param value String representation or number to parse.
* @returns Number of bytes, or null if value is invalid.
*/
function parse(value: string | number): number | null;
}
Expand Down
4 changes: 4 additions & 0 deletions types/bytes/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,10 @@
{
"name": "Florian Keller",
"githubUsername": "ffflorian"
},
{
"name": "Semih Gemi",
"githubUsername": "semihgemi"
}
]
}
2 changes: 1 addition & 1 deletion types/mparticle__web-sdk/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ interface Upload {
}

interface GenerateHash {
(value: string): string;
(value: string): number;
}

interface CreateConsentState {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,8 @@ instance.getEnvironment();

instance.getVersion();

const instanceGeneratedHash: number = instance.generateHash("test-string");

instance.init("apiKey", config);
instance.init("apiKey", config, "instance");

Expand Down
2 changes: 1 addition & 1 deletion types/mparticle__web-sdk/test/mparticle__web-sdk-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -269,7 +269,7 @@ mParticle.Rokt.onShoppableAdsReady(() => {
// shoppable ads ready
});

mParticle.generateHash("test-string");
const generatedHash: number = mParticle.generateHash("test-string");

mParticle.ready(() => {
console.log("hi");
Expand Down