UNPKG

@opentelemetry/core

Version:

OpenTelemetry Core provides constants and utilities shared by all OpenTelemetry SDK packages.

1 lines • 5.09 kB
{"version":3,"file":"lodash.merge.mjs","names":[],"sources":["../../src/utils/lodash.merge.ts"],"sourcesContent":["/*\n * Copyright The OpenTelemetry Authors\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\n/**\n * based on lodash in order to support esm builds without esModuleInterop.\n * lodash is using MIT License.\n **/\n\nconst objectTag = '[object Object]';\nconst nullTag = '[object Null]';\nconst undefinedTag = '[object Undefined]';\nconst funcProto = Function.prototype;\nconst funcToString = funcProto.toString;\nconst objectCtorString = funcToString.call(Object);\nconst getPrototypeOf = Object.getPrototypeOf;\nconst objectProto = Object.prototype;\nconst hasOwnProperty = objectProto.hasOwnProperty;\nconst symToStringTag = Symbol ? Symbol.toStringTag : undefined;\nconst nativeObjectToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nexport function isPlainObject(value: any) {\n if (!isObjectLike(value) || baseGetTag(value) !== objectTag) {\n return false;\n }\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return (\n typeof Ctor == 'function' &&\n Ctor instanceof Ctor &&\n funcToString.call(Ctor) === objectCtorString\n );\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value: any) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value: any) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return symToStringTag && symToStringTag in Object(value)\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value: any) {\n const isOwn = hasOwnProperty.call(value, symToStringTag as any),\n tag = value[symToStringTag as any];\n let unmasked = false;\n\n try {\n value[symToStringTag as any] = undefined;\n unmasked = true;\n } catch {\n // silence\n }\n\n const result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag as any] = tag;\n } else {\n delete value[symToStringTag as any];\n }\n }\n return result;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value: any) {\n return nativeObjectToString.call(value);\n}\n"],"mappings":";;;;;AAYA,MAAM,YAAY;AAClB,MAAM,UAAU;AAChB,MAAM,eAAe;AAErB,MAAM,eADY,SAAS,UACI;AAC/B,MAAM,mBAAmB,aAAa,KAAK,MAAM;AACjD,MAAM,iBAAiB,OAAO;AAC9B,MAAM,cAAc,OAAO;AAC3B,MAAM,iBAAiB,YAAY;AACnC,MAAM,iBAAiB,SAAS,OAAO,cAAc,KAAA;AACrD,MAAM,uBAAuB,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BzC,SAAgB,cAAc,OAAY;CACxC,IAAI,CAAC,aAAa,KAAK,KAAK,WAAW,KAAK,MAAM,WAChD,OAAO;CAET,MAAM,QAAQ,eAAe,KAAK;CAClC,IAAI,UAAU,MACZ,OAAO;CAET,MAAM,OAAO,eAAe,KAAK,OAAO,aAAa,KAAK,MAAM;CAChE,OACE,OAAO,QAAQ,cACf,gBAAgB,QAChB,aAAa,KAAK,IAAI,MAAM;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;AA0BA,SAAS,aAAa,OAAY;CAChC,OAAO,SAAS,QAAQ,OAAO,SAAS;AAC1C;;;;;;;;AASA,SAAS,WAAW,OAAY;CAC9B,IAAI,SAAS,MACX,OAAO,UAAU,KAAA,IAAY,eAAe;CAE9C,OAAO,kBAAkB,kBAAkB,OAAO,KAAK,IACnD,UAAU,KAAK,IACf,eAAe,KAAK;AAC1B;;;;;;;;AASA,SAAS,UAAU,OAAY;CAC7B,MAAM,QAAQ,eAAe,KAAK,OAAO,cAAqB,GAC5D,MAAM,MAAM;CACd,IAAI,WAAW;CAEf,IAAI;EACF,MAAM,kBAAyB,KAAA;EAC/B,WAAW;CACb,QAAQ,CAER;CAEA,MAAM,SAAS,qBAAqB,KAAK,KAAK;CAC9C,IAAI,UAAU;EACZ,IAAI,OACF,MAAM,kBAAyB;OAE/B,OAAO,MAAM;CAEjB;CACA,OAAO;AACT;;;;;;;;AASA,SAAS,eAAe,OAAY;CAClC,OAAO,qBAAqB,KAAK,KAAK;AACxC"}