Split into demo and lib, working commonjs/umd demo

This commit is contained in:
Maximilian Ammann 2022-04-24 18:40:29 +02:00
parent 021b87eaa8
commit 1aad0c1c1f
26 changed files with 8180 additions and 295 deletions

View File

@ -44,10 +44,10 @@ webpack-production: nightly-toolchain
cd web/web && npm install && npm run production-build
# TODO
# wasm-pack-webgl: nightly-toolchain
# ./wasm-pack-v0.10.1-x86_64-unknown-linux-musl/wasm-pack build . \
# --release --target web --out-dir web/dist/maplibre-rs -- \
# --features "web-webgl" -Z build-std=std,panic_abort
wasm-pack-webgl: nightly-toolchain
./wasm-pack-v0.10.1-x86_64-unknown-linux-musl/wasm-pack build . \
--release --target web --out-dir web/dist/maplibre-rs -- \
--features "web-webgl" -Z build-std=std,panic_abort
#
# wasm-pack: nightly-toolchain
# ./wasm-pack-v0.10.1-x86_64-unknown-linux-musl/wasm-pack build . \

5
web/demo/index.ts Normal file
View File

@ -0,0 +1,5 @@
import test, { startMapLibre } from 'maplibre_rs'
console.log(test)
startMapLibre()

View File

