forked from MapComplete/MapComplete
Refactoring of conversion
This commit is contained in:
parent
5dffb3c5e7
commit
7eeffc2305
12 changed files with 389 additions and 97 deletions
|
@ -1,4 +1,4 @@
|
|||
import {DesugaringContext, DesugaringStep, Fuse, OnEvery} from "./Conversion";
|
||||
import {DesugaringStep, Fuse, OnEvery} from "./Conversion";
|
||||
import {LayerConfigJson} from "../Json/LayerConfigJson";
|
||||
import LayerConfig from "../LayerConfig";
|
||||
import {Utils} from "../../../Utils";
|
||||
|
@ -8,7 +8,6 @@ import {LayoutConfigJson} from "../Json/LayoutConfigJson";
|
|||
import LayoutConfig from "../LayoutConfig";
|
||||
import {TagRenderingConfigJson} from "../Json/TagRenderingConfigJson";
|
||||
import {TagUtils} from "../../../Logic/Tags/TagUtils";
|
||||
import {parseString} from "xml2js";
|
||||
|
||||
|
||||
class ValidateLanguageCompleteness extends DesugaringStep<any> {
|
||||
|
@ -19,7 +18,7 @@ class ValidateLanguageCompleteness extends DesugaringStep<any> {
|
|||
this._languages = languages;
|
||||
}
|
||||
|
||||
convert(state: DesugaringContext, obj: any, context: string): { result: LayerConfig; errors: string[]; warnings: string[] } {
|
||||
convert(obj: any, context: string): { result: LayerConfig; errors: string[] } {
|
||||
const errors = []
|
||||
const translations = Translation.ExtractAllTranslationsFrom(
|
||||
obj
|
||||
|
@ -34,7 +33,7 @@ class ValidateLanguageCompleteness extends DesugaringStep<any> {
|
|||
|
||||
return {
|
||||
result: obj,
|
||||
warnings: [], errors
|
||||
errors
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -55,9 +54,8 @@ class ValidateTheme extends DesugaringStep<LayoutConfigJson> {
|
|||
this._isBuiltin = isBuiltin;
|
||||
}
|
||||
|
||||
convert(state: DesugaringContext, json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors: string[]; warnings: string[] } {
|
||||
convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors: string[] } {
|
||||
const errors = []
|
||||
const warnings = []
|
||||
{
|
||||
// Legacy format checks
|
||||
if (this._isBuiltin) {
|
||||
|
@ -89,9 +87,8 @@ class ValidateTheme extends DesugaringStep<LayoutConfigJson> {
|
|||
}
|
||||
if (json["mustHaveLanguage"] !== undefined) {
|
||||
const checked = new ValidateLanguageCompleteness(...json["mustHaveLanguage"])
|
||||
.convert(state, theme, theme.id)
|
||||
.convert(theme, theme.id)
|
||||
errors.push(...checked.errors)
|
||||
warnings.push(...checked.warnings)
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
|
@ -100,8 +97,7 @@ class ValidateTheme extends DesugaringStep<LayoutConfigJson> {
|
|||
|
||||
return {
|
||||
result: json,
|
||||
errors,
|
||||
warnings
|
||||
errors
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -122,7 +118,7 @@ class OverrideShadowingCheck extends DesugaringStep<LayoutConfigJson>{
|
|||
super("Checks that an 'overrideAll' does not override a single override");
|
||||
}
|
||||
|
||||
convert(state: DesugaringContext, json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors?: string[]; warnings?: string[] } {
|
||||
convert(json: LayoutConfigJson, context: string): { result: LayoutConfigJson; errors?: string[]; warnings?: string[] } {
|
||||
|
||||
const overrideAll = json.overrideAll;
|
||||
if(overrideAll === undefined){
|
||||
|
@ -144,12 +140,10 @@ class OverrideShadowingCheck extends DesugaringStep<LayoutConfigJson>{
|
|||
return {result: json, errors}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
export class PrevalidateTheme extends Fuse<LayoutConfigJson>{
|
||||
|
||||
|
||||
constructor() {
|
||||
super("Various consistency checks on the raw JSON",
|
||||
new OverrideShadowingCheck()
|
||||
|
@ -157,7 +151,6 @@ export class PrevalidateTheme extends Fuse<LayoutConfigJson>{
|
|||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
export class DetectShadowedMappings extends DesugaringStep<TagRenderingConfigJson>{
|
||||
|
@ -165,7 +158,7 @@ export class DetectShadowedMappings extends DesugaringStep<TagRenderingConfigJso
|
|||
super("Checks that the mappings don't shadow each other");
|
||||
}
|
||||
|
||||
convert(state: DesugaringContext, json: TagRenderingConfigJson, context: string): { result: TagRenderingConfigJson; errors?: string[]; warnings?: string[] } {
|
||||
convert(json: TagRenderingConfigJson, context: string): { result: TagRenderingConfigJson; errors?: string[]; warnings?: string[] } {
|
||||
const errors = []
|
||||
if(json.mappings === undefined || json.mappings.length === 0){
|
||||
return {result: json}
|
||||
|
@ -218,7 +211,7 @@ export class ValidateLayer extends DesugaringStep<LayerConfigJson> {
|
|||
this._isBuiltin = isBuiltin;
|
||||
}
|
||||
|
||||
convert(state: DesugaringContext, json: LayerConfigJson, context: string): { result: LayerConfigJson; errors: string[]; warnings?: string[] } {
|
||||
convert(json: LayerConfigJson, context: string): { result: LayerConfigJson; errors: string[]; warnings?: string[] } {
|
||||
const errors = []
|
||||
const warnings = []
|
||||
|
||||
|
@ -315,7 +308,7 @@ export class ValidateLayer extends DesugaringStep<LayerConfigJson> {
|
|||
}
|
||||
}
|
||||
if(json.tagRenderings !== undefined){
|
||||
new DetectShadowedMappings().convertAll(state, <TagRenderingConfigJson[]> json.tagRenderings, context+".tagRenderings")
|
||||
new DetectShadowedMappings().convertAll(<TagRenderingConfigJson[]> json.tagRenderings, context+".tagRenderings")
|
||||
}
|
||||
|
||||
} catch (e) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue