From f5c2124a7fac1953225d6552965a53e63b83a886 Mon Sep 17 00:00:00 2001 From: DanielJDufour Date: Wed, 1 Sep 2021 17:03:22 -0400 Subject: [PATCH] fixed #7, not working in Safari --- BUILDS.md | 16 ++++++++-------- create-build-list.sh | 2 +- package.json | 2 ++ src/index.js | 4 ++-- test/test.html | 26 ++++++++++++++++++++++++++ 5 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 test/test.html diff --git a/BUILDS.md b/BUILDS.md index a135e58..ebb9dcc 100644 --- a/BUILDS.md +++ b/BUILDS.md @@ -1,11 +1,11 @@ # Builds | name | file size | | ---- | --------- | -| get-epsg-code-all.node.min.js | 64K | -| get-epsg-code-all.web.min.js | 64K | -| get-epsg-code-excluding-gml-mapfile-mapnik-proj4-xml.node.min.js | 40K | -| get-epsg-code-excluding-gml-mapfile-mapnik-proj4-xml.web.min.js | 40K | -| get-epsg-code-excluding-mapfile-mapnik-proj4.node.min.js | 40K | -| get-epsg-code-excluding-mapfile-mapnik-proj4.web.min.js | 40K | -| get-epsg-code-excluding-mapfile.node.min.js | 52K | -| get-epsg-code-excluding-mapfile.web.min.js | 52K | +| get-epsg-code-all.node.min.js | 61K | +| get-epsg-code-all.web.min.js | 63K | +| get-epsg-code-excluding-gml-mapfile-mapnik-proj4-xml.node.min.js | 37K | +| get-epsg-code-excluding-gml-mapfile-mapnik-proj4-xml.web.min.js | 39K | +| get-epsg-code-excluding-mapfile-mapnik-proj4.node.min.js | 37K | +| get-epsg-code-excluding-mapfile-mapnik-proj4.web.min.js | 39K | +| get-epsg-code-excluding-mapfile.node.min.js | 49K | +| get-epsg-code-excluding-mapfile.web.min.js | 51K | diff --git a/create-build-list.sh b/create-build-list.sh index 00bee49..aedc7ff 100644 --- a/create-build-list.sh +++ b/create-build-list.sh @@ -8,4 +8,4 @@ echo '| name | file size |' >> BUILDS.md echo '| ---- | --------- |' >> BUILDS.md -ls -alsh dist | grep 'get-epsg-code' | awk 'BEGIN { OFS = " | " }{ print "| "$10,$1" |" }' | grep '.js ' >> BUILDS.md +ls -alsh dist | grep 'get-epsg-code' | awk 'BEGIN { OFS = " | " }{ print "| "$10,$6" |" }' | grep '.js ' >> BUILDS.md diff --git a/package.json b/package.json index 36a1582..66400ab 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "build": "npm run build:node && npm run build:web", "build:demo": "npm run build:web && cp dist/get-epsg-code-all.web.min.js demo/.", "build:web": "webpack --mode production --target web", + "build:web:dev": "webpack --mode development --target web", "build:node": "webpack --mode production --target node", "build:everything": "if [ -d dist ]; then rm -Rf dist; fi && HASHED_FIELDS='' EXCLUDED_FORMATS='' npm run build && HASHED_FIELDS='esriwkt' EXCLUDED_FORMATS='' npm run build && HASHED_FIELDS='esriwkt,proj4' EXCLUDED_FORMATS='' npm run build && EXCLUDED_FORMATS='gml,xml' HASHED_FIELDS='esriwkt' npm run build && npm run create-build-list", "build:everything:node": "if [ -d dist ]; then rm -Rf dist; fi && HASHED_FIELDS='' EXCLUDED_FORMATS='' npm run build:node && HASHED_FIELDS='' EXCLUDED_FORMATS='' npm run build:node && HASHED_FIELDS='esriwkt' EXCLUDED_FORMATS='' npm run build:node && HASHED_FIELDS='esriwkt,proj4' EXCLUDED_FORMATS='' npm run build:node && EXCLUDED_FORMATS='gml,xml' HASHED_FIELDS='esriwkt' npm run build:node", @@ -24,6 +25,7 @@ "download-csv": "wget https://s3.amazonaws.com/crs.csv/crs.csv.zip && unzip crs.csv.zip", "setup": "cd test/data && bash setup.sh", "test": "npm run build:node && TEST_BUNDLE='get-epsg-code-all.node.min.js' node ./test/test.js", + "test:html": "npm run build:web:dev && http-server", "test:quick": "TEST_BUNDLE=$TEST_BUNDLE node ./test/test.js", "test:everything:node": "set -e; npm run build:everything:node && TEST_BUNDLES=\"$(ls ./dist | grep node.min.js$)\"; for TEST_BUNDLE in $TEST_BUNDLES; do echo \"TEST_BUNDLE: $TEST_BUNDLE\" && TEST_BUNDLE=$TEST_BUNDLE npm run test:quick; done", "update-docs": "npm run test && npm run build:everything && npm run create-build-list" diff --git a/src/index.js b/src/index.js index 3a1953a..906f8f8 100644 --- a/src/index.js +++ b/src/index.js @@ -153,9 +153,9 @@ function getEPSGCode(input, options) { return Number(input.match(/^\d{1,6}/)[0]); } else if (dataType === MAPFILE) { if (input.includes('init=epsg:')) { - return Number.parseInt(/(?<="init\=epsg:)(\d{1,10})(?=")/.exec(input)[0]); + return Number.parseInt(/("init\=epsg:)(\d{1,10})(")/.exec(input)[2]); } else if (input.includes('"proj=utm"')) { - const zone = /(?<="zone\=)(\d{1,2})(?=")/.exec(input)[0]; + const zone = /("zone\=)(\d{1,2})(")/.exec(input)[2]; const hemisphere = input.includes('"south"') ? '7' : '6'; return Number.parseInt('32' + hemisphere + zone); } else { diff --git a/test/test.html b/test/test.html new file mode 100644 index 0000000..4de4c86 --- /dev/null +++ b/test/test.html @@ -0,0 +1,26 @@ + + + + + + + + \ No newline at end of file