Skip to content

Commit

Permalink
Merge pull request #37 from TerriaJS/aremi-items
Browse files Browse the repository at this point in the history
AREMI catalog support
  • Loading branch information
nf-s authored Mar 3, 2021
2 parents 5ec3e89 + bc7ea0c commit 490b16f
Show file tree
Hide file tree
Showing 13 changed files with 956 additions and 226 deletions.
10 changes: 7 additions & 3 deletions src/Message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ export enum ModelType {
WfsGroup = "WebFeatureServiceCatalogGroup",
CsvItem = "CsvCatalogItem",
SosItem = "SensorObservationServiceCatalogItem",
EsriCatalogGroup = "EsriCatalogGroup",
EsriMapServerGroup = "EsriMapServerGroup",
EsriMapServerItem = "EsriMapServerCatalogItem",
EsriFeatureServerItem = "EsriFeatureServerCatalogItem",
WpsItem = "WpsItem",
Expand All @@ -24,6 +26,7 @@ export enum ModelType {
GeoJsonItem = "GeoJsonCatalogItem",
CartoMapCatalogItem = "CartoMapCatalogItem",
MapboxVectorTileCatalogItem = "MapboxVectorTileCatalogItem",
KmlCatalogItem = "KmlCatalogItem",
}

interface MessageBase {
Expand All @@ -49,9 +52,10 @@ export interface UnknownTypeDetails {

export interface InputNotPlainObjectDetails {}

const unknownPropOpaque = createOpaqueAPI<"UnknownProp", UnknownPropDetails>(
"UnknownProp"
);
export const unknownPropOpaque = createOpaqueAPI<
"UnknownProp",
UnknownPropDetails
>("UnknownProp");
export interface UnknownProp extends MessageBase {
details: ReturnType<typeof unknownPropOpaque.toOpaque>;
}
Expand Down
14 changes: 11 additions & 3 deletions src/convert.ts
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,6 @@ import {
} from "./converters/helpers";
import {
cartoMapCatalogItem,
ckanCatalogGroup,
ckanCatalogItem,
esriFeatureServerCatalogItem,
esriMapServerCatalogGroup,
esriMapServerCatalogItem,
Expand All @@ -31,6 +29,8 @@ import {
webFeatureServerCatalogGroup,
wpsCatalogItem,
wpsResultItem,
kmlCatalogItem,
esriCatalogGroup,
} from "./converters/other";
import { wmsCatalogGroup } from "./converters/WmsCatalogGroup";
import { wmsCatalogItem } from "./converters/WmsCatalogItem";
Expand All @@ -42,22 +42,28 @@ import {
unknownType,
} from "./Message";
import { CatalogMember, ConversionOptions, MemberResult } from "./types";
import { ckanCatalogGroup, ckanCatalogItem } from "./converters/Ckan";

// Use dependency injection to break circular dependencies created by
// group -> convertMembersArray -> convertMember -> group recursion
const convertMembersArray = convertMembersArrayWithConvertMember(convertMember);
const group = groupFromConvertMembersArray(convertMembersArray);

export type Converter = (
item: CatalogMember,
options: ConversionOptions
) => MemberResult;
// All catalog member properties, except type and name which are assigned individually

const converters = new Map([
export const converters: Map<string, Converter> = new Map([
["group", group],
["wms", wmsCatalogItem],
["wms-getCapabilities", wmsCatalogGroup],
["wfs-getCapabilities", webFeatureServerCatalogGroup],
["csv", csvCatalogItem],
["sos", sosCatalogItem],
["esri-mapServer", esriMapServerCatalogItem],
["esri-group", esriCatalogGroup],
["esri-mapServer-group", esriMapServerCatalogGroup],
["esri-featureServer", esriFeatureServerCatalogItem],
["ckan", ckanCatalogGroup],
Expand All @@ -67,6 +73,8 @@ const converters = new Map([
["wps-result", wpsResultItem],
["carto", cartoMapCatalogItem],
["mvt", mapboxVectorTileCatalogItem],

["kml", kmlCatalogItem],
]);

// For more default options see `src\cli.ts` arguments defaults
Expand Down
Loading

0 comments on commit 490b16f

Please sign in to comment.