Options
All
  • Public
  • Public/Protected
  • All
Menu

Package harp-utils

@here/harp-utils

Overview

This module provides utility classes. Such as, but not limited to:

  • logging
  • caching
  • URL resolving
  • Simple Math

Logger

Custom logger for writing messages to browser console or separate window. Messages could be filtered by log names or completely disabled via URI parameters or UI. Logger name is required and cannot be empty.

import { LoggerManager, LogLevel } from '@here/harp-utils';

const loggerManager = LoggerManager.instance;

// Create named logger and configure it to Warn log level.
const logger: ILogger = loggerManager.create('my logger', {
    level: LogLevel.Warn
});

// Warning 'my logger: something' logged to output.
logger.warn('something...');

// Won't be logged because log level is 'warn'.
logger.log('not logged...');

// Now, message is logged.
logger.level = LogLevel.Log;
logger.log('logged...');

// Be good developer. Free resources after you done.
// Unregister logger from global registry.
loggerManager.dispose(logger);

Index

References

Namespaces

Enumerations

Classes

Interfaces

Type aliases

Variables

Functions

References

ApiKeyAuthentication

Re-exports ApiKeyAuthentication

ApiKeyAuthentication

Re-exports ApiKeyAuthentication

ApiKeyAuthentication

Re-exports ApiKeyAuthentication

AppIdAuthentication

Re-exports AppIdAuthentication

AppIdAuthentication

Re-exports AppIdAuthentication

AppIdAuthentication

Re-exports AppIdAuthentication

AuthenticationProvider

Re-exports AuthenticationProvider

AuthenticationProvider

Re-exports AuthenticationProvider

AuthenticationProvider

Re-exports AuthenticationProvider

CachedResource

Re-exports CachedResource

CachedResource

Re-exports CachedResource

CachedResource

Re-exports CachedResource

ConsoleChannel

Re-exports ConsoleChannel

ConsoleChannel

Re-exports ConsoleChannel

ConsoleChannel

Re-exports ConsoleChannel

ConsoleChannel

Re-exports ConsoleChannel

ContextLogger

Re-exports ContextLogger

ContextLogger

Re-exports ContextLogger

ContextLogger

Re-exports ContextLogger

DOMUtils

Re-exports DOMUtils

DOMUtils

Re-exports DOMUtils

DOMUtils

Re-exports DOMUtils

GroupedPriorityList

Re-exports GroupedPriorityList

GroupedPriorityList

Re-exports GroupedPriorityList

GroupedPriorityList

Re-exports GroupedPriorityList

IChannel

Re-exports IChannel

IChannel

Re-exports IChannel

IChannel

Re-exports IChannel

IChannel

Re-exports IChannel

IContextLogger

Re-exports IContextLogger

IContextLogger

Re-exports IContextLogger

IContextLogger

Re-exports IContextLogger

ILogger

Re-exports ILogger

ILogger

Re-exports ILogger

ILogger

Re-exports ILogger

ILogger

Re-exports ILogger

ISimpleChannel

Re-exports ISimpleChannel

ISimpleChannel

Re-exports ISimpleChannel

ISimpleChannel

Re-exports ISimpleChannel

IWorkerChannelMessage

Re-exports IWorkerChannelMessage

IWorkerChannelMessage

Re-exports IWorkerChannelMessage

IWorkerChannelMessage

Re-exports IWorkerChannelMessage

IWorkerChannelMessage

Re-exports IWorkerChannelMessage

LogLevel

Re-exports LogLevel

LogLevel

Re-exports LogLevel

LogLevel

Re-exports LogLevel

LogLevel

Re-exports LogLevel

Logger

Re-exports Logger

Logger

Re-exports Logger

Logger

Re-exports Logger

Logger

Re-exports Logger

LoggerManager

Re-exports LoggerManager

LoggerManager

Re-exports LoggerManager

LoggerManager

Re-exports LoggerManager

LoggerManager

Re-exports LoggerManager

LoggerOptions

Re-exports LoggerOptions

LoggerOptions

Re-exports LoggerOptions

LoggerOptions

Re-exports LoggerOptions

LoggerOptions

Re-exports LoggerOptions

Math2D

Re-exports Math2D

Math2D

Re-exports Math2D

Math2D

Re-exports Math2D

MathUtils

Re-exports MathUtils

MathUtils

Re-exports MathUtils

