Add initial exports and externs

This commit is contained in:
Tom Payne
2012-09-26 18:22:40 +02:00
parent 3b11398f35
commit 546f1f4b9f
11 changed files with 205 additions and 8 deletions

1
.gitignore vendored
View File

@@ -2,6 +2,7 @@
/build/ol.js
/build/ol-all.js
/build/proj4js-combined.js
/build/require-all.js
/build/apidoc
/demos/*/advanced-optimizations.*
/demos/*/build.html

View File

@@ -8,21 +8,26 @@ empty :=
space := $(empty) $(empty)
.PHONY: all
all: build demos
all: build-all build demos
.PHONY: precommit
precommit: lint test build
precommit: lint build-all test build
.PHONY: build
build: build/ol.js
build/ol.js: $(PLOVR_JAR) $(SRC) base.json \
build/ol.json build/ol-all.js
build/ol.js: $(PLOVR_JAR) $(SRC) base.json build/ol.json
java -jar $(PLOVR_JAR) build build/ol.json >$@
@echo $@ "uncompressed:" $$(wc -c <$@) bytes
@echo $@ " compressed:" $$(gzip -9 -c <$@ | wc -c) bytes
build/ol-all.js: $(SRC)
.PHONY: build-all
build-all: build/ol-all.js
build/ol-all.js: $(PLOVR_JAR) $(SRC) base.json build/ol-all.json build/require-all.js
java -jar $(PLOVR_JAR) build build/ol-all.json >$@ || ( rm -f $@ ; false )
build/require-all.js: $(SRC)
( echo "goog.require('goog.dom');" ; find src/ol -name \*.js | xargs grep -rh ^goog.provide | sort | uniq | sed -e 's/provide/require/g' ) >$@
.PHONY: demos
@@ -95,8 +100,8 @@ demos/two-layers/index.html: demos/two-layers/template.html.in
sed -e 's|@SRC@|../loader.js?id=demo-two-layers|' $< >$@
.PHONY: serve
serve: $(PLOVR_JAR) build/ol-all.js
java -jar $(PLOVR_JAR) serve build/ol.json demos/*/*.json
serve: $(PLOVR_JAR) build/require-all.js
java -jar $(PLOVR_JAR) serve build/*.json demos/*/*.json
.PHONY: lint
lint:
@@ -120,6 +125,7 @@ test:
clean:
rm -f build/ol.js
rm -f build/ol-all.js
rm -f build/require-all.js
rm -f demos/*/*.html
rm -f demos/*/advanced-optimizations.*
rm -rf build/apidoc

11
build/ol-all.json Normal file
View File

@@ -0,0 +1,11 @@
{
"id": "ol-all",
"inherits": "../base.json",
"inputs": [
"build/require-all.js"
]
}

View File

@@ -2,13 +2,26 @@
"id": "ol",
"externs": [
"externs/bingmaps.js",
"externs/ol.js",
"externs/proj4js.js",
"externs/tilejson.js"
],
"inherits": "../base.json",
"inputs": [
"build/ol-all.js",
"src/ol/mapoptions.js",
"exports/ol/collection.js",
"exports/ol/coordinate.js",
"exports/ol/extent.js",
"exports/ol/layer/bingmaps.js",
"exports/ol/layer/mapquest.js",
"exports/ol/layer/openstreetmap.js",
"exports/ol/layer/tilejson.js",
"exports/ol/layer/stamen.js",
"exports/ol/map.js",
"exports/ol/object.js",
"exports/ol/projection.js"
],

View File

@@ -0,0 +1,3 @@
goog.require('ol.layer.BingMaps');
goog.exportSymbol('ol.layer.BingMaps', ol.layer.BingMaps);

View File

@@ -0,0 +1,5 @@
goog.require('ol.layer.MapQuestOSM');
goog.require('ol.layer.MapQuestOpenAerial');
goog.exportSymbol('ol.layer.MapQuestOSM', ol.layer.MapQuestOSM);
goog.exportSymbol('ol.layer.MapQuestOpenAerial', ol.layer.MapQuestOpenAerial);

View File

@@ -0,0 +1,3 @@
goog.require('ol.layer.OpenStreetMap');
goog.exportSymbol('ol.layer.OpenStreetMap', ol.layer.OpenStreetMap);

View File

@@ -0,0 +1,3 @@
goog.require('ol.layer.Stamen');
goog.exportSymbol('ol.layer.Stamen', ol.layer.Stamen);

View File

@@ -0,0 +1,3 @@
goog.require('ol.layer.TileJSON');
goog.exportSymbol('ol.layer.TileJSON', ol.layer.TileJSON);

37
exports/ol/map.js Normal file
View File

@@ -0,0 +1,37 @@
goog.require('ol.Map');
/**
* @constructor
* @extends {ol.Map}
* @param {Element} container Container.
* @param {olx.MapOptionsExtern} mapOptionsExtern Map options literal.
* @param {goog.dom.ViewportSizeMonitor=} opt_viewportSizeMonitor
* Viewport size monitor.
*/
ol.MapExport = function(container, mapOptionsExtern, opt_viewportSizeMonitor) {
goog.base(this, container, {
center: mapOptionsExtern.center,
doubleClickZoom: mapOptionsExtern.doubleClickZoom,
dragPan: mapOptionsExtern.dragPan,
interactions: mapOptionsExtern.interactions,
keyboard: mapOptionsExtern.keyboard,
keyboardPanOffset: mapOptionsExtern.keyboardPanOffset,
layers: mapOptionsExtern.layers,
mouseWheelZoom: mapOptionsExtern.mouseWheelZoom,
projection: mapOptionsExtern.projection,
renderer: mapOptionsExtern.renderer,
renderers: mapOptionsExtern.renderers,
resolution: mapOptionsExtern.resolution,
rotate: mapOptionsExtern.rotate,
shiftDragZoom: mapOptionsExtern.shiftDragZoom,
userProjection: mapOptionsExtern.userProjection,
zoom: mapOptionsExtern.zoom
}, opt_viewportSizeMonitor);
};
goog.inherits(ol.MapExport, ol.Map);
goog.exportSymbol('ol.Map', ol.MapExport);

112
externs/ol.js Normal file
View File

@@ -0,0 +1,112 @@
/**
* @externs
*/
/**
* @type {Object}
*/
var olx;
/**
* @interface
*/
olx.MapOptionsExtern = function() {};
/**
* @type {ol.Coordinate|undefined}
*/
olx.MapOptionsExtern.prototype.center;
/**
* @type {boolean|undefined}
*/
olx.MapOptionsExtern.prototype.doubleClickZoom;
/**
* @type {boolean|undefined}
*/
olx.MapOptionsExtern.prototype.dragPan;
/**
* @type {ol.Collection|undefined}
*/
olx.MapOptionsExtern.prototype.interactions;
/**
* @type {boolean|undefined}
*/
olx.MapOptionsExtern.prototype.keyboard;
/**
* @type {number|undefined}
*/
olx.MapOptionsExtern.prototype.keyboardPanOffset;
/**
* @type {ol.Collection|undefined}
*/
olx.MapOptionsExtern.prototype.layers;
/**
* @type {boolean|undefined}
*/
olx.MapOptionsExtern.prototype.mouseWheelZoom;
/**
* @type {ol.Projection|string|undefined}
*/
olx.MapOptionsExtern.prototype.projection;
/**
* @type {ol.RendererHint|undefined}
*/
olx.MapOptionsExtern.prototype.renderer;
/**
* @type {Array.<ol.RendererHint>|undefined}
*/
olx.MapOptionsExtern.prototype.renderers;
/**
* @type {number|undefined}
*/
olx.MapOptionsExtern.prototype.resolution;
/**
* @type {boolean|undefined}
*/
olx.MapOptionsExtern.prototype.rotate;
/**
* @type {boolean|undefined}
*/
olx.MapOptionsExtern.prototype.shiftDragZoom;
/**
* @type {ol.Projection|string|undefined}
*/
olx.MapOptionsExtern.prototype.userProjection;
/**
* @type {number|undefined}
*/
olx.MapOptionsExtern.prototype.zoom;