![Oracle Drags Its Feet in the JavaScript Trademark Dispute](https://cdn.sanity.io/images/cgdhsj6q/production/919c3b22c24f93884c548d60cbb338e819ff2435-1024x1024.webp?w=400&fit=max&auto=format)
Security News
Oracle Drags Its Feet in the JavaScript Trademark Dispute
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
@holvonix-open/geojson-io-ts
Advanced tools
Runtime types for GeoJSON (limited to 2-dimensional positions)
Runtime types for GeoJSON as defined in rfc7946 made with io-ts, but with positions limited to 2 dimensions.
Forked from https://github.com/pierremarc/geojson-iots . This fork:
npm install @holvonix-open/geojson-io-ts
import * as io from 'io-ts';
import {FeatureCollectionIO, FeatureCollection} from '@holvonix-open/geojson-io-ts';
const failure = () => {throw (new Error('Failed'));};
const success = <T>(a:T) => a;
const someGeoJSON: any= {/* data to be checked */};
const data: FeatureCollection = io.validate(someGeoJSON, FeatureCollectionIO).fold(failure, success);
This module defines the following runtime types
DirecGeometryTypeIO
GeometryTypeIO
GeoJsonTypeIO
GeoJsonObjectIO
PositionIO
DirectGeometryObjectIO
GeometryObjectIO
PointIO
MultiPointIO
LineStringIO
MultiLineStringIO
PolygonIO
MultiPolygonIO
FeatureIO
FeatureCollectionIO
PropertiesIO
Their resulting Typescript types are of the same name minus the "IO" suffix.
It'd be useful to validate feature properties with a type parameter. Something like:
const PropTypeIO = io.interface({
color: io.string,
timestamp: io.number,
});
const MyTypeIO = FeatureCollectionIO(PropTypeIO);
io.validate({/* any */}, MyTypeIO);
Done with PartialFeatureIO
, but not used yet so I keep it here in the todo list. From the test file:
export const MyPropType = io.interface({
a: io.string,
b: io.number,
});
export const MyFeatureType = PartialFeatureIO(MyPropType, 'MyFeatureType');
export type MFT = io.TypeOf<typeof MyFeatureType>;
export const myFeatureBad: any = {
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [0, 0],
},
properties: {
a: 1,
b: 'a',
},
};
export const myFeatureGood: MFT = {
type: 'Feature',
geometry: {
type: 'Point',
coordinates: [0, 0],
},
properties: {
a: 'a',
b: 1,
},
};
io.validate(myFeatureGood, MyFeatureType).fold(
bad('myFeatureGood should validate'),
good('myFeatureGood validates as it should'),
);
io.validate(myFeatureBad, MyFeatureType).fold(
good('myFeatureBad fails to validate as it should'),
bad('myFeatureBad should not validate'),
);
// logs
// GOOD myFeatureGood validates as it should
// GOOD myFeatureBad fails to validate as it should
FAQs
Runtime types for GeoJSON (limited to 2-dimensional positions)
We found that @holvonix-open/geojson-io-ts demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Oracle seeks to dismiss fraud claims in the JavaScript trademark dispute, delaying the case and avoiding questions about its right to the name.
Security News
The Linux Foundation is warning open source developers that compliance with global sanctions is mandatory, highlighting legal risks and restrictions on contributions.
Security News
Maven Central now validates Sigstore signatures, making it easier for developers to verify the provenance of Java packages.