forked from geoarrow/geoarrow-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdata.ts
55 lines (48 loc) · 1.32 KB
/
data.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
import { Data } from "apache-arrow";
import {
WKB,
Point,
LineString,
Polygon,
MultiPoint,
MultiLineString,
MultiPolygon,
isPoint,
isLineString,
isPolygon,
isMultiPoint,
isMultiLineString,
isMultiPolygon,
} from "./type";
export type PointData = Data<Point>;
export type LineStringData = Data<LineString>;
export type PolygonData = Data<Polygon>;
export type MultiPointData = Data<MultiPoint>;
export type MultiLineStringData = Data<MultiLineString>;
export type MultiPolygonData = Data<MultiPolygon>;
export type GeoArrowData =
| PointData
| LineStringData
| PolygonData
| MultiPointData
| MultiLineStringData
| MultiPolygonData;
export type WKBData = Data<WKB>;
export function isPointData(data: Data): data is PointData {
return isPoint(data.type);
}
export function isLineStringData(data: Data): data is LineStringData {
return isLineString(data.type);
}
export function isPolygonData(data: Data): data is PolygonData {
return isPolygon(data.type);
}
export function isMultiPointData(data: Data): data is MultiPointData {
return isMultiPoint(data.type);
}
export function isMultiLineStringData(data: Data): data is MultiLineStringData {
return isMultiLineString(data.type);
}
export function isMultiPolygonData(data: Data): data is MultiPolygonData {
return isMultiPolygon(data.type);
}