import { ClassProvider , ConstructorProvider , FactoryProvider , Provider , ValueProvider , } from "./module-metadata.ts" ; export function isProvider ( arg ) { return Object . prototype . hasOwnProperty . call ( arg , "provide" ) ; } export function isValueProvider ( arg ) { return Object . prototype . hasOwnProperty . call ( arg , "useValue" ) ; } export function isFactoryProvider ( arg ) { return Object . prototype . hasOwnProperty . call ( arg , "useFactory" ) ; } export function isClassProvider ( arg ) { return Object . prototype . hasOwnProperty . call ( arg , "useClass" ) ; } export function isConstructorProvider ( arg ) { return ( isProvider ( arg ) && typeof arg . provide === "function" && ! isClassProvider ( arg ) && ! isFactoryProvider ( arg ) && ! isValueProvider ( arg ) ) ; }