@ -1,27 +1,54 @@
{
"name": "web",
"name": "demo",
"version": "0.0.1",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "web",
"name": "demo",
"version": "0.0.1",
"license": "MIT",
"dependencies": {
"maplibre_rs": "file:../lib"
},
"devDependencies": {
"copy-webpack-plugin": "^10.2.4",
"html-webpack-plugin": "^5.5.0",
"ts-loader": "^9.2.6",
"typescript": "^4.5.4",
"wasm-pack": "^0.10.1",
"webpack": "^5.65.0",
"webpack-cli": "^4.9.1",
"webpack-dev-server": "^4.6.0"
}
},
"../../../../../../../lib": {
"extraneous": true
},
"../lib": {
"name": "maplibre_rs",
"version": "0.0.1",
"license": "MIT",
"dependencies": {
"babel-plugin-bundled-import-meta": "^0.3.2",
"spectorjs": "^0.9.27",
"ttypescript": "^1.5.13",
"wasm-feature-detect": "^1.2.11",
"workbox-cacheable-response": "^6.4.2",
"workbox-routing": "^6.4.2",
"workbox-strategies": "^6.4.2"
},
"devDependencies": {
"@babel/cli": "^7.17.6",
"@babel/core": "^7.17.9",
"@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/preset-typescript": "^7.16.7",
"@magic-works/commonjs-import.meta": "^1.0.1",
"@wasm-tool/wasm-pack-plugin": "^1.6.0",
"copy-webpack-plugin": "^10.0.0",
"html-webpack-plugin": "^5.5.0",
"babel-plugin-transform-import-meta": "^2.1.1",
"ts-loader": "^9.2.6",
"typescript": "^4.5.4",
"wasm-pack": "^0.10.1",
"wasm-pack": "^0.10.2",
"webpack": "^5.65.0",
"webpack-cli": "^4.9.1",
"webpack-dev-server": "^4.6.0"
@ -252,18 +279,6 @@
"@types/node": "*"
}
},
"node_modules/@wasm-tool/wasm-pack-plugin": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@wasm-tool/wasm-pack-plugin/-/wasm-pack-plugin-1.6.0.tgz",
"integrity": "sha512-Iax4nEgIvVCZqrmuseJm7ln/muWpg7uT5fXMAT0crYo+k5JTuZE58DJvBQoeIAegA3IM9cZgfkcZjAOUCPsT1g==",
"dev": true,
"dependencies": {
"chalk": "^2.4.1",
"command-exists": "^1.2.7",
"watchpack": "^2.1.1",
"which": "^2.0.2"
}
},
"node_modules/@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@ -558,18 +573,6 @@
"node": ">=8"
}
},
"node_modules/ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"dependencies": {
"color-convert": "^1.9.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
@ -794,20 +797,6 @@
}
]
},
"node_modules/chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"dependencies": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@ -891,33 +880,12 @@
"node": ">=6"
}
},
"node_modules/color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"dependencies": {
"color-name": "1.1.3"
}
},
"node_modules/color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"node_modules/colorette": {
"version": "2.0.16",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
"integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
"dev": true
},
"node_modules/command-exists": {
"version": "1.2.9",
"resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
"integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
"dev": true
},
"node_modules/commander": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
@ -1317,15 +1285,6 @@
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
"dev": true
},
"node_modules/escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true,
"engines": {
"node": ">=0.8.0"
}
},
"node_modules/eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@ -1749,15 +1708,6 @@
"node": ">= 0.4.0"
}
},
"node_modules/has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true,
"engines": {
"node": ">=4"
}
},
"node_modules/he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
@ -2272,6 +2222,10 @@
"node": ">=10"
}
},
"node_modules/maplibre_rs": {
"resolved": "../lib",
"link": true
},
"node_modules/media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@ -3427,11 +3381,6 @@
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
"dev": true
},
"node_modules/spectorjs": {
"version": "0.9.27",
"resolved": "https://registry.npmjs.org/spectorjs/-/spectorjs-0.9.27.tgz",
"integrity": "sha512-eujFAuFWdW9S5wT++ks2o1zShN5Vd8Zple2NB6oM5G5tXqNtGbk6Yg3mfCpL03Bbq0djqGJAeswYk0VfpuPfIQ=="
},
"node_modules/statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
@ -3471,18 +3420,6 @@
"node": ">=6"
}
},
"node_modules/supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"dependencies": {
"has-flag": "^3.0.0"
},
"engines": {
"node": ">=4"
}
},
"node_modules/supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
@ -3842,11 +3779,6 @@
"node": ">= 0.8"
}
},
"node_modules/wasm-feature-detect": {
"version": "1.2.11",
"resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.2.11.tgz",
"integrity": "sha512-HUqwaodrQGaZgz1lZaNioIkog9tkeEJjrM3eq4aUL04whXOVDRc/o2EGb/8kV0QX411iAYWEqq7fMBmJ6dKS6w=="
},
"node_modules/wasm-pack": {
"version": "0.10.2",
"resolved": "https://registry.npmjs.org/wasm-pack/-/wasm-pack-0.10.2.tgz",
@ -4170,35 +4102,6 @@
"integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
"dev": true
},
"node_modules/workbox-cacheable-response": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz",
"integrity": "sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==",
"dependencies": {
"workbox-core": "6.5.3"
}
},
"node_modules/workbox-core": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.3.tgz",
"integrity": "sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q=="
},
"node_modules/workbox-routing": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.3.tgz",
"integrity": "sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==",
"dependencies": {
"workbox-core": "6.5.3"
}
},
"node_modules/workbox-strategies": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.3.tgz",
"integrity": "sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==",
"dependencies": {
"workbox-core": "6.5.3"
}
},
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
@ -4447,18 +4350,6 @@
"@types/node": "*"
}
},
"@wasm-tool/wasm-pack-plugin": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/@wasm-tool/wasm-pack-plugin/-/wasm-pack-plugin-1.6.0.tgz",
"integrity": "sha512-Iax4nEgIvVCZqrmuseJm7ln/muWpg7uT5fXMAT0crYo+k5JTuZE58DJvBQoeIAegA3IM9cZgfkcZjAOUCPsT1g==",
"dev": true,
"requires": {
"chalk": "^2.4.1",
"command-exists": "^1.2.7",
"watchpack": "^2.1.1",
"which": "^2.0.2"
}
},
"@webassemblyjs/ast": {
"version": "1.11.1",
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz",
@ -4705,15 +4596,6 @@
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true
},
"ansi-styles": {
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
"dev": true,
"requires": {
"color-convert": "^1.9.0"
}
},
"anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
@ -4887,17 +4769,6 @@
"integrity": "sha512-10T30NYOEQtN6C11YGg411yebhvpnC6Z102+B95eAsN0oB6KUs01ivE8u+G6FMIRtIrVlYXhL+LUwQ3/hXwDWw==",
"dev": true
},
"chalk": {
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
"dev": true,
"requires": {
"ansi-styles": "^3.2.1",
"escape-string-regexp": "^1.0.5",
"supports-color": "^5.3.0"
}
},
"chokidar": {
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
@ -4957,33 +4828,12 @@
"shallow-clone": "^3.0.0"
}
},
"color-convert": {
"version": "1.9.3",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
"dev": true,
"requires": {
"color-name": "1.1.3"
}
},
"color-name": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
"dev": true
},
"colorette": {
"version": "2.0.16",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.16.tgz",
"integrity": "sha512-hUewv7oMjCp+wkBv5Rm0v87eJhq4woh5rSR+42YSQJKecCqgIqNkZ6lAlQms/BwHPJA5NKMRlpxPRv0n8HQW6g==",
"dev": true
},
"command-exists": {
"version": "1.2.9",
"resolved": "https://registry.npmjs.org/command-exists/-/command-exists-1.2.9.tgz",
"integrity": "sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w==",
"dev": true
},
"commander": {
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
@ -5291,12 +5141,6 @@
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=",
"dev": true
},
"escape-string-regexp": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
"dev": true
},
"eslint-scope": {
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
@ -5627,12 +5471,6 @@
"function-bind": "^1.1.1"
}
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
"dev": true
},
"he": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
@ -6015,6 +5853,31 @@
"yallist": "^4.0.0"
}
},
"maplibre_rs": {
"version": "file:../lib",
"requires": {
"@babel/cli": "^7.17.6",
"@babel/core": "^7.17.9",
"@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/preset-typescript": "^7.16.7",
"@magic-works/commonjs-import.meta": "^1.0.1",
"@wasm-tool/wasm-pack-plugin": "^1.6.0",
"babel-plugin-bundled-import-meta": "^0.3.2",
"babel-plugin-transform-import-meta": "^2.1.1",
"spectorjs": "^0.9.27",
"ts-loader": "^9.2.6",
"ttypescript": "^1.5.13",
"typescript": "^4.5.4",
"wasm-feature-detect": "^1.2.11",
"wasm-pack": "^0.10.2",
"webpack": "^5.65.0",
"webpack-cli": "^4.9.1",
"webpack-dev-server": "^4.6.0",
"workbox-cacheable-response": "^6.4.2",
"workbox-routing": "^6.4.2",
"workbox-strategies": "^6.4.2"
}
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
@ -6887,11 +6750,6 @@
}
}
},
"spectorjs": {
"version": "0.9.27",
"resolved": "https://registry.npmjs.org/spectorjs/-/spectorjs-0.9.27.tgz",
"integrity": "sha512-eujFAuFWdW9S5wT++ks2o1zShN5Vd8Zple2NB6oM5G5tXqNtGbk6Yg3mfCpL03Bbq0djqGJAeswYk0VfpuPfIQ=="
},
"statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
@ -6922,15 +6780,6 @@
"integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
"dev": true
},
"supports-color": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
"dev": true,
"requires": {
"has-flag": "^3.0.0"
}
},
"supports-preserve-symlinks-flag": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
@ -7185,11 +7034,6 @@
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=",
"dev": true
},
"wasm-feature-detect": {
"version": "1.2.11",
"resolved": "https://registry.npmjs.org/wasm-feature-detect/-/wasm-feature-detect-1.2.11.tgz",
"integrity": "sha512-HUqwaodrQGaZgz1lZaNioIkog9tkeEJjrM3eq4aUL04whXOVDRc/o2EGb/8kV0QX411iAYWEqq7fMBmJ6dKS6w=="
},
"wasm-pack": {
"version": "0.10.2",
"resolved": "https://registry.npmjs.org/wasm-pack/-/wasm-pack-0.10.2.tgz",
@ -7414,35 +7258,6 @@
"integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==",
"dev": true
},
"workbox-cacheable-response": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/workbox-cacheable-response/-/workbox-cacheable-response-6.5.3.tgz",
"integrity": "sha512-6JE/Zm05hNasHzzAGKDkqqgYtZZL2H06ic2GxuRLStA4S/rHUfm2mnLFFXuHAaGR1XuuYyVCEey1M6H3PdZ7SQ==",
"requires": {
"workbox-core": "6.5.3"
}
},
"workbox-core": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/workbox-core/-/workbox-core-6.5.3.tgz",
"integrity": "sha512-Bb9ey5n/M9x+l3fBTlLpHt9ASTzgSGj6vxni7pY72ilB/Pb3XtN+cZ9yueboVhD5+9cNQrC9n/E1fSrqWsUz7Q=="
},
"workbox-routing": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/workbox-routing/-/workbox-routing-6.5.3.tgz",
"integrity": "sha512-DFjxcuRAJjjt4T34RbMm3MCn+xnd36UT/2RfPRfa8VWJGItGJIn7tG+GwVTdHmvE54i/QmVTJepyAGWtoLPTmg==",
"requires": {
"workbox-core": "6.5.3"
}
},
"workbox-strategies": {
"version": "6.5.3",
"resolved": "https://registry.npmjs.org/workbox-strategies/-/workbox-strategies-6.5.3.tgz",
"integrity": "sha512-MgmGRrDVXs7rtSCcetZgkSZyMpRGw8HqL2aguszOc3nUmzGZsT238z/NN9ZouCxSzDu3PQ3ZSKmovAacaIhu1w==",
"requires": {
"workbox-core": "6.5.3"
}
},
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",

