prometheus/web/ui/module/lezer-promql/src/tokens.js
Augustin Husson 043a2954f8
UI: stabilize dependencies and environment (#10517)
* create lezer-promql module + move codemirror to a pure esm module + unified dependencies

Signed-off-by: Augustin Husson <[email protected]>

* ignore test utils file and remove the type "module" in package.json

Signed-off-by: Augustin Husson <[email protected]>

* use jest to run the lezer-promql test

Signed-off-by: Augustin Husson <[email protected]>

* give an automatic way to update the ui dependencies

Signed-off-by: Augustin Husson <[email protected]>

* update all dependencies using make update-npm-deps

Signed-off-by: Augustin Husson <[email protected]>

* fix react-app test

Signed-off-by: Augustin Husson <[email protected]>

* remove generated file

Signed-off-by: Augustin Husson <[email protected]>

* remove unnecessary backslash in script

Signed-off-by: Augustin Husson <[email protected]>

* fix reviews

Signed-off-by: Augustin Husson <[email protected]>

* rewording

Signed-off-by: Augustin Husson <[email protected]>

* use npx to run lezer-generator

Signed-off-by: Augustin Husson <[email protected]>
2022-04-05 11:49:22 +02:00

86 lines
1.7 KiB
JavaScript

// Copyright 2021 The Prometheus Authors
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
import {
And,
Avg,
Atan2,
Bool,
Bottomk,
By,
Count,
CountValues,
End,
Group,
GroupLeft,
GroupRight,
Ignoring,
inf,
Max,
Min,
nan,
Offset,
On,
Or,
Quantile,
Start,
Stddev,
Stdvar,
Sum,
Topk,
Unless,
Without,
} from './parser.terms.js';
const keywordTokens = {
inf: inf,
nan: nan,
bool: Bool,
ignoring: Ignoring,
on: On,
group_left: GroupLeft,
group_right: GroupRight,
offset: Offset,
};
export const specializeIdentifier = (value, stack) => {
return keywordTokens[value.toLowerCase()] || -1;
};
const contextualKeywordTokens = {
avg: Avg,
atan2: Atan2,
bottomk: Bottomk,
count: Count,
count_values: CountValues,
group: Group,
max: Max,
min: Min,
quantile: Quantile,
stddev: Stddev,
stdvar: Stdvar,
sum: Sum,
topk: Topk,
by: By,
without: Without,
and: And,
or: Or,
unless: Unless,
start: Start,
end: End,
};
export const extendIdentifier = (value, stack) => {
return contextualKeywordTokens[value.toLowerCase()] || -1;
};