UNPKG

mockttp

Version:

Mock HTTP server for testing HTTP clients and stubbing webservices

37 lines (31 loc) 1.22 kB
import { Buffer } from 'buffer'; export function nthIndexOf(input: string, matcher: string, n: number) { let index = -1; while (n > 0) { n = n - 1; index = input.indexOf(matcher, index + 1); if (index === -1) break; } return index; } // Get the length of the given data in bytes, not characters. // If that's a buffer, the length is used raw, but if it's a string // it returns the length when encoded as UTF8. export function byteLength(input: string | Uint8Array | Buffer) { if (typeof input === 'string') { return isNode ? Buffer.from(input, 'utf8').byteLength : new Blob([input]).size; } else { return input.length; } } declare const WorkerGlobalScope: Function | undefined; export const isWorker = typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; export const isWeb = typeof Window !== 'undefined' && self instanceof Window; export const isNode = !isWorker && !isWeb && typeof process === 'object' && process.version; export const makePropertyWritable = <T>(obj: T, property: keyof T) => Object.defineProperty(obj, property, { value: obj[property], writable: true });