View File

@ -1,12 +1,12 @@
{
"name": "web",
"name": "demo",
"version": "0.0.1",
"description": "A maplibre demo",
"main": "index.js",
"private": true,
"scripts": {
"start": "RUSTUP_TOOLCHAIN=nightly-2022-04-04-x86_64-unknown-linux-gnu webpack-dev-server --mode=development",
"build": "RUSTUP_TOOLCHAIN=nightly-2022-04-04-x86_64-unknown-linux-gnu webpack --mode=development",
"production-build": "RUSTUP_TOOLCHAIN=nightly-2022-04-04-x86_64-unknown-linux-gnu webpack --mode=production",
"start": "webpack-dev-server --mode=development",
"build": "webpack --mode=development",
"production-build": "webpack --mode=production",
"webgl-start": "npm run start -- --env webgl",
"webgl-start-production": "npm run webgl-start -- --mode=production",
"webgl-build": "npm run build -- --env webgl",
@ -17,15 +17,10 @@
"url": "https://github.com/maplibre/maplibre-rs"
},
"dependencies": {
"spectorjs": "^0.9.27",
"wasm-feature-detect": "^1.2.11",
"workbox-cacheable-response": "^6.4.2",
"workbox-routing": "^6.4.2",
"workbox-strategies": "^6.4.2"
"maplibre_rs": "file:../lib"
},
"devDependencies": {
"@wasm-tool/wasm-pack-plugin": "^1.6.0",
"copy-webpack-plugin": "^10.0.0",
"copy-webpack-plugin": "^10.2.4",
"html-webpack-plugin": "^5.5.0",
"ts-loader": "^9.2.6",
"typescript": "^4.5.4",

View File

@ -0,0 +1,63 @@
const path = require("path");
const webpack = require("webpack");
const HtmlWebpackPlugin = require('html-webpack-plugin');
const CopyPlugin = require("copy-webpack-plugin");
let dist = path.join(__dirname, 'dist/');
module.exports = (env) => ({
mode: "development",
entry: {
main: "./index.ts",
},
experiments: {
//syncWebAssembly: true
},
performance: {
maxEntrypointSize: 400000,
maxAssetSize: 400000000,
},
output: {
path: dist,
filename: "[name].[fullhash].js"
},
devServer: {
server: {
type: 'http',
},
allowedHosts: 'all',
host: '0.0.0.0',
static: {
directory: dist,
},
headers: {
'Cross-Origin-Opener-Policy': 'same-origin',
'Cross-Origin-Embedder-Policy': 'require-corp'
},
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
},
],
},
resolve: {
extensions: ['.tsx', '.ts', '.js'],
},
plugins: [
new CopyPlugin({
patterns: [
{ from: "*.wasm", to: "[path][name][ext]", context: 'node_modules/maplibre_rs/dist/maplibre-rs/' },
{ from: "*.maplibre-rs.js", to: "[path][name][ext]", context: 'node_modules/maplibre_rs/dist/maplibre-rs/' },
],
}),
new webpack.DefinePlugin({
WEBGL: !!env.webgl
}),
new HtmlWebpackPlugin({
title: 'maplibre demo',
}),
]
});

