• Public
  • Public/Protected
  • All



Type aliases

AdditionalWriteTags: { Orientation#?: number }

Type declaration

  • Optional Orientation#?: number
Defined<T>: T extends undefined ? never : T

Type parameters

  • T

DefinedOrNullValued<T>: { [ P in keyof T]: Defined<T[P]> | null }

Type parameters

  • T

ExpandedDateTags: { [ K in keyof Tags]: (Tags[K] extends number ? number : Tags[K] extends ExifDateTime ? ExifDate | ExifDateTime : Tags[K]) | string }
Maybe<T>: T | undefined

Type parameters

  • T

Omit<T, K>: Pick<T, Exclude<keyof T, K>>

Type parameters

  • T

  • K

Struct: {}

Type declaration

  • [k: string]: number | string | Struct


DefaultExifToolOptions: Omit<ExifToolOptions, "processFactory" | "ignoreShebang"> = ...

Default values for ExifToolOptions, except for processFactory (which is created by the ExifTool constructor)

DefaultExifToolPath: string = ...
DefaultExiftoolArgs: string[] = ...
DefaultMaxProcs: number = ...
UnsetZone: FixedOffsetZone = ...
UnsetZoneName: string = UnsetZone.name
UnsetZoneOffsetMinutes: -1 = -1
exiftool: ExifTool = ...

Use this singleton rather than instantiating new ExifTool instances in order to leverage a single running ExifTool process. As of v3.0, its maxProcs is set to the number of CPUs on the current system; no more than maxProcs instances of exiftool will be spawned. You may want to experiment with smaller or larger values for maxProcs, depending on CPU and disk speed of your system and performance tradeoffs.

Note that each child process consumes between 10 and 50 MB of RAM. If you have limited system resources you may want to use a smaller maxProcs value.


  • offsetMinutesToZoneName(offsetMinutes: Maybe<number>): Maybe<string>
  • Returns a "zone name" (used by luxon) that encodes the given offset.


    • offsetMinutes: Maybe<number>

    Returns Maybe<string>

  • parseJSON(s: string): any

Generated using TypeDoc