forked from geoarrow/geoarrow-js
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchild.ts
103 lines (84 loc) · 2.6 KB
/
child.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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/**
* Strongly typed accessors for children, since arrow.Data.children[] is untyped
*/
import { Data, Vector, type Float } from "apache-arrow";
import {
LineStringData,
MultiLineStringData,
MultiPointData,
MultiPolygonData,
PointData,
PolygonData,
} from "./data";
import {
LineStringVector,
MultiLineStringVector,
MultiPointVector,
MultiPolygonVector,
PointVector,
PolygonVector,
} from "./vector";
export function getPointChild(input: PointData): Data<Float>;
export function getPointChild(input: PointVector): Vector<Float>;
export function getPointChild(
input: PointData | PointVector,
): Data<Float> | Vector<Float> {
if ("data" in input) {
return input.getChildAt(0)!;
}
return input.children[0] as Data<Float>;
}
export function getLineStringChild(input: LineStringData): PointData;
export function getLineStringChild(input: LineStringVector): PointVector;
export function getLineStringChild(
input: LineStringData | LineStringVector,
): PointData | PointVector {
if ("data" in input) {
return input.getChildAt(0)!;
}
return input.children[0] as PointData;
}
export function getPolygonChild(input: PolygonData): LineStringData;
export function getPolygonChild(input: PolygonVector): LineStringVector;
export function getPolygonChild(
input: PolygonData | PolygonVector,
): LineStringData | LineStringVector {
if ("data" in input) {
return input.getChildAt(0)!;
}
return input.children[0] as LineStringData;
}
export function getMultiPointChild(input: MultiPointData): PointData;
export function getMultiPointChild(input: MultiPointVector): PointVector;
export function getMultiPointChild(
input: MultiPointData | MultiPointVector,
): PointData | PointVector {
if ("data" in input) {
return input.getChildAt(0)!;
}
return input.children[0] as PointData;
}
export function getMultiLineStringChild(
input: MultiLineStringData,
): LineStringData;
export function getMultiLineStringChild(
input: MultiLineStringVector,
): LineStringVector;
export function getMultiLineStringChild(
input: MultiLineStringData | MultiLineStringVector,
): LineStringData | LineStringVector {
if ("data" in input) {
return input.getChildAt(0)!;
}
return input.children[0] as LineStringData;
}
export function getMultiPolygonChild(input: MultiPolygonData): PolygonData;
export function getMultiPolygonChild(input: MultiPolygonVector): PolygonVector;
export function getMultiPolygonChild(
input: MultiPolygonData | MultiPolygonVector,
): PolygonData | PolygonVector {
if ("data" in input) {
return input.getChildAt(0)!;
}
return input.children[0] as PolygonData;
}