Skip to content

Commit

Permalink
local semvergte implementation
Browse files Browse the repository at this point in the history
  • Loading branch information
ppisljar committed Oct 26, 2020
1 parent f122bdf commit 31513e7
Showing 1 changed file with 12 additions and 2 deletions.
14 changes: 12 additions & 2 deletions src/plugins/expressions/common/executor/executor.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@
/* eslint-disable max-classes-per-file */

import { cloneDeep, mapValues } from 'lodash';
import semver from 'semver';
import { ExecutorState, ExecutorContainer } from './container';
import { createExecutorContainer } from './container';
import { AnyExpressionFunctionDefinition, ExpressionFunction } from '../expression_functions';
Expand Down Expand Up @@ -88,6 +87,17 @@ export class FunctionsRegistry implements IRegistry<ExpressionFunction> {
}
}

const semverGte = (semver1: string, semver2: string) => {
const regex = /^([0-9]+)\.([0-9]+)\.([0-9]+)$/;
const [major1, minor1, patch1] = semver1.match(regex) as RegExpMatchArray;
const [major2, minor2, patch2] = semver2.match(regex) as RegExpMatchArray;

return (
major1 > major2 ||
(major1 === major2 && (minor1 > minor2 || (minor1 === minor2 && patch1 >= patch2)))
);
};

export class Executor<Context extends Record<string, unknown> = Record<string, unknown>>
implements PersistableState<ExpressionAstExpression> {
static createWithDefaults<Ctx extends Record<string, unknown> = Record<string, unknown>>(
Expand Down Expand Up @@ -267,7 +277,7 @@ export class Executor<Context extends Record<string, unknown> = Record<string, u
migrateToLatest(ast: unknown, version: string) {
return this.walkAst(cloneDeep(ast) as ExpressionAstExpression, (fn, link) => {
for (const key in Object.keys(fn.migrations)) {
if (semver.gte(key, version)) {
if (semverGte(key, version)) {
link = fn.migrations[key](link) as ExpressionAstFunction;
}
}
Expand Down

0 comments on commit 31513e7

Please sign in to comment.