UNPKG

5.66 kBSource Map (JSON)View Raw
1{"version":3,"file":"ActionContext.js","sourceRoot":"","sources":["ActionContext.ts"],"names":[],"mappings":"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","sourcesContent":["import type { IActionContext, IActionContextKey } from '@comunica/types';\nimport { Map } from 'immutable';\n\n/**\n * Implementation of {@link IActionContext} using Immutable.js.\n */\nexport class ActionContext implements IActionContext {\n private readonly map: Map<string, any>;\n\n public constructor(data: Record<string, any> = {}) {\n this.map = Map<string, any>(data);\n }\n\n /**\n * Will only set the value if the key is not already set.\n */\n public setDefault<V>(key: IActionContextKey<V>, value: V): IActionContext {\n return this.has(key) ? this : this.set(key, value);\n }\n\n public set<V>(key: IActionContextKey<V>, value: V): IActionContext {\n return this.setRaw(key.name, value);\n }\n\n public setRaw(key: string, value: any): IActionContext {\n return new ActionContext(this.map.set(key, value));\n }\n\n public delete<V>(key: IActionContextKey<V>): IActionContext {\n return new ActionContext(this.map.delete(key.name));\n }\n\n public get<V>(key: IActionContextKey<V>): V | undefined {\n return this.getRaw(key.name);\n }\n\n public getRaw(key: string): any | undefined {\n return this.map.get(key);\n }\n\n public getSafe<V>(key: IActionContextKey<V>): V {\n if (!this.has(key)) {\n throw new Error(`Context entry ${key.name} is required but not available`);\n }\n return <V> this.get(key);\n }\n\n public has<V>(key: IActionContextKey<V>): boolean {\n return this.hasRaw(key.name);\n }\n\n public hasRaw(key: string): boolean {\n return this.map.has(key);\n }\n\n public merge(...contexts: IActionContext[]): IActionContext {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n let context: IActionContext = this;\n for (const source of contexts) {\n for (const key of source.keys()) {\n context = context.set(key, source.get(key));\n }\n }\n return context;\n }\n\n public keys(): IActionContextKey<any>[] {\n return [ ...<any> this.map.keys() ]\n .map(keyName => new ActionContextKey(keyName));\n }\n\n public toJS(): any {\n return this.map.toJS();\n }\n\n public toString(): string {\n return `ActionContext(${JSON.stringify(this.map.toJS())})`;\n }\n\n public [Symbol.for('nodejs.util.inspect.custom')](): string {\n return `ActionContext(${JSON.stringify(this.map.toJS(), null, ' ')})`;\n }\n\n /**\n * Convert the given object to an action context object if it is not an action context object yet.\n * If it already is an action context object, return the object as-is.\n * @param maybeActionContext An action context or record.\n * @return {ActionContext} An action context object.\n */\n public static ensureActionContext(maybeActionContext?: IActionContext | Record<string, any>): IActionContext {\n return maybeActionContext instanceof ActionContext ?\n maybeActionContext :\n new ActionContext(Map(maybeActionContext || {}));\n }\n}\n\n/**\n * Simple implementation of {@link IActionContextKey}.\n */\nexport class ActionContextKey<V> implements IActionContextKey<V> {\n /**\n * A unique context key name.\n */\n public readonly name: string;\n\n public constructor(name: string) {\n this.name = name;\n }\n}\n"]}
\No newline at end of file