opusdev/vector-similarity-api
1
1'use strict';2 3var reflectGetProto = require('./Reflect.getPrototypeOf');4var originalGetProto = require('./Object.getPrototypeOf');5 6var getDunderProto = require('dunder-proto/get');7 8/** @type {import('.')} */9module.exports = reflectGetProto10 ? function getProto(O) {11 // @ts-expect-error TS can't narrow inside a closure, for some reason12 return reflectGetProto(O);13 }14 : originalGetProto15 ? function getProto(O) {16 if (!O || (typeof O !== 'object' && typeof O !== 'function')) {17 throw new TypeError('getProto: not an object');18 }19 // @ts-expect-error TS can't narrow inside a closure, for some reason20 return originalGetProto(O);21 }22 : getDunderProto23 ? function getProto(O) {24 // @ts-expect-error TS can't narrow inside a closure, for some reason25 return getDunderProto(O);26 }27 : null;28 