aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/util.exports.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-12-17 12:16:39 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-12-17 12:26:19 -0800
commit8c8accf968e4e108a6fcdaf4158440886cf476d8 (patch)
tree98db842a2c99d0fa06c84b0da7d7bd3d7f5dac07 /src/bun.js/util.exports.js
parent24be0f4fc5c7f8e28021c0827c4c5b0f5f8493e6 (diff)
downloadbun-8c8accf968e4e108a6fcdaf4158440886cf476d8.tar.gz
bun-8c8accf968e4e108a6fcdaf4158440886cf476d8.tar.zst
bun-8c8accf968e4e108a6fcdaf4158440886cf476d8.zip
Use `Buffer.isBuffer` and node:util/types in `util` module
Diffstat (limited to 'src/bun.js/util.exports.js')
-rw-r--r--src/bun.js/util.exports.js635
1 files changed, 635 insertions, 0 deletions
diff --git a/src/bun.js/util.exports.js b/src/bun.js/util.exports.js
new file mode 100644
index 000000000..b6633f9f0
--- /dev/null
+++ b/src/bun.js/util.exports.js
@@ -0,0 +1,635 @@
+var __getOwnPropNames = Object.getOwnPropertyNames;
+var __commonJS = (cb, mod) =>
+ function __require() {
+ return (
+ mod ||
+ (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod),
+ mod.exports
+ );
+ };
+export function isBuffer(value) {
+ return (
+ Buffer.isBuffer(value) ||
+ // incase it ends up as a browserify buffer
+ (typeof arg?.copy === "function" &&
+ typeof arg?.fill === "function" &&
+ typeof arg?.readUInt8 === "function")
+ );
+}
+
+// node_modules/inherits/inherits_browser.js
+var require_inherits_browser = __commonJS({
+ "node_modules/inherits/inherits_browser.js"(exports, module2) {
+ module2.exports = function inherits(ctor, superCtor) {
+ ctor.super_ = superCtor;
+ ctor.prototype = Object.create(superCtor.prototype, {
+ constructor: {
+ value: ctor,
+ enumerable: false,
+ writable: true,
+ configurable: true,
+ },
+ });
+ };
+ },
+});
+
+const exports = {};
+var getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors;
+var formatRegExp = /%[sdj%]/g;
+function format(f) {
+ if (!isString(f)) {
+ var objects = [];
+ for (var i = 0; i < arguments.length; i++) {
+ objects.push(inspect(arguments[i]));
+ }
+ return objects.join(" ");
+ }
+ var i = 1;
+ var args = arguments;
+ var len = args.length;
+ var str = String(f).replace(formatRegExp, function (x2) {
+ if (x2 === "%%") return "%";
+ if (i >= len) return x2;
+ switch (x2) {
+ case "%s":
+ return String(args[i++]);
+ case "%d":
+ return Number(args[i++]);
+ case "%j":
+ try {
+ return JSON.stringify(args[i++]);
+ } catch (_) {
+ return "[Circular]";
+ }
+ default:
+ return x2;
+ }
+ });
+ for (var x = args[i]; i < len; x = args[++i]) {
+ if (isNull(x) || !isObject(x)) {
+ str += " " + x;
+ } else {
+ str += " " + inspect(x);
+ }
+ }
+ return str;
+}
+exports.format = format;
+function deprecate(fn, msg) {
+ if (typeof process !== "undefined" && process.noDeprecation === true) {
+ return fn;
+ }
+ if (typeof process === "undefined") {
+ return function () {
+ return exports.deprecate(fn, msg).apply(this, arguments);
+ };
+ }
+ var warned = false;
+ function deprecated() {
+ if (!warned) {
+ if (process.throwDeprecation) {
+ throw new Error(msg);
+ } else if (process.traceDeprecation) {
+ console.trace(msg);
+ } else {
+ console.error(msg);
+ }
+ warned = true;
+ }
+ return fn.apply(this, arguments);
+ }
+ return deprecated;
+}
+exports.deprecate = deprecate;
+var debugs = {};
+var debugEnvRegex = /^$/;
+if (process.env.NODE_DEBUG) {
+ debugEnv = process.env.NODE_DEBUG;
+ debugEnv = debugEnv
+ .replace(/[|\\{}()[\]^$+?.]/g, "\\$&")
+ .replace(/\*/g, ".*")
+ .replace(/,/g, "$|^")
+ .toUpperCase();
+ debugEnvRegex = new RegExp("^" + debugEnv + "$", "i");
+}
+var debugEnv;
+function debuglog(set) {
+ set = set.toUpperCase();
+ if (!debugs[set]) {
+ if (debugEnvRegex.test(set)) {
+ var pid = process.pid;
+ debugs[set] = function () {
+ var msg = exports.format.apply(exports, arguments);
+ console.error("%s %d: %s", set, pid, msg);
+ };
+ } else {
+ debugs[set] = function () {};
+ }
+ }
+ return debugs[set];
+}
+exports.debuglog = debuglog;
+function inspect(obj, opts) {
+ var ctx = {
+ seen: [],
+ stylize: stylizeNoColor,
+ };
+ if (arguments.length >= 3) ctx.depth = arguments[2];
+ if (arguments.length >= 4) ctx.colors = arguments[3];
+ if (isBoolean(opts)) {
+ ctx.showHidden = opts;
+ } else if (opts) {
+ exports._extend(ctx, opts);
+ }
+ if (isUndefined(ctx.showHidden)) ctx.showHidden = false;
+ if (isUndefined(ctx.depth)) ctx.depth = 2;
+ if (isUndefined(ctx.colors)) ctx.colors = false;
+ if (isUndefined(ctx.customInspect)) ctx.customInspect = true;
+ if (ctx.colors) ctx.stylize = stylizeWithColor;
+ return formatValue(ctx, obj, ctx.depth);
+}
+exports.inspect = inspect;
+inspect.colors = {
+ bold: [1, 22],
+ italic: [3, 23],
+ underline: [4, 24],
+ inverse: [7, 27],
+ white: [37, 39],
+ grey: [90, 39],
+ black: [30, 39],
+ blue: [34, 39],
+ cyan: [36, 39],
+ green: [32, 39],
+ magenta: [35, 39],
+ red: [31, 39],
+ yellow: [33, 39],
+};
+inspect.styles = {
+ special: "cyan",
+ number: "yellow",
+ boolean: "yellow",
+ undefined: "grey",
+ null: "bold",
+ string: "green",
+ date: "magenta",
+ regexp: "red",
+};
+function stylizeWithColor(str, styleType) {
+ var style = inspect.styles[styleType];
+ if (style) {
+ return (
+ "\x1B[" +
+ inspect.colors[style][0] +
+ "m" +
+ str +
+ "\x1B[" +
+ inspect.colors[style][1] +
+ "m"
+ );
+ } else {
+ return str;
+ }
+}
+function stylizeNoColor(str, styleType) {
+ return str;
+}
+function arrayToHash(array) {
+ var hash = {};
+ array.forEach(function (val, idx) {
+ hash[val] = true;
+ });
+ return hash;
+}
+function formatValue(ctx, value, recurseTimes) {
+ if (
+ ctx.customInspect &&
+ value &&
+ isFunction(value.inspect) &&
+ value.inspect !== exports.inspect &&
+ !(value.constructor && value.constructor.prototype === value)
+ ) {
+ var ret = value.inspect(recurseTimes, ctx);
+ if (!isString(ret)) {
+ ret = formatValue(ctx, ret, recurseTimes);
+ }
+ return ret;
+ }
+ var primitive = formatPrimitive(ctx, value);
+ if (primitive) {
+ return primitive;
+ }
+ var keys = Object.keys(value);
+ var visibleKeys = arrayToHash(keys);
+ if (ctx.showHidden) {
+ keys = Object.getOwnPropertyNames(value);
+ }
+ if (
+ isError(value) &&
+ (keys.indexOf("message") >= 0 || keys.indexOf("description") >= 0)
+ ) {
+ return formatError(value);
+ }
+ if (keys.length === 0) {
+ if (isFunction(value)) {
+ var name = value.name ? ": " + value.name : "";
+ return ctx.stylize("[Function" + name + "]", "special");
+ }
+ if (isRegExp(value)) {
+ return ctx.stylize(RegExp.prototype.toString.call(value), "regexp");
+ }
+ if (isDate(value)) {
+ return ctx.stylize(Date.prototype.toString.call(value), "date");
+ }
+ if (isError(value)) {
+ return formatError(value);
+ }
+ }
+ var base = "",
+ array = false,
+ braces = ["{", "}"];
+ if (isArray(value)) {
+ array = true;
+ braces = ["[", "]"];
+ }
+ if (isFunction(value)) {
+ var n = value.name ? ": " + value.name : "";
+ base = " [Function" + n + "]";
+ }
+ if (isRegExp(value)) {
+ base = " " + RegExp.prototype.toString.call(value);
+ }
+ if (isDate(value)) {
+ base = " " + Date.prototype.toUTCString.call(value);
+ }
+ if (isError(value)) {
+ base = " " + formatError(value);
+ }
+ if (keys.length === 0 && (!array || value.length == 0)) {
+ return braces[0] + base + braces[1];
+ }
+ if (recurseTimes < 0) {
+ if (isRegExp(value)) {
+ return ctx.stylize(RegExp.prototype.toString.call(value), "regexp");
+ } else {
+ return ctx.stylize("[Object]", "special");
+ }
+ }
+ ctx.seen.push(value);
+ var output;
+ if (array) {
+ output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);
+ } else {
+ output = keys.map(function (key) {
+ return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);
+ });
+ }
+ ctx.seen.pop();
+ return reduceToSingleString(output, base, braces);
+}
+function formatPrimitive(ctx, value) {
+ if (isUndefined(value)) return ctx.stylize("undefined", "undefined");
+ if (isString(value)) {
+ var simple =
+ "'" +
+ JSON.stringify(value)
+ .replace(/^"|"$/g, "")
+ .replace(/'/g, "\\'")
+ .replace(/\\"/g, '"') +
+ "'";
+ return ctx.stylize(simple, "string");
+ }
+ if (isNumber(value)) return ctx.stylize("" + value, "number");
+ if (isBoolean(value)) return ctx.stylize("" + value, "boolean");
+ if (isNull(value)) return ctx.stylize("null", "null");
+}
+function formatError(value) {
+ return "[" + Error.prototype.toString.call(value) + "]";
+}
+function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {
+ var output = [];
+ for (var i = 0, l = value.length; i < l; ++i) {
+ if (hasOwnProperty(value, String(i))) {
+ output.push(
+ formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true),
+ );
+ } else {
+ output.push("");
+ }
+ }
+ keys.forEach(function (key) {
+ if (!key.match(/^\d+$/)) {
+ output.push(
+ formatProperty(ctx, value, recurseTimes, visibleKeys, key, true),
+ );
+ }
+ });
+ return output;
+}
+function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {
+ var name, str, desc;
+ desc = Object.getOwnPropertyDescriptor(value, key) || {
+ value: value[key],
+ };
+ if (desc.get) {
+ if (desc.set) {
+ str = ctx.stylize("[Getter/Setter]", "special");
+ } else {
+ str = ctx.stylize("[Getter]", "special");
+ }
+ } else {
+ if (desc.set) {
+ str = ctx.stylize("[Setter]", "special");
+ }
+ }
+ if (!hasOwnProperty(visibleKeys, key)) {
+ name = "[" + key + "]";
+ }
+ if (!str) {
+ if (ctx.seen.indexOf(desc.value) < 0) {
+ if (isNull(recurseTimes)) {
+ str = formatValue(ctx, desc.value, null);
+ } else {
+ str = formatValue(ctx, desc.value, recurseTimes - 1);
+ }
+ if (str.indexOf("\n") > -1) {
+ if (array) {
+ str = str
+ .split("\n")
+ .map(function (line) {
+ return " " + line;
+ })
+ .join("\n")
+ .substr(2);
+ } else {
+ str =
+ "\n" +
+ str
+ .split("\n")
+ .map(function (line) {
+ return " " + line;
+ })
+ .join("\n");
+ }
+ }
+ } else {
+ str = ctx.stylize("[Circular]", "special");
+ }
+ }
+ if (isUndefined(name)) {
+ if (array && key.match(/^\d+$/)) {
+ return str;
+ }
+ name = JSON.stringify("" + key);
+ if (name.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)) {
+ name = name.substr(1, name.length - 2);
+ name = ctx.stylize(name, "name");
+ } else {
+ name = name
+ .replace(/'/g, "\\'")
+ .replace(/\\"/g, '"')
+ .replace(/(^"|"$)/g, "'");
+ name = ctx.stylize(name, "string");
+ }
+ }
+ return name + ": " + str;
+}
+function reduceToSingleString(output, base, braces) {
+ var numLinesEst = 0;
+ var length = output.reduce(function (prev, cur) {
+ numLinesEst++;
+ if (cur.indexOf("\n") >= 0) numLinesEst++;
+ return prev + cur.replace(/\u001b\[\d\d?m/g, "").length + 1;
+ }, 0);
+ if (length > 60) {
+ return (
+ braces[0] +
+ (base === "" ? "" : base + "\n ") +
+ " " +
+ output.join(",\n ") +
+ " " +
+ braces[1]
+ );
+ }
+ return braces[0] + base + " " + output.join(", ") + " " + braces[1];
+}
+const types = import.meta.require("node:util/types");
+exports.types = types;
+function isArray(ar) {
+ return Array.isArray(ar);
+}
+exports.isArray = isArray;
+function isBoolean(arg) {
+ return typeof arg === "boolean";
+}
+exports.isBoolean = isBoolean;
+function isNull(arg) {
+ return arg === null;
+}
+exports.isNull = isNull;
+function isNullOrUndefined(arg) {
+ return arg == null;
+}
+exports.isNullOrUndefined = isNullOrUndefined;
+function isNumber(arg) {
+ return typeof arg === "number";
+}
+exports.isNumber = isNumber;
+function isString(arg) {
+ return typeof arg === "string";
+}
+exports.isString = isString;
+function isSymbol(arg) {
+ return typeof arg === "symbol";
+}
+exports.isSymbol = isSymbol;
+function isUndefined(arg) {
+ return arg === void 0;
+}
+exports.isUndefined = isUndefined;
+var isRegExp = (exports.isRegExp = exports.types.isRegExp);
+function isObject(arg) {
+ return typeof arg === "object" && arg !== null;
+}
+exports.isObject = isObject;
+var isDate = (exports.isDate = exports.types.isDate);
+var isError = (exports.isError = exports.types.isNativeError);
+function isFunction(arg) {
+ return typeof arg === "function";
+}
+var isFunction = (exports.isFunction = isFunction);
+function isPrimitive(arg) {
+ return (
+ arg === null ||
+ typeof arg === "boolean" ||
+ typeof arg === "number" ||
+ typeof arg === "string" ||
+ typeof arg === "symbol" ||
+ typeof arg === "undefined"
+ );
+}
+exports.isPrimitive = isPrimitive;
+exports.isBuffer = isBuffer;
+function pad(n) {
+ return n < 10 ? "0" + n.toString(10) : n.toString(10);
+}
+var months = [
+ "Jan",
+ "Feb",
+ "Mar",
+ "Apr",
+ "May",
+ "Jun",
+ "Jul",
+ "Aug",
+ "Sep",
+ "Oct",
+ "Nov",
+ "Dec",
+];
+function timestamp() {
+ var d = new Date();
+ var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(
+ ":",
+ );
+ return [d.getDate(), months[d.getMonth()], time].join(" ");
+}
+var log = (exports.log = function () {
+ console.log("%s - %s", timestamp(), exports.format.apply(exports, arguments));
+});
+var inherits = (exports.inherits = require_inherits_browser());
+var _extend = (exports._extend = function (origin, add) {
+ if (!add || !isObject(add)) return origin;
+ var keys = Object.keys(add);
+ var i = keys.length;
+ while (i--) {
+ origin[keys[i]] = add[keys[i]];
+ }
+ return origin;
+});
+function hasOwnProperty(obj, prop) {
+ return Object.prototype.hasOwnProperty.call(obj, prop);
+}
+var kCustomPromisifiedSymbol =
+ typeof Symbol !== "undefined" ? Symbol("util.promisify.custom") : void 0;
+var promisify = (exports.promisify = function promisify(original) {
+ if (typeof original !== "function")
+ throw new TypeError('The "original" argument must be of type Function');
+ if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {
+ var fn = original[kCustomPromisifiedSymbol];
+ if (typeof fn !== "function") {
+ throw new TypeError(
+ 'The "util.promisify.custom" argument must be of type Function',
+ );
+ }
+ Object.defineProperty(fn, kCustomPromisifiedSymbol, {
+ value: fn,
+ enumerable: false,
+ writable: false,
+ configurable: true,
+ });
+ return fn;
+ }
+ function fn() {
+ var promiseResolve, promiseReject;
+ var promise = new Promise(function (resolve, reject) {
+ promiseResolve = resolve;
+ promiseReject = reject;
+ });
+ var args = [];
+ for (var i = 0; i < arguments.length; i++) {
+ args.push(arguments[i]);
+ }
+ args.push(function (err, value) {
+ if (err) {
+ promiseReject(err);
+ } else {
+ promiseResolve(value);
+ }
+ });
+ try {
+ original.apply(this, args);
+ } catch (err) {
+ promiseReject(err);
+ }
+ return promise;
+ }
+ Object.setPrototypeOf(fn, Object.getPrototypeOf(original));
+ if (kCustomPromisifiedSymbol)
+ Object.defineProperty(fn, kCustomPromisifiedSymbol, {
+ value: fn,
+ enumerable: false,
+ writable: false,
+ configurable: true,
+ });
+ return Object.defineProperties(fn, getOwnPropertyDescriptors(original));
+});
+exports.promisify.custom = kCustomPromisifiedSymbol;
+function callbackifyOnRejected(reason, cb) {
+ if (!reason) {
+ var newReason = new Error("Promise was rejected with a falsy value");
+ newReason.reason = reason;
+ reason = newReason;
+ }
+ return cb(reason);
+}
+function callbackify(original) {
+ if (typeof original !== "function") {
+ throw new TypeError('The "original" argument must be of type Function');
+ }
+ function callbackified() {
+ var args = [];
+ for (var i = 0; i < arguments.length; i++) {
+ args.push(arguments[i]);
+ }
+ var maybeCb = args.pop();
+ if (typeof maybeCb !== "function") {
+ throw new TypeError("The last argument must be of type Function");
+ }
+ var self = this;
+ var cb = function () {
+ return maybeCb.apply(self, arguments);
+ };
+ original.apply(this, args).then(
+ function (ret) {
+ process.nextTick(cb, null, null, ret);
+ },
+ function (rej) {
+ process.nextTick(callbackifyOnRejected, null, rej, cb);
+ },
+ );
+ }
+ Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));
+ Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));
+ return callbackified;
+}
+exports.callbackify = callbackify;
+export var TextEncoder = (exports.TextDecoder = globalThis.TextEncoder);
+export var TextDecoder = (exports.TextEncoder = globalThis.TextDecoder);
+exports[Symbol.for("CommonJS")] = 0;
+export default exports;
+
+export {
+ format,
+ deprecate,
+ debuglog,
+ inspect,
+ isArray,
+ isBoolean,
+ isNull,
+ isNullOrUndefined,
+ isNumber,
+ isString,
+ isSymbol,
+ isUndefined,
+ isRegExp,
+ isObject,
+ isDate,
+ isError,
+ isFunction,
+ isPrimitive,
+ log,
+ inherits,
+ promisify,
+ callbackify,
+};