UNPKG

ravendb

Version:
31 lines 1.37 kB
import { AbstractGenericIndexCreationTask } from "./AbstractGenericIndexCreationTask.js"; import { IndexDefinitionHelper } from "./IndexDefinitionHelper.js"; import { TypeUtil } from "../../Utility/TypeUtil.js"; export class BaseJavaScriptIndexCreationTask extends AbstractGenericIndexCreationTask { _registeredEnums = []; /** * This extension point to tweak strongly typed index definitions * @param definition original index definition * @param origin origin of definition: map or reduce * @protected */ postProcessDefinition(definition, origin) { if (this._registeredEnums.length) { for (const transformation of this._registeredEnums) { const actualValue = transformation.actualValue; const escapedValue = TypeUtil.isNumber(actualValue) ? actualValue.toString() : '"' + actualValue + '"'; definition = definition.replace(transformation.sourceCode, escapedValue); } } return definition; } registerEnum(provider) { const value = provider(); const functionBody = provider.toString(); this._registeredEnums.push({ sourceCode: IndexDefinitionHelper.extractEnumNotation(functionBody), actualValue: value }); } } //# sourceMappingURL=BaseJavaScriptIndexCreationTask.js.map