Skip to content

Commit c9e1fd0

Browse files
committed
Initial commit.
0 parents  commit c9e1fd0

File tree

10 files changed

+103
-0
lines changed

10 files changed

+103
-0
lines changed

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
dist/
2+
node_modules/
3+
4+
yarn.lock
5+
yarn-error.log

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Read [plugin-sample](https://github.com/terriajs/plugin-sample) for now.

package.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "terriajs-plugin-api",
3+
"version": "0.0.1",
4+
"description": "An (experimental) API for writing plugins for terriajs.",
5+
"repository": "https://github.com/terriajs/plugin-api",
6+
"license": "Apache-2.0",
7+
"module": "dist/index.js",
8+
"types": "dist/index.d.ts",
9+
"devDependencies": {
10+
"@types/styled-components": "^5.1.24",
11+
"prettier": "^2.6.1",
12+
"terriajs": "https://github.com/terriajs/terriajs#15751503bc6024b7e0cc0cab72f662fd9d32d3a7",
13+
"typescript": "^3.9.4"
14+
}
15+
}

src/Mixins.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
export { default as CatalogMemberMixin } from "terriajs/lib/ModelMixins/CatalogMemberMixin";
2+
export { default as MappableMixin } from "terriajs/lib/ModelMixins/MappableMixin";
3+
export { default as TableMixin } from "terriajs/lib/ModelMixins/TableMixin";

src/Models.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
export { MapItem } from "terriajs/lib/ModelMixins/MappableMixin";
2+
export { default as BoxDrawing } from "terriajs/lib/Models/BoxDrawing";
3+
export { default as CatalogMemberFactory } from "terriajs/lib/Models/Catalog/CatalogMemberFactory";
4+
export { default as CommonStrata } from "terriajs/lib/Models/Definition/CommonStrata";
5+
export { default as CreateModel } from "terriajs/lib/Models/Definition/CreateModel";
6+
export { default as Model } from "terriajs/lib/Models/Definition/Model";
7+
export { default as Terria } from "terriajs/lib/Models/Terria";
8+
export { default as UserDrawing } from "terriajs/lib/Models/UserDrawing";
9+
export { default as ViewerMode } from "terriajs/lib/Models/ViewerMode";
10+
export { default as ViewState } from "terriajs/lib/ReactViewModels/ViewState";
11+
export { default as MapNavigationItemController } from "terriajs/lib/ViewModels/MapNavigation/MapNavigationItemController";

src/TerriaPlugin.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import ViewState from "terriajs/lib/ReactViewModels/ViewState";
2+
3+
export interface TerriaPlugin {
4+
name: string;
5+
description: string;
6+
version: string;
7+
register: (ctx: TerriaPluginContext) => void;
8+
}
9+
10+
export interface TerriaPluginContext {
11+
viewState: ViewState;
12+
}
13+
14+
export function createPluginContext(viewState: ViewState): TerriaPluginContext {
15+
return {
16+
viewState
17+
}
18+
}

src/Traits.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
export { default as anyTrait } from "terriajs/lib/Traits/Decorators/anyTrait";
2+
export { default as modelReferenceArrayTrait } from "terriajs/lib/Traits/Decorators/modelReferenceArrayTrait";
3+
export { default as modelReferenceTrait } from "terriajs/lib/Traits/Decorators/modelReferenceTrait";
4+
export { default as objectArrayTrait } from "terriajs/lib/Traits/Decorators/objectArrayTrait";
5+
export { default as objectTrait } from "terriajs/lib/Traits/Decorators/objectTrait";
6+
export { default as primitiveArrayTrait } from "terriajs/lib/Traits/Decorators/primitiveArrayTrait";
7+
export { default as primitiveTrait } from "terriajs/lib/Traits/Decorators/primitiveTrait";
8+
export { default as mixTraits } from "terriajs/lib/Traits/mixTraits";
9+
export { default as ModelTraits } from "terriajs/lib/Traits/ModelTraits";
10+
export { default as CatalogMemberTraits } from "terriajs/lib/Traits/TraitsClasses/CatalogMemberTraits";
11+
export { default as HeadingPitchRollTraits } from "terriajs/lib/Traits/TraitsClasses/HeadingPitchRollTraits";
12+
export { default as LatLonHeightTraits } from "terriajs/lib/Traits/TraitsClasses/LatLonHeightTraits";
13+
export { default as MappableTraits } from "terriajs/lib/Traits/TraitsClasses/MappableTraits";
14+
export { default as TransformationTraits } from "terriajs/lib/Traits/TraitsClasses/TransformationTraits";

src/Views.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
export { default as Box } from "terriajs/lib/Styled/Box";
2+
export { default as Icon } from "terriajs/lib/Styled/Icon";

src/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
export * from "./TerriaPlugin";
2+
export * from "./Models";
3+
export * from "./Traits";
4+
export * from "./Mixins";
5+
export * from "./Views";

tsconfig.json

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
{
2+
"compilerOptions": {
3+
"module": "esNext",
4+
"target": "es6",
5+
"moduleResolution": "node",
6+
"outDir": "dist/",
7+
"jsx": "react",
8+
"experimentalDecorators": true,
9+
"allowSyntheticDefaultImports": true,
10+
"resolveJsonModule": true,
11+
"allowJs": true,
12+
"declaration": true,
13+
"strict": true,
14+
// Although this can result in subtle bugs, they are required for us to
15+
// ignore TS errors on js files inside terria. We'll get rid of them when
16+
// we have a proper terria bundle with type declarations.
17+
// "noImplicitAny": false,
18+
// "strictNullChecks": false,
19+
// Should these thirdparty types be included in terriajs tsconfig "types" settings,
20+
// so that we can avoid specifying it here?
21+
// Refer: https://www.typescriptlang.org/tsconfig#types
22+
"typeRoots": [
23+
"node_modules/terriajs/lib/ThirdParty",
24+
// need this if we are in a yarn workspace
25+
"../../node_modules/terriajs/lib/ThirdParty"
26+
]
27+
},
28+
"include": ["src"]
29+
}

0 commit comments

Comments
 (0)