zod-geojson 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +107 -0
- package/lib/base.d.ts +9 -0
- package/lib/base.d.ts.map +1 -0
- package/lib/base.js +8 -0
- package/lib/bbox.d.ts +4 -0
- package/lib/bbox.d.ts.map +1 -0
- package/lib/bbox.js +9 -0
- package/lib/feature.d.ts +634 -0
- package/lib/feature.d.ts.map +1 -0
- package/lib/feature.js +37 -0
- package/lib/feature_collection.d.ts +3174 -0
- package/lib/feature_collection.d.ts.map +1 -0
- package/lib/feature_collection.js +61 -0
- package/lib/geometry/_simple.d.ts +122 -0
- package/lib/geometry/_simple.d.ts.map +1 -0
- package/lib/geometry/_simple.js +14 -0
- package/lib/geometry/geometry_collection.d.ts +18 -0
- package/lib/geometry/geometry_collection.d.ts.map +1 -0
- package/lib/geometry/geometry_collection.js +60 -0
- package/lib/geometry/index.d.ts +131 -0
- package/lib/geometry/index.d.ts.map +1 -0
- package/lib/geometry/index.js +27 -0
- package/lib/geometry/line_string.d.ts +25 -0
- package/lib/geometry/line_string.d.ts.map +1 -0
- package/lib/geometry/line_string.js +33 -0
- package/lib/geometry/multi_line_string.d.ts +24 -0
- package/lib/geometry/multi_line_string.d.ts.map +1 -0
- package/lib/geometry/multi_line_string.js +32 -0
- package/lib/geometry/multi_point.d.ts +24 -0
- package/lib/geometry/multi_point.d.ts.map +1 -0
- package/lib/geometry/multi_point.js +32 -0
- package/lib/geometry/multi_polygon.d.ts +24 -0
- package/lib/geometry/multi_polygon.d.ts.map +1 -0
- package/lib/geometry/multi_polygon.js +44 -0
- package/lib/geometry/point.d.ts +24 -0
- package/lib/geometry/point.d.ts.map +1 -0
- package/lib/geometry/point.js +25 -0
- package/lib/geometry/polygon.d.ts +28 -0
- package/lib/geometry/polygon.d.ts.map +1 -0
- package/lib/geometry/polygon.js +51 -0
- package/lib/geometry/validation/bbox.d.ts +50 -0
- package/lib/geometry/validation/bbox.d.ts.map +1 -0
- package/lib/geometry/validation/bbox.js +184 -0
- package/lib/geometry/validation/dimension.d.ts +16 -0
- package/lib/geometry/validation/dimension.d.ts.map +1 -0
- package/lib/geometry/validation/dimension.js +54 -0
- package/lib/geometry/validation/keys.d.ts +6 -0
- package/lib/geometry/validation/keys.d.ts.map +1 -0
- package/lib/geometry/validation/keys.js +14 -0
- package/lib/index.d.ts +3930 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +29 -0
- package/lib/position.d.ts +5 -0
- package/lib/position.d.ts.map +1 -0
- package/lib/position.js +8 -0
- package/lib/type.d.ts +6 -0
- package/lib/type.d.ts.map +1 -0
- package/lib/type.js +15 -0
- package/package.json +41 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature.d.ts","sourceRoot":"","sources":["../src/feature.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAsBxB,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gCAe3B,CAAC;AAEP,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
package/lib/feature.js
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GeoJSONFeatureSchema = void 0;
|
|
4
|
+
var zod_1 = require("zod");
|
|
5
|
+
var base_1 = require("./base");
|
|
6
|
+
var geometry_1 = require("./geometry");
|
|
7
|
+
var bbox_1 = require("./geometry/validation/bbox");
|
|
8
|
+
var INVALID_FEATURE_KEYS_ISSUE = {
|
|
9
|
+
code: "custom",
|
|
10
|
+
message: 'GeoJSON feature cannot have "coordinates", "features", or "geometries" keys',
|
|
11
|
+
};
|
|
12
|
+
function validFeatureKeys(feature) {
|
|
13
|
+
return !("coordinates" in feature) && !("features" in feature) && !("geometries" in feature);
|
|
14
|
+
}
|
|
15
|
+
function validFeatureBbox(_a) {
|
|
16
|
+
var bbox = _a.bbox, geometry = _a.geometry;
|
|
17
|
+
if (!bbox || !geometry) {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
var expectedBbox = (0, bbox_1.getBboxForGeometry)(geometry);
|
|
21
|
+
return (0, bbox_1.bboxEquals)(expectedBbox, bbox);
|
|
22
|
+
}
|
|
23
|
+
exports.GeoJSONFeatureSchema = base_1.GeoJSONBaseSchema.extend({
|
|
24
|
+
id: zod_1.z.string().or(zod_1.z.number()).optional(),
|
|
25
|
+
type: zod_1.z.literal("Feature"),
|
|
26
|
+
geometry: geometry_1.GeoJSONGeometrySchema.nullable(),
|
|
27
|
+
properties: zod_1.z.object({}).passthrough().nullable(),
|
|
28
|
+
})
|
|
29
|
+
.passthrough()
|
|
30
|
+
.superRefine(function (val, ctx) {
|
|
31
|
+
if (!validFeatureKeys(val)) {
|
|
32
|
+
ctx.addIssue(INVALID_FEATURE_KEYS_ISSUE);
|
|
33
|
+
}
|
|
34
|
+
if (!validFeatureBbox(val)) {
|
|
35
|
+
ctx.addIssue(bbox_1.INVALID_BBOX_ISSUE);
|
|
36
|
+
}
|
|
37
|
+
});
|