MathUtils

Re-exports MathUtils

MultiChannel

Re-exports MultiChannel

MultiChannel

Re-exports MultiChannel

MultiChannel

Re-exports MultiChannel

MultiChannel

Re-exports MultiChannel

PerformanceTimer

Re-exports PerformanceTimer

PerformanceTimer

Re-exports PerformanceTimer

PerformanceTimer

Re-exports PerformanceTimer

PrefixMapUriResolver

Re-exports PrefixMapUriResolver

PrefixMapUriResolver

Re-exports PrefixMapUriResolver

PrefixMapUriResolver

Re-exports PrefixMapUriResolver

PrefixUriResolverDefinition

Re-exports PrefixUriResolverDefinition

PrefixUriResolverDefinition

Re-exports PrefixUriResolverDefinition

PrefixUriResolverDefinition

Re-exports PrefixUriResolverDefinition

PriorityListElement

Re-exports PriorityListElement

PriorityListElement

Re-exports PriorityListElement

PriorityListElement

Re-exports PriorityListElement

PriorityListGroup

Re-exports PriorityListGroup

PriorityListGroup

Re-exports PriorityListGroup

PriorityListGroup

Re-exports PriorityListGroup

PriorityListGroupMap

Re-exports PriorityListGroupMap

PriorityListGroupMap

Re-exports PriorityListGroupMap

PriorityListGroupMap

Re-exports PriorityListGroupMap

RelativeUriResolver

Re-exports RelativeUriResolver

RelativeUriResolver

Re-exports RelativeUriResolver

RelativeUriResolver

Re-exports RelativeUriResolver

Task

Re-exports Task

Task

Re-exports Task

Task

Re-exports Task

TaskQueue

Re-exports TaskQueue

TaskQueue

Re-exports TaskQueue

TaskQueue

Re-exports TaskQueue

TaskQueueOptions

Re-exports TaskQueueOptions

TaskQueueOptions

Re-exports TaskQueueOptions

TaskQueueOptions

Re-exports TaskQueueOptions

TokenAuthentication

Re-exports TokenAuthentication

TokenAuthentication

Re-exports TokenAuthentication

TokenAuthentication

Re-exports TokenAuthentication

UriResolver

Re-exports UriResolver

UriResolver

Re-exports UriResolver

UriResolver

Re-exports UriResolver

WORKERCHANNEL_MSG_TYPE

Re-exports WORKERCHANNEL_MSG_TYPE

WORKERCHANNEL_MSG_TYPE

Re-exports WORKERCHANNEL_MSG_TYPE

WORKERCHANNEL_MSG_TYPE

Re-exports WORKERCHANNEL_MSG_TYPE

WORKERCHANNEL_MSG_TYPE

Re-exports WORKERCHANNEL_MSG_TYPE

WorkerChannel

Re-exports WorkerChannel

WorkerChannel

Re-exports WorkerChannel

WorkerChannel

Re-exports WorkerChannel

WorkerChannel

Re-exports WorkerChannel

applyMixins

Re-exports applyMixins

applyMixins

Re-exports applyMixins

applyMixins

Re-exports applyMixins

applyMixinsWithoutProperties

Re-exports applyMixinsWithoutProperties

applyMixinsWithoutProperties

Re-exports applyMixinsWithoutProperties

applyMixinsWithoutProperties

Re-exports applyMixinsWithoutProperties

assertExists

Re-exports assertExists

assertExists

Re-exports assertExists

assertExists

Re-exports assertExists

baseUrl

Re-exports baseUrl

baseUrl

Re-exports baseUrl

baseUrl

Re-exports baseUrl

chainCallbacks

Re-exports chainCallbacks

chainCallbacks

Re-exports chainCallbacks

chainCallbacks

Re-exports chainCallbacks

cloneDeep

Re-exports cloneDeep

cloneDeep

Re-exports cloneDeep

cloneDeep

Re-exports cloneDeep

composeUriResolvers

Re-exports composeUriResolvers

composeUriResolvers

Re-exports composeUriResolvers

composeUriResolvers

Re-exports composeUriResolvers

convertFragmentShaderToWebGL2

Re-exports convertFragmentShaderToWebGL2

convertFragmentShaderToWebGL2

Re-exports convertFragmentShaderToWebGL2

convertFragmentShaderToWebGL2

Re-exports convertFragmentShaderToWebGL2

