typescript: do project level compilation for ts files in src/

There may be warnings on first run after application of this patch due
to ts->js files present src/ due to previous per file compilation.
Cleaning those files will get rid of the warnings.  These are removed
from .gitignore files to avoid confusion.

Now we rely on tsc to do the incremental builds so it is much faster.
Checking of js files is disabled for now as it reports a lot of type
errors.

Caveat: Compilation of mocha tests, admin (those outside src/) are still
using the file by file compilation.

Signed-off-by: Dennis Francis <dennis.francis@collabora.com>
Change-Id: Ic22b265de0b111165224885c4736486fffa016d8
pull/1941/head
Dennis Francis 2021-04-07 16:52:50 +05:30 committed by Dennis Francis
parent d2780e9317
commit c6f2e2211d
8 changed files with 40 additions and 44 deletions

3
.gitignore vendored
View File

@ -140,6 +140,3 @@ Makecache
# autoconf stuff
autogen.input
loleaflet/src/layer/tile/TilesSection.js
loleaflet/src/layer/tile/ScrollSection.js
loleaflet/src/layer/tile/AutoFillMarkerSection.js

View File

@ -8,9 +8,8 @@ index.html
bower.json
component.json
src/layer/tile/CanvasSectionContainer.js
src/layer/vector/CanvasOverlay.js
mocha_tests/*.js
tscompile.done
_site
dist/*.js

View File

@ -27,26 +27,12 @@ $(L10N_IOS_ALL_JS) : $(wildcard $(srcdir)/po/ui-*.po) $(shell find $(srcdir)/l10
done
endif
DIRECTORY_TS = $(srcdir)/src/layer/tile $(srcdir)/src/control # Add ts directories here.
SRC_TS_ALL := $(foreach dir, $(DIRECTORY_TS), $(wildcard $(dir)/*.ts))
SRC_TS_JS_FILES := $(SRC_TS_ALL:.ts=.js)
$(SRC_TS_ALL:.ts=.js): $(SRC_TS_ALL:.ts=.ts)
$(builddir)/node_modules/typescript/bin/tsc $(@:.js=.ts) --outfile $@ --module none --lib dom,es2016 --target ES5
MOCHA_DIR = $(srcdir)/mocha_tests
MOCHA_TS_FILES = $(wildcard $(MOCHA_DIR)/*.ts)
MOCHA_TS_JS_FILES := $(MOCHA_TS_FILES:.ts=.js)
$(MOCHA_TS_JS_FILES): %.js: %.ts
$(builddir)/node_modules/typescript/bin/tsc $< --outfile $@ --module none --lib dom,es2016 --target ES5
SRC_TS = $(srcdir)/src/layer/vector/CanvasOverlay.ts
SRC_TS_JS = $(srcdir)/src/layer/vector/CanvasOverlay.js
SRC_TS_JS_DST = $(patsubst $(srcdir)/%.js,$(DIST_FOLDER)/%.js,$(SRC_TS_JS_FILES)) $(DIST_FOLDER)/src/layer/vector/CanvasOverlay.js
$(srcdir)/src/layer/vector/CanvasOverlay.js: $(srcdir)/src/layer/vector/*.ts $(srcdir)/src/layer/marker/*.ts
$(builddir)/node_modules/typescript/bin/tsc $(srcdir)/src/layer/vector/CanvasOverlay.ts --outfile $(srcdir)/src/layer/vector/CanvasOverlay.js --module none --lib dom,es2016 --target ES5
JQUERY_LIGHTNESS_IMAGE_PATH = $(srcdir)/images/jquery-ui-lightness
JQUERY_LIGHTNESS_IMAGES = $(wildcard $(JQUERY_LIGHTNESS_IMAGE_PATH)/*.png)
JQUERY_LIGHTNESS_DIST_IMAGES = $(patsubst $(JQUERY_LIGHTNESS_IMAGE_PATH)/%.png,$(DIST_FOLDER)/images/%.png,$(JQUERY_LIGHTNESS_IMAGES))
@ -220,8 +206,20 @@ LOLEAFLET_JS =\
src/layer/tile/CanvasSectionContainer.js \
src/layer/tile/TilesSection.js \
src/layer/tile/AutoFillMarkerSection.js \
src/layer/tile/ScrollSection.js \
src/layer/vector/CPoint.js \
src/layer/vector/CBounds.js \
src/layer/vector/CEventsHandler.js \
src/layer/vector/CPointSet.js \
src/layer/vector/CPath.js \
src/layer/vector/CLineUtil.js \
src/layer/vector/CPolyline.js \
src/layer/vector/CPolyUtil.js \
src/layer/vector/CPolygon.js \
src/layer/vector/CRectangle.js \
src/layer/vector/CSplitterLine.js \
src/layer/marker/Cursor.js \
src/layer/vector/CanvasOverlay.js \
src/layer/tile/ScrollSection.js \
src/layer/tile/CanvasTileLayer.js \
src/layer/SplitPanesContext.js \
src/layer/tile/TileLayer.TableOverlay.js \
@ -354,7 +352,8 @@ LOLEAFLET_JS =\
src/main.js
LOLEAFLET_JS_SRC = $(shell find $(srcdir)/src -name '*.js')
LOLEAFLET_JS_DST = $(patsubst $(srcdir)/src/%.js,$(DIST_FOLDER)/src/%.js,$(LOLEAFLET_JS_SRC))
LOLEAFLET_TS_SRC = $(shell find $(srcdir)/src -name '*.ts')
LOLEAFLET_JS_DST = $(patsubst $(srcdir)/src/%.js,$(DIST_FOLDER)/src/%.js,$(LOLEAFLET_JS_SRC)) $(patsubst $(srcdir)/src/%.ts,$(DIST_FOLDER)/src/%.js,$(LOLEAFLET_TS_SRC))
COMMA := ,
EMPTY :=
@ -558,14 +557,11 @@ $(DIST_FOLDER)/welcome/%.html: $(srcdir)/welcome/%.html
`ln -sf $(abs_srcdir)/$< $@`; \
fi
$(DIST_FOLDER)/src/%.js: $(srcdir)/src/%.js
@mkdir -p $(dir $@)
@if test -z '$(ENABLE_BROWSERSYNC)'; then \
`cp $< $@`; \
else \
`echo $< $@`; \
`ln -sf $(abs_srcdir)/$< $@`; \
fi
tscompile.done: $(LOLEAFLET_JS_SRC) $(LOLEAFLET_TS_SRC)
$(builddir)/node_modules/typescript/bin/tsc --outDir $(DIST_FOLDER)/src --rootDir $(srcdir)/src --project $(srcdir)/tsconfig.json
$(LOLEAFLET_JS_DST): tscompile.done
@echo -n ""
$(DIST_FOLDER)/%.js: $(srcdir)/js/%.js
@mkdir -p $(dir $@)

View File

@ -1,4 +1,3 @@
/// <reference path="CEventsHandler.ts" />
/* eslint-disable */
declare var L: any;