4
web/lib/.babelrc Normal file
View File

@ -0,0 +1,4 @@
{
"presets": ["@babel/preset-typescript"],
"plugins": []
}

7
web/lib/.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
node_modules
libs/maplibre*
dist
src/wasm-pack

7910
web/lib/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

50
web/lib/package.json Normal file
View File

@ -0,0 +1,50 @@
{
"name": "maplibre_rs",
"version": "0.0.1",
"description": "",
"scripts": {
"build": "RUSTUP_TOOLCHAIN=nightly-2022-04-04-x86_64-unknown-linux-gnu webpack --mode=development",
"build-esm": "export RUSTUP_TOOLCHAIN=nightly-2022-04-04-x86_64-unknown-linux-gnu && rm -rf ./dist/maplibre-rs-esm && wasm-pack build --out-name index --out-dir lib/src/wasm-pack ../ --target web -- --features web-webgl -Z build-std=std,panic_abort && tsc -m es2022 -outDir ./dist/maplibre-rs-esm && cp src/wasm-pack/index_bg.wasm dist/maplibre-rs-esm/wasm-pack/",
"production-build": "RUSTUP_TOOLCHAIN=nightly-2022-04-04-x86_64-unknown-linux-gnu webpack --mode=production",
"webgl-build": "npm run build -- --env webgl",
"webgl-production-build": "npm run production-build -- --env webgl"
},
"ignmodule": "dist/maplibre-rs-esm/index.js",
"main": "dist/maplibre-rs/maplibre-rs.js",
"types": "src/index.ts",
"repository": {
"type": "git",
"url": "https://github.com/maplibre/maplibre-rs"
},
"dependencies": {
"babel-plugin-bundled-import-meta": "^0.3.2",
"spectorjs": "^0.9.27",
"ttypescript": "^1.5.13",
"wasm-feature-detect": "^1.2.11",
"workbox-cacheable-response": "^6.4.2",
"workbox-routing": "^6.4.2",
"workbox-strategies": "^6.4.2"
},
"devDependencies": {
"@babel/cli": "^7.17.6",
"@babel/core": "^7.17.9",
"@babel/plugin-syntax-import-meta": "^7.10.4",
"@babel/preset-typescript": "^7.16.7",
"@magic-works/commonjs-import.meta": "^1.0.1",
"@wasm-tool/wasm-pack-plugin": "^1.6.0",
"babel-plugin-transform-import-meta": "^2.1.1",
"ts-loader": "^9.2.6",
"typescript": "^4.5.4",
"wasm-pack": "^0.10.2",
"webpack": "^5.65.0",
"webpack-cli": "^4.9.1",
"webpack-dev-server": "^4.6.0"
},
"keywords": [
"wasm",
"webgpu",
"maps"
],
"author": "",
"license": "MIT"
}

