MCPcopy Index your code
hub / github.com/angular/angular / convertToBitFlags

Function convertToBitFlags

packages/core/src/di/injector_compatibility.ts:300–315  ·  view source on GitHub ↗
(
  flags: InjectOptions | InternalInjectFlags | undefined,
)

Source from the content-addressed store, hash-verified

298
299// Converts object-based DI flags (`InjectOptions`) to bit flags (`InjectFlags`).
300export function convertToBitFlags(
301 flags: InjectOptions | InternalInjectFlags | undefined,
302): InternalInjectFlags | undefined {
303 if (typeof flags === 'undefined' || typeof flags === 'number') {
304 return flags;
305 }
306
307 // While TypeScript doesn't accept it without a cast, bitwise OR with false-y values in
308 // JavaScript is a no-op. We can use that for a very codesize-efficient conversion from
309 // `InjectOptions` to `InjectFlags`.
310 return (InternalInjectFlags.Default | // comment to force a line break in the formatter
311 ((flags.optional && InternalInjectFlags.Optional) as number) |
312 ((flags.host && InternalInjectFlags.Host) as number) |
313 ((flags.self && InternalInjectFlags.Self) as number) |
314 ((flags.skipSelf && InternalInjectFlags.SkipSelf) as number)) as InternalInjectFlags;
315}
316
317// Converts bitflags to inject options
318function convertToInjectOptions(flags: InternalInjectFlags): InjectOptions {

Callers 5

retrieveMethod · 0.90
getMethod · 0.90
getMethod · 0.90
retrieveMethod · 0.85
injectFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…