convertVertexShaderToWebGL2

Re-exports convertVertexShaderToWebGL2

convertVertexShaderToWebGL2

Re-exports convertVertexShaderToWebGL2

convertVertexShaderToWebGL2

Re-exports convertVertexShaderToWebGL2

getAppBaseUrl

Re-exports getAppBaseUrl

getAppBaseUrl

Re-exports getAppBaseUrl

getOptionValue

Re-exports getOptionValue

getOptionValue

Re-exports getOptionValue

getOptionValue

Re-exports getOptionValue

getUrlHostAndProtocol

Re-exports getUrlHostAndProtocol

getUrlHostAndProtocol

Re-exports getUrlHostAndProtocol

getUrlHostAndProtocol

Re-exports getUrlHostAndProtocol

getUrlOrigin

Re-exports getUrlOrigin

getUrlOrigin

Re-exports getUrlOrigin

getUrlOrigin

Re-exports getUrlOrigin

pick

Re-exports pick

pick

Re-exports pick

pick

Re-exports pick

resolveReferenceUri

Re-exports resolveReferenceUri

resolveReferenceUri

Re-exports resolveReferenceUri

resolveReferenceUri

Re-exports resolveReferenceUri

sampleBilinear

Re-exports sampleBilinear

sampleBilinear

Re-exports sampleBilinear

sampleBilinear

Re-exports sampleBilinear

Type aliases

AuthenticationProvider

AuthenticationProvider: () => Promise<string>

Authentification token/code provider.

Type declaration

    • (): Promise<string>
    • Returns Promise<string>

PriorityListGroupMap

PriorityListGroupMap<T>: Map<number, PriorityListGroup<T>>

The PriorityListGroupMap is a map to map the (integer) priority to a PriorityListGroup.

Type parameters

Variables

Const WORKERCHANNEL_MSG_TYPE

WORKERCHANNEL_MSG_TYPE: "worker-channel-message" = "worker-channel-message"

Functions

applyMixins

  • applyMixins(derivedCtor: any, baseCtors: any[]): void

applyMixinsWithoutProperties

  • applyMixinsWithoutProperties(derivedCtor: any, baseCtors: any[]): void

assertExists

  • assertExists<T>(element: T | undefined, message?: undefined | string): T

baseUrl

  • baseUrl(url: string | undefined): string
  • Returns base URL of given resource URL.

    Url with trailing slash are considered genuine 'locations', they are returned as is, however if url ends with name component it is treated as "leaf", so last path component is removed.

    Standalone files (without any folder structure) are considered relative to ./.

    Examples:

        https://foo.com/themes/a.json -> https://foo.com/themes/
        https://foo.com/themes/ -> https://foo.com/themes/
        https://foo.com/themes -> https://foo.com/ // note, themes is treated as leaf
        themes/day.json -> themes/
        themes -> ./

    Parameters

    • url: string | undefined

    Returns string

chainCallbacks

  • chainCallbacks<T>(f1: T | null | undefined, f2: T): T
  • Chains two functions for further assigning as one wrapped callback function

    Type parameters

    • T: (this: unknown, ...args: any[]) => any

    Parameters

    • f1: T | null | undefined
    • f2: T

    Returns T

cloneDeep

  • cloneDeep<T>(obj: T): T
  • Deep clone of object.

    Like JSON.parse(JSON.stringify(obj)), but supports basic javascript types (string, number, object), Date and RegExps and cycles.

    Throws error if enounters object with prototype assuming that in general class instances cannot be reliably cloned by generic algorithm.

    Type parameters

    • T

    Parameters

    • obj: T

    Returns T

composeUriResolvers

  • Compose URI resolvers.

    Creates new UriResolver that applies resolvers in orders or arguments.

    Example:

    const themeUrl = ...; // url of parent object
    const childUrlResolver = composeUrlResolvers(
          new RelativeUriResolver(themeUrl),
          defaultUrlResolver
    );

    Parameters

    Returns UriResolver

convertFragmentShaderToWebGL2

  • convertFragmentShaderToWebGL2(fragmentShader: string): string
  • Converts webgl1-compatible fragment shader glsl code to webgl2.

    Parameters

    • fragmentShader: string

      String containing the fragment shader glsl code.

    Returns string

    the converted glsl code.

convertVertexShaderToWebGL2

  • convertVertexShaderToWebGL2(vertexShader: string): string
  • Converts webgl1-compatible vertex shader glsl code to webgl2.

    Parameters

    • vertexShader: string

      String containing the vertex shader glsl code.

    Returns string

    the converted glsl code.

getAppBaseUrl

  • getAppBaseUrl(): string

getOptionValue

  • getOptionValue<T>(a: T): T
  • getOptionValue<T>(a: T | undefined, b: T): T
  • getOptionValue<T>(a: T | undefined, b: T | undefined, c: T): T
  • getOptionValue<T>(a: T | undefined, b: T | undefined, c: T | undefined, d: T): T
  • getOptionValue<T>(...values: Array<T | undefined>): T | undefined
  • Get first defined value.

    Specialized "replacement" for a || b || c used frequently to get value from various sources (defaults, configs constants). In contrast to ||, this function provides proper typing for usual use cases (constant as last argument) and correct treatment of null and undefined.

    If last parameter is "defined" then return type is T, otherwise return type is T | undefined.

    Usage example:

    interface Config {
        x?: number;
    }
    const someConfig: Config = {};
    const val: number | undefined = undefined;
    const DEFAULT = 5;
    const x = getOptionValue(val, someConfig.x, DEFAULT);
        // typeof x === 'number' because DEFAULT is defined
    const y = getOptionValue(val, someConfig.x);
        // typeof y === 'number | undefined' because someConfig.x is possibly undefined

    Type parameters

    • T

    Parameters

    • a: T

    Returns T

  • Type parameters

    • T

    Parameters

    • a: T | undefined
    • b: T

    Returns T

  • Type parameters

    • T

    Parameters

    • a: T | undefined
    • b: T | undefined
    • c: T

    Returns T

  • Type parameters

    • T

    Parameters

    • a: T | undefined
    • b: T | undefined
    • c: T | undefined
    • d: T

    Returns T

  • Type parameters

    • T

    Parameters

    • Rest ...values: Array<T | undefined>

    Returns T | undefined

getUrlHostAndProtocol

  • getUrlHostAndProtocol(url: string): { host: string; protocol: string }
  • Parse host and protocol part from URL.

    Parameters

    • url: string

    Returns { host: string; protocol: string }

    • host: string
    • protocol: string

getUrlOrigin

  • getUrlOrigin(url: string | undefined): string

pick

  • pick<T, K>(object: T, props: K[]): Pick<T, K>
  • Pick props from `object.

    Runtime version of Pick<T,K>.

    Type parameters

    • T: object

    • K: keyof T

    Parameters

    • object: T
    • props: K[]

    Returns Pick<T, K>

resolveReferenceUri

  • resolveReferenceUri(parentUri: string | undefined, childUri: string): string
  • Resolve URI of referenced object w.r.t parent URI.

    Resolves childUri as it would be loaded from location specified by parentUri.

    If childUri is absolute, then it is returned unchanged. If childUri is origin-absolute path, then only origin path is taken from parentUri.

    See [[baseUri]] for reference how base URL of parentUri is determined.

    Supports http:, https:, file:, data: schemes.

    Examples:

    // normal case, child is sibling
    https://foo.com/themes/day.json + images/foo.png -> https://foo.com/themes/images/foo.png
    
    // parent is "folder", so child is just located in this folder
    https://foo.com/themes/ + images/foo.png -> https://foo.com/themes/images/foo.png
    
    // parent looks like leaf, so last component is stripped
    https://foo.com/themes + images/foo.png -> https://foo.com/images/foo.png
    
    // origin-absolute URL, takes only origin from parent
    https://foo.com/themes/day.json + /fonts/foo.json -> https://foo.com/fonts/foo.json

    Parameters

    • parentUri: string | undefined

      URI of parent resource

    • childUri: string

      URI of child as referenced from parent resource

    Returns string

    childUrl as if anchored in location of parentUrl

sampleBilinear

  • sampleBilinear(texture: TypedArray, width: number, height: number, u: number, v: number): number
  • Returns a bilinear-interpolated texture sample for a given texture.

    Parameters

    • texture: TypedArray

      Two-dimensional texture to sample.

    • width: number

      Texture width.

    • height: number

      Texture height.

    • u: number

      Number between 0 and 1 representing the location to sample in the width dimension.

    • v: number

      Number between 0 and 1 representing the location to sample in the height dimension.

    Returns number

Generated using TypeDoc