8
web/lib/src/decl.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
declare module "spectorjs" {
class Spector {
displayUI(): void;
}
}
declare var WEBGL: boolean;

9
web/lib/src/index.d.ts vendored Normal file
View File

@ -0,0 +1,9 @@
declare global {
interface Window {
schedule_tile_request: (url: string, request_id: number) => void;
newWorker: () => void;
}
}
export declare const startMapLibre: () => Promise<void>;
declare const _default: "test";
export default _default;

View File

@ -1,4 +1,4 @@
import init, {create_pool_scheduler, new_thread_local_state, run} from "./dist/libs/maplibre"
import init, {create_pool_scheduler, new_thread_local_state, run} from "./wasm-pack"
import {Spector} from "spectorjs"
import {WebWorkerMessageType} from "./types"
import {
@ -73,6 +73,8 @@ const checkRequirements = () => {
return false
}
let WEBGL = true
if (WEBGL) {
if (!isWebGLSupported()) {
alertUser("WebGL is not supported in this Browser!")
@ -137,7 +139,7 @@ const setupLegacyWebWorker = (schedulerPtr: number, memory: WebAssembly.Memory)
}
}
const start = async () => {
export const startMapLibre = async () => {
await checkWasmFeatures()
if (!checkRequirements()) {
@ -163,6 +165,4 @@ const start = async () => {
await run(schedulerPtr)
}
start().then(() => console.log("started via wasm"))
export default "test"

1
web/lib/src/pool_worker.d.ts vendored Normal file
View File

@ -0,0 +1 @@
export {};

View File

@ -1,4 +1,4 @@
import init, {child_entry_point} from "./dist/libs/maplibre"
import init, {child_entry_point} from "./wasm-pack"
onmessage = async message => {
const initialised = init(message.data[0], message.data[1]).catch(err => {

0
web/lib/src/service-worker.d.ts vendored Normal file
View File

9
web/lib/src/types.d.ts vendored Normal file
View File

@ -0,0 +1,9 @@
export declare type WebWorkerMessageType = {
type: 'init';
memory: WebAssembly.Memory;
} | {
type: 'fetch_tile';
threadLocalState: number;
url: string;
request_id: number;
};

1
web/lib/src/worker.d.ts vendored Normal file
View File

@ -0,0 +1 @@
export {};

View File

@ -1,4 +1,4 @@
import init, {InitOutput, tessellate_layers} from "./dist/libs/maplibre"
import init, {InitOutput, tessellate_layers} from "./wasm-pack"
import {WebWorkerMessageType} from "./types"
let module: Promise<InitOutput> = null

15
web/lib/tsconfig.json Normal file
View File

@ -0,0 +1,15 @@
{
"compilerOptions": {
//"outDir": "./dist/maplibre-rs",
"module": "commonjs",
"target": "es5",
"lib": [ "es2015", "dom" ],
"sourceMap": true,
"declaration": true,
"allowJs": true,
"skipLibCheck": true,
"moduleResolution": "node",
// "plugins": [{ "transform": "@magic-works/commonjs-import.meta" }]
},
//"include": ["./src/**/*"]
}

View File

@ -1,17 +1,13 @@
const path = require("path");
const webpack = require("webpack");
const CopyPlugin = require("copy-webpack-plugin");
const WasmPackPlugin = require("@wasm-tool/wasm-pack-plugin");
const HtmlWebpackPlugin = require('html-webpack-plugin');
let dist = path.join(__dirname, 'dist/demo');
let dist = path.join(__dirname, 'dist/maplibre-rs');
module.exports = (env) => ({
mode: "development",
entry: {
main: "./index.ts",
},
entry: "./src/index.ts",
experiments: {
syncWebAssembly: true
syncWebAssembly: true,
},
performance: {
maxEntrypointSize: 400000,
@ -19,28 +15,28 @@ module.exports = (env) => ({
},
output: {
path: dist,
filename: "[name].[fullhash].js"
},
devServer: {
server: {
type: 'http',
},
allowedHosts: 'all',
host: '0.0.0.0',
static: {
directory: dist,
},
headers: {
'Cross-Origin-Opener-Policy': 'same-origin',
'Cross-Origin-Embedder-Policy': 'require-corp'
filename: "maplibre-rs.js",
library: {
name: 'maplibre_rs',
type: 'umd',
},
umdNamedDefine: true
},
module: {
rules: [
{
test: /\.tsx?$/,
use: 'ts-loader',
exclude: /node_modules/,
use: [
{
loader: 'ts-loader',
options: {
"transpileOnly": true
}
}
]
},
],
},
@ -51,9 +47,6 @@ module.exports = (env) => ({
new webpack.DefinePlugin({
WEBGL: !!env.webgl
}),
new HtmlWebpackPlugin({
title: 'maplibre demo',
}),
new WasmPackPlugin({
crateDirectory: path.resolve(__dirname, '../'),
@ -73,7 +66,7 @@ module.exports = (env) => ({
// ],
// The same as the `--out-dir` option for `wasm-pack`
outDir: path.resolve(__dirname, 'dist/libs/maplibre'),
outDir: path.resolve(__dirname, 'src/wasm-pack'),
// The same as the `--out-name` option for `wasm-pack`
// outName: "index",