Skip to content

Commit 30654f1

Browse files
committed
Convert CJS require() to ESM import statements.
This requires, in some places: - simply swapping require with import - creating a stub .d.ts module definition in lib/ThirdParty - updating the library to get new bundled type definitions - file-saver - react-responsive - or adding @types/x as dependency - @types/proj4 Remaining require() imports are all for static assets or web workers which can be fixed when upgrading to webpack 5.
1 parent 7129b24 commit 30654f1

File tree

40 files changed

+75
-82
lines changed

40 files changed

+75
-82
lines changed

lib/Core/ConsoleAnalytics.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
var defined = require("terriajs-cesium/Source/Core/defined").default;
2-
const i18next = require("i18next").default;
1+
import defined from "terriajs-cesium/Source/Core/defined";
2+
import i18next from "i18next";
33

4-
var ConsoleAnalytics = function () {
4+
const ConsoleAnalytics = function () {
55
// either set enableConsoleAnalytics here to true,
66
// or pass true in `configParameters.enableConsoleAnalytics` for verbose app analytics
77
this.enableConsoleAnalytics = false;

lib/Core/ServerConfig.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
const i18next = require("i18next").default;
2-
var defaultValue = require("terriajs-cesium/Source/Core/defaultValue").default;
3-
var loadJson = require("./loadJson").default;
1+
import i18next from "i18next";
2+
import defaultValue from "terriajs-cesium/Source/Core/defaultValue";
3+
import loadJson from "./loadJson";
44

5-
var DEFAULT_URL = "serverconfig/";
5+
const DEFAULT_URL = "serverconfig/";
66
/**
77
* Provides information about the configuration of the Terria server, by querying /serverconfig
88
*/

lib/Core/loadWithXhr.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
1-
const defaultValue =
2-
require("terriajs-cesium/Source/Core/defaultValue").default;
3-
const Resource = require("terriajs-cesium/Source/Core/Resource").default;
1+
import defaultValue from "terriajs-cesium/Source/Core/defaultValue";
2+
import Resource from "terriajs-cesium/Source/Core/Resource";
43

54
function loadWithXhr(options) {
65
// Take advantage that most parameters are the same

lib/Map/ImageryProvider/ProtomapsImageryProvider.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,7 @@ import {
4242
import { default as TerriaFeature } from "../../Models/Feature/Feature";
4343
import Terria from "../../Models/Terria";
4444
import { ImageryProviderWithGridLayerSupport } from "../Leaflet/ImageryProviderLeafletGridLayer";
45-
46-
const geojsonvt = require("geojson-vt").default;
45+
import geojsonvt from "geojson-vt";
4746

4847
type GeojsonVtFeature = {
4948
id: any;

lib/Map/Leaflet/LeafletSelectionIndicator.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@ import Ellipsoid from "terriajs-cesium/Source/Core/Ellipsoid";
55
import CesiumMath from "terriajs-cesium/Source/Core/Math";
66
import TweenCollection from "terriajs-cesium/Source/Scene/TweenCollection";
77
import isDefined from "../../Core/isDefined";
8-
98
import Leaflet from "../../Models/Leaflet";
109

1110
const selectionIndicatorUrl = require("../../../wwwroot/images/NM-LocationTarget.svg");

lib/Map/PickedFeatures/featureDataToGeoJson.ts

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
"use strict";
2-
31
import Point from "@mapbox/point-geometry";
42
import {
53
Feature as GeoJsonFeature,
@@ -26,8 +24,7 @@ import {
2624
toFeatureCollection
2725
} from "../../ModelMixins/GeojsonMixin";
2826
import computeRingWindingOrder from "../Vector/computeRingWindingOrder";
29-
30-
const pointInPolygon = require("point-in-polygon");
27+
import pointInPolygon from "point-in-polygon";
3128

3229
/**
3330
* Converts feature data, such as from a WMS GetFeatureInfo or an Esri Identify, to

lib/Map/Vector/prettifyProjection.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const proj4 = require("proj4/lib/index.js").default;
1+
import proj4 from "proj4";
22

33
/**
44
* Turns the longitude / latitude in degrees into a human readable pretty UTM zone representation.

lib/ModelMixins/GroupMixin.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ import GroupTraits from "../Traits/TraitsClasses/GroupTraits";
1919
import { ItemPropertiesTraits } from "../Traits/TraitsClasses/ItemPropertiesTraits";
2020
import CatalogMemberMixin, { getName } from "./CatalogMemberMixin";
2121
import ReferenceMixin from "./ReferenceMixin";
22+
import naturalSort from "javascript-natural-sort";
2223

23-
const naturalSort = require("javascript-natural-sort");
2424
naturalSort.insensitive = true;
2525

2626
const MERGED_GROUP_ID_PREPEND = "__merged__";

lib/Models/Catalog/CatalogItems/GpxCatalogItem.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@ import GpxCatalogItemTraits from "../../../Traits/TraitsClasses/GpxCatalogItemTr
1212
import CreateModel from "../../Definition/CreateModel";
1313
import { ModelConstructorParameters } from "../../Definition/Model";
1414
import proxyCatalogItemUrl from "../proxyCatalogItemUrl";
15-
16-
const toGeoJSON = require("@mapbox/togeojson");
15+
import toGeoJSON from "@mapbox/togeojson";
1716

1817
class GpxCatalogItem extends GeoJsonMixin(CreateModel(GpxCatalogItemTraits)) {
1918
static readonly type = "gpx";

lib/Models/Catalog/Esri/ArcGisFeatureServerCatalogItem.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,7 @@ import StratumFromTraits from "../../Definition/StratumFromTraits";
3838
import StratumOrder from "../../Definition/StratumOrder";
3939
import { ModelConstructorParameters } from "../../Definition/Model";
4040
import proxyCatalogItemUrl from "../proxyCatalogItemUrl";
41-
42-
const proj4 = require("proj4").default;
41+
import proj4 from "proj4";
4342

4443
interface DocumentInfo {
4544
Author?: string;
@@ -257,7 +256,9 @@ class FeatureServerStratum extends LoadableStratum(
257256
return undefined;
258257
}
259258

259+
// @ts-expect-error @types/proj4 doesn't define a constructor type
260260
const source = new proj4.Proj((proj4definitions as any)[wkid]);
261+
// @ts-expect-error @types/proj4 doesn't define a constructor type
261262
const dest = new proj4.Proj("EPSG:4326");
262263

263264
let p = proj4(source, dest, [extent.xmin, extent.ymin]);

0 commit comments

Comments
 (0)