From e063f03d60f8b092067d8f8b8edefe8dd272bc8a Mon Sep 17 00:00:00 2001 From: Bond Date: Thu, 26 Oct 2017 19:26:57 +0100 Subject: [PATCH] Add typings for mongoose-geojson-schema (#21028) * Add typings fro mongoose-geojson-schema * Fix lint errors --- types/mongoose-geojson-schema/index.d.ts | 79 +++++++++++++++++++ .../mongoose-geojson-schema-tests.ts | 22 ++++++ types/mongoose-geojson-schema/tsconfig.json | 23 ++++++ types/mongoose-geojson-schema/tslint.json | 1 + 4 files changed, 125 insertions(+) create mode 100644 types/mongoose-geojson-schema/index.d.ts create mode 100644 types/mongoose-geojson-schema/mongoose-geojson-schema-tests.ts create mode 100644 types/mongoose-geojson-schema/tsconfig.json create mode 100644 types/mongoose-geojson-schema/tslint.json diff --git a/types/mongoose-geojson-schema/index.d.ts b/types/mongoose-geojson-schema/index.d.ts new file mode 100644 index 0000000000..2cd97a8141 --- /dev/null +++ b/types/mongoose-geojson-schema/index.d.ts @@ -0,0 +1,79 @@ +// Type definitions for mongoose-geojson-schema 2.1 +// Project: https://github.com/rideamigoscorp/mongoose-geojson-schema#readme +// Definitions by: Bond +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +import mongoose = require('mongoose'); + +declare module 'mongoose' { + namespace Schema { + namespace Types { + class GeoJSON extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'GeoJSON'; + } + + class Point extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'Point'; + } + + class MultiPoint extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'MultiPoint'; + } + + class LineString extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'LineString'; + } + + class MultiLineString extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'MultiLineString'; + } + + class Polygon extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'Polygon'; + } + + class MultiPolygon extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'MultiPolygon'; + } + + class Geometry extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'Geometry'; + } + + class GeometryCollection extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'GeometryCollection'; + } + + class Feature extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'Feature'; + } + + class FeatureCollection extends SchemaType { + constructor(key: string, options?: object); + cast(geojson: object): this; + static schemaName: 'FeatureCollection'; + } + } + } +} diff --git a/types/mongoose-geojson-schema/mongoose-geojson-schema-tests.ts b/types/mongoose-geojson-schema/mongoose-geojson-schema-tests.ts new file mode 100644 index 0000000000..3694ab5144 --- /dev/null +++ b/types/mongoose-geojson-schema/mongoose-geojson-schema-tests.ts @@ -0,0 +1,22 @@ +'use strict'; + +import * as mongoose from 'mongoose'; +import * as mongooseGeoJSONSchema from 'mongoose-geojson-schema'; + +const TestSchema = new mongoose.Schema( + { + title: String, + test: {}, + point: mongoose.Schema.Types.Point, + multipoint: mongoose.Schema.Types.MultiPoint, + linestring: mongoose.Schema.Types.LineString, + multilinestring: mongoose.Schema.Types.MultiLineString, + polygon: mongoose.Schema.Types.Polygon, + multipolygon: mongoose.Schema.Types.MultiPolygon, + geometry: mongoose.Schema.Types.Geometry, + geometrycollection: mongoose.Schema.Types.GeometryCollection, + feature: mongoose.Schema.Types.Feature, + featurecollection: mongoose.Schema.Types.FeatureCollection, + }, + { typeKey: '$type', collection: 'echoes' } +); diff --git a/types/mongoose-geojson-schema/tsconfig.json b/types/mongoose-geojson-schema/tsconfig.json new file mode 100644 index 0000000000..9d3afc8952 --- /dev/null +++ b/types/mongoose-geojson-schema/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "mongoose-geojson-schema-tests.ts" + ] +} diff --git a/types/mongoose-geojson-schema/tslint.json b/types/mongoose-geojson-schema/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/mongoose-geojson-schema/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }