diff --git a/types/knex-postgis/index.d.ts b/types/knex-postgis/index.d.ts new file mode 100644 index 0000000000..4d70e10883 --- /dev/null +++ b/types/knex-postgis/index.d.ts @@ -0,0 +1,65 @@ +// Type definitions for knex-postgis 0.2 +// Project: https://github.com/jfgodoy/knex-postgis +// Definitions by: Vesa Poikajärvi +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.1 + +import * as Knex from 'knex'; + +// Knex does not export this +type ColumnName = string | Knex.Raw | Knex.QueryBuilder; + +type KnexPostgis = KnexPostgis.KnexPostgis; + +declare function KnexPostgis(knex: Knex): KnexPostgis; + +// TODO: .as not working +declare namespace KnexPostgis { + interface KnexPostgis { + area(column: ColumnName): Knex.Raw; + + asText(column: ColumnName): Knex.Raw; + + asGeoJSON(column: ColumnName): Knex.Raw; + + asEWKT(column: ColumnName): Knex.Raw; + + // buffer + + centroid(column: ColumnName): Knex.Raw; + + distance(geom1: ColumnName, geom2: ColumnName): Knex.Raw; + + // dwithin + + // intersection + + // intersects + + // geography + + // geometry + + geomFromText(wkt: string, srid?: number): Knex.Raw; + + // geomFromGeoJSON + + // makeEnvelope + + // makePoint + + // makeValid + + point(x_lon: number, y_lat: number): Knex.Raw; + + transform(column: ColumnName, srid: number): Knex.Raw; + + // within + + x(column: ColumnName): Knex.Raw; + + y(column: ColumnName): Knex.Raw; + } +} + +export = KnexPostgis; diff --git a/types/knex-postgis/knex-postgis.tests.ts b/types/knex-postgis/knex-postgis.tests.ts new file mode 100644 index 0000000000..e69de29bb2 diff --git a/types/knex-postgis/tsconfig.json b/types/knex-postgis/tsconfig.json new file mode 100644 index 0000000000..d8dae4f5fc --- /dev/null +++ b/types/knex-postgis/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "koa-morgan-tests.ts" + ] +} diff --git a/types/knex-postgis/tslint.json b/types/knex-postgis/tslint.json new file mode 100644 index 0000000000..5b6c04888d --- /dev/null +++ b/types/knex-postgis/tslint.json @@ -0,0 +1,9 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + "unified-signatures": false, + "no-empty-interface": false, + "prefer-method-signature": false, + "callable-types": false + } +}