tachybase_todo/packages/plugins/map/src/server/value-parsers/index.ts
2023-02-16 23:56:00 +08:00

56 lines
1.4 KiB
TypeScript

import { BaseValueParser } from '@nocobase/database';
export class PointValueParser extends BaseValueParser {
async setValue(value) {
if (Array.isArray(value)) {
this.value = value;
} else if (typeof value === 'string') {
this.value = value.split(',');
} else {
this.errors.push('Value invalid');
}
}
}
export class PolygonValueParser extends BaseValueParser {
async setValue(value) {
if (Array.isArray(value)) {
this.value = value;
} else if (typeof value === 'string') {
this.value = value
.substring(1, value.length - 1)
.split('),(')
.map((v) => v.split(','));
} else {
this.errors.push('Value invalid');
}
}
}
export class LineStringValueParser extends BaseValueParser {
async setValue(value) {
if (Array.isArray(value)) {
this.value = value;
} else if (typeof value === 'string') {
this.value = value
.substring(1, value.length - 1)
.split('),(')
.map((v) => v.split(','));
} else {
this.errors.push('Value invalid');
}
}
}
export class CircleValueParser extends BaseValueParser {
async setValue(value) {
if (Array.isArray(value)) {
this.value = value;
} else if (typeof value === 'string') {
this.value = value.split(',');
} else {
this.errors.push('Value invalid');
}
}
}