View File

@ -1,5 +1,4 @@
/* eslint-disable */
/// <reference path="CPolyUtil.ts" />
/*
* CPolygon implements polygon vector layer (closed polyline with a fill inside).

View File

@ -1,6 +1,4 @@
/* eslint-disable */
/// <reference path="CLineUtil.ts" />
/// <reference path="CPointSet.ts" />
/*
* CPolyline implements polyline vector layer (a set of points connected with lines).

View File

@ -1,11 +1,3 @@
/// <reference path="CPoint.ts" />
/// <reference path="CBounds.ts" />
/// <reference path="CPath.ts" />
/// <reference path="CPolyline.ts" />
/// <reference path="CPolygon.ts" />
/// <reference path="CRectangle.ts" />
/// <reference path="CSplitterLine.ts" />
/// <reference path="../marker/Cursor.ts" />
/* eslint-disable */
// OverlayTransform is used by CanvasOverlay to apply transformations

View File

@ -5,13 +5,29 @@
"module": "none",
"lib": ["dom", "es2016"],
"sourceMap": false,
"allowJs": true,
"checkJs": false,
"incremental": true,
"moduleResolution": "classic",
"noImplicitAny": true,
"removeComments": false,
"preserveConstEnums": false,
"watch": false
"downlevelIteration": true,
"watch": false,
},
"exclude": [
"node_modules"
"node_modules",
"./node_modules",
"./node_modules/*",
"js",
"admin",
"mocha_tests",
"docs",
"test",
"typescript_js",
"dist",
"release",
"debug"
]
}
}