Security News
tea.xyz Spam Plagues npm and RubyGems Package Registries
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
@holvonix-open/geojson-io-ts
Advanced tools
Readme
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)
The npm package @holvonix-open/geojson-io-ts receives a total of 3 weekly downloads. As such, @holvonix-open/geojson-io-ts popularity was classified as not popular.
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
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.
Security News
UnitedHealth Group disclosed that the ransomware attack on Change Healthcare compromised protected health information for millions in the U.S., with estimated costs to the company expected to reach $1 billion.