Using open source javascript with GJS

Jonas Danielsson <[email protected]> Thu, 22 Oct 2015 14:48:10 +0200
Newsgroups gmane.comp.gnome.devel
Message-ID <CABHT2vECQr_YKZcVmqaRz9At_5Hgf_mY2V3us=iDTetwSgzM2g@mail.gmail.com>
--001a113f1b045254ef0522b0e8f6
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline



--001a113f1b045254ef0522b0e8f6
Content-Type: text/plain; charset=UTF-8

Hi,

I want to use geojson-vt in GNOME Maps.
The project can be found at https://github.com/mapbox/geojson-vt

The reason I want it is because it solves showing big sets of GeoJSON
data without being slow. It does this with tricks:
https://www.mapbox.com/blog/introducing-geojson-vt/

I have mangaged to get this working in Maps, it required me to change
how the including of modules was done. Since geojson-vt uses Node.js style
includes with require and module.export. The patch needed to get geojson-vt
included is attached to this mail.

The license for geojson-vt can be found here:
https://github.com/mapbox/geojson-vt/blob/master/LICENSE

So how do I do this best? Do we need a best practice? Has this been done before?
I wanted to discuss it here since I or someone else might want to use
other javascript code from Github or other places.

I was thinking of having an import/geojson-vt branch were I keep the
code unpatched and use that if I want to get updates from geojson-vt.
And then apply my changes on a differant branch, like master.

Should I checking everything from the geojson-vt repo? Should I use a
git submodule? Should I abandon this idea totally and write
my own geojson code?

Thankful for replies

--001a113f1b045254ef0522b0e8f6
Content-Type: text/x-patch; charset=US-ASCII; 
	name="0001-geojson-vt-Update-to-GJS-style-import.patch"
Content-Disposition: attachment; 
	filename="0001-geojson-vt-Update-to-GJS-style-import.patch"
Content-Transfer-Encoding: base64
X-Attachment-Id: f_ig283oy20

RnJvbSAwYmFjYTQzZTc2NDMzYTU4OTMzZGU5MDUxZWJjODNlM2MyZmUxOWY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hcyBEYW5pZWxzc29uIDxqb25hc0B0aHJlZXRpbWVzdHdv
Lm9yZz4KRGF0ZTogVGh1LCAyMiBPY3QgMjAxNSAxNDozNTowMSArMDIwMApTdWJqZWN0OiBbUEFU
Q0hdIGdlb2pzb24tdnQ6IFVwZGF0ZSB0byBHSlMgc3R5bGUgaW1wb3J0CgotLS0KIHNyYy9jbGlw
LmpzICAgICAgfCAgMiAtLQogc3JjL2NvbnZlcnQuanMgICB8ICA0ICstLS0KIHNyYy9pbmRleC5q
cyAgICAgfCAxNCArKysrKystLS0tLS0tLQogc3JjL3NpbXBsaWZ5LmpzICB8ICAyIC0tCiBzcmMv
dGlsZS5qcyAgICAgIHwgIDIgLS0KIHNyYy90cmFuc2Zvcm0uanMgfCAgMyAtLS0KIHNyYy93cmFw
LmpzICAgICAgfCAgNCArLS0tCiA3IGZpbGVzIGNoYW5nZWQsIDggaW5zZXJ0aW9ucygrKSwgMjMg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2NsaXAuanMgYi9zcmMvY2xpcC5qcwppbmRl
eCBmNjU3YWQ4Li5jYWQ3YTIxIDEwMDY0NAotLS0gYS9zcmMvY2xpcC5qcworKysgYi9zcmMvY2xp
cC5qcwpAQCAtMSw3ICsxLDUgQEAKICd1c2Ugc3RyaWN0JzsKIAotbW9kdWxlLmV4cG9ydHMgPSBj
bGlwOwotCiAvKiBjbGlwIGZlYXR1cmVzIGJldHdlZW4gdHdvIGF4aXMtcGFyYWxsZWwgbGluZXM6
CiAgKiAgICAgfCAgICAgICAgfAogICogIF9fX3xfX18gICAgIHwgICAgIC8KZGlmZiAtLWdpdCBh
L3NyYy9jb252ZXJ0LmpzIGIvc3JjL2NvbnZlcnQuanMKaW5kZXggOTIwNDk4ZS4uNjY5NDczYSAx
MDA2NDQKLS0tIGEvc3JjL2NvbnZlcnQuanMKKysrIGIvc3JjL2NvbnZlcnQuanMKQEAgLTEsOCAr
MSw2IEBACiAndXNlIHN0cmljdCc7CiAKLW1vZHVsZS5leHBvcnRzID0gY29udmVydDsKLQotdmFy
IHNpbXBsaWZ5ID0gcmVxdWlyZSgnLi9zaW1wbGlmeScpOworY29uc3Qgc2ltcGxpZnkgPSBpbXBv
cnRzLnNpbXBsaWZ5LnNpbXBsaWZ5OwogCiAvLyBjb252ZXJ0cyBHZW9KU09OIGZlYXR1cmUgaW50
byBhbiBpbnRlcm1lZGlhdGUgcHJvamVjdGVkIEpTT04gdmVjdG9yIGZvcm1hdCB3aXRoIHNpbXBs
aWZpY2F0aW9uIGRhdGEKIApkaWZmIC0tZ2l0IGEvc3JjL2luZGV4LmpzIGIvc3JjL2luZGV4Lmpz
CmluZGV4IDRjZjUzMmUuLmMyYzM2MjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmRleC5qcworKysgYi9z
cmMvaW5kZXguanMKQEAgLTEsMTMgKzEsMTEgQEAKICd1c2Ugc3RyaWN0JzsKIAotbW9kdWxlLmV4
cG9ydHMgPSBnZW9qc29udnQ7Ci0KLXZhciBjb252ZXJ0ID0gcmVxdWlyZSgnLi9jb252ZXJ0Jyks
ICAgICAvLyBHZW9KU09OIGNvbnZlcnNpb24gYW5kIHByZXByb2Nlc3NpbmcKLSAgICB0cmFuc2Zv
cm0gPSByZXF1aXJlKCcuL3RyYW5zZm9ybScpLCAvLyBjb29yZGluYXRlIHRyYW5zZm9ybWF0aW9u
Ci0gICAgY2xpcCA9IHJlcXVpcmUoJy4vY2xpcCcpLCAgICAgICAgICAgLy8gc3RyaXBlIGNsaXBw
aW5nIGFsZ29yaXRobQotICAgIHdyYXAgPSByZXF1aXJlKCcuL3dyYXAnKSwgICAgICAgICAgIC8v
IGRhdGUgbGluZSBwcm9jZXNzaW5nCi0gICAgY3JlYXRlVGlsZSA9IHJlcXVpcmUoJy4vdGlsZScp
OyAgICAgLy8gZmluYWwgc2ltcGxpZmllZCB0aWxlIGdlbmVyYXRpb24KLQorY29uc3QgY29udmVy
dCA9IGltcG9ydHMuY29udmVydC5jb252ZXJ0OworY29uc3QgdHJhbnNmb3JtID0geyB0aWxlOiBp
bXBvcnRzLnRyYW5zZm9ybS50cmFuc2Zvcm1UaWxlLAorICAgICAgICAgICAgICAgICAgICBwb2lu
dDogaW1wb3J0cy50cmFuc2Zvcm0udHJhbnNmb3JtUG9pbnQgfTsKK2NvbnN0IGNsaXAgPSBpbXBv
cnRzLmNsaXAuY2xpcDsKK2NvbnN0IGNyZWF0ZVRpbGUgPSBpbXBvcnRzLnRpbGUuY3JlYXRlVGls
ZTsKK2NvbnN0IHdyYXAgPSBpbXBvcnRzLndyYXAud3JhcDsKIAogZnVuY3Rpb24gZ2VvanNvbnZ0
KGRhdGEsIG9wdGlvbnMpIHsKICAgICByZXR1cm4gbmV3IEdlb0pTT05WVChkYXRhLCBvcHRpb25z
KTsKZGlmZiAtLWdpdCBhL3NyYy9zaW1wbGlmeS5qcyBiL3NyYy9zaW1wbGlmeS5qcwppbmRleCBm
ZTllZWE2Li4yZTU1OTcyIDEwMDY0NAotLS0gYS9zcmMvc2ltcGxpZnkuanMKKysrIGIvc3JjL3Np
bXBsaWZ5LmpzCkBAIC0xLDcgKzEsNSBAQAogJ3VzZSBzdHJpY3QnOwogCi1tb2R1bGUuZXhwb3J0
cyA9IHNpbXBsaWZ5OwotCiAvLyBjYWxjdWxhdGUgc2ltcGxpZmljYXRpb24gZGF0YSB1c2luZyBv
cHRpbWl6ZWQgRG91Z2xhcy1QZXVja2VyIGFsZ29yaXRobQogCiBmdW5jdGlvbiBzaW1wbGlmeShw
b2ludHMsIHRvbGVyYW5jZSkgewpkaWZmIC0tZ2l0IGEvc3JjL3RpbGUuanMgYi9zcmMvdGlsZS5q
cwppbmRleCA0ZTZjY2IxLi43NjRkNTM4IDEwMDY0NAotLS0gYS9zcmMvdGlsZS5qcworKysgYi9z
cmMvdGlsZS5qcwpAQCAtMSw3ICsxLDUgQEAKICd1c2Ugc3RyaWN0JzsKIAotbW9kdWxlLmV4cG9y
dHMgPSBjcmVhdGVUaWxlOwotCiBmdW5jdGlvbiBjcmVhdGVUaWxlKGZlYXR1cmVzLCB6MiwgdHgs
IHR5LCB0b2xlcmFuY2UsIG5vU2ltcGxpZnkpIHsKICAgICB2YXIgdGlsZSA9IHsKICAgICAgICAg
ZmVhdHVyZXM6IFtdLApkaWZmIC0tZ2l0IGEvc3JjL3RyYW5zZm9ybS5qcyBiL3NyYy90cmFuc2Zv
cm0uanMKaW5kZXggNWVlNDI2YS4uZmU5M2U5NCAxMDA2NDQKLS0tIGEvc3JjL3RyYW5zZm9ybS5q
cworKysgYi9zcmMvdHJhbnNmb3JtLmpzCkBAIC0xLDggKzEsNSBAQAogJ3VzZSBzdHJpY3QnOwog
Ci1leHBvcnRzLnRpbGUgPSB0cmFuc2Zvcm1UaWxlOwotZXhwb3J0cy5wb2ludCA9IHRyYW5zZm9y
bVBvaW50OwotCiAvLyBUcmFuc2Zvcm1zIHRoZSBjb29yZGluYXRlcyBvZiBlYWNoIGZlYXR1cmUg
aW4gdGhlIGdpdmVuIHRpbGUgZnJvbQogLy8gbWVyY2F0b3ItcHJvamVjdGVkIHNwYWNlIGludG8g
KGV4dGVudCB4IGV4dGVudCkgdGlsZSBzcGFjZS4KIGZ1bmN0aW9uIHRyYW5zZm9ybVRpbGUodGls
ZSwgZXh0ZW50KSB7CmRpZmYgLS1naXQgYS9zcmMvd3JhcC5qcyBiL3NyYy93cmFwLmpzCmluZGV4
IDBlZWZiYjUuLmNhZTk2MDkgMTAwNjQ0Ci0tLSBhL3NyYy93cmFwLmpzCisrKyBiL3NyYy93cmFw
LmpzCkBAIC0xLDggKzEsNiBAQAogJ3VzZSBzdHJpY3QnOwogCi12YXIgY2xpcCA9IHJlcXVpcmUo
Jy4vY2xpcCcpOwotCi1tb2R1bGUuZXhwb3J0cyA9IHdyYXA7Citjb25zdCBjbGlwID0gaW1wb3J0
cy5jbGlwLmNsaXA7CiAKIGZ1bmN0aW9uIHdyYXAoZmVhdHVyZXMsIGJ1ZmZlciwgaW50ZXJzZWN0
WCkgewogICAgIHZhciBtZXJnZWQgPSBmZWF0dXJlcywKLS0gCjIuNC4wCgo=
--001a113f1b045254ef0522b0e8f6
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
gnome-devel-list mailing list
[email protected]
https://mail.gnome.org/mailman/listinfo/gnome-devel-list

--001a113f1b045254ef0522b0e8f6--