diff --git a/package-lock.json b/package-lock.json index 85e2aba..de5a2ad 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5710,6 +5710,242 @@ "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, + "node_modules/esbuild": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.2.tgz", + "integrity": "sha512-/tpIqo45hyRREGqh7hsIut8GwY1X2n9IhKbIwRIXUO6IohzG3/RarSGX7dT2eNvYzIbQmelpX+ZyuIphE5u+Bw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + }, + "optionalDependencies": { + "esbuild-android-arm64": "0.13.2", + "esbuild-darwin-64": "0.13.2", + "esbuild-darwin-arm64": "0.13.2", + "esbuild-freebsd-64": "0.13.2", + "esbuild-freebsd-arm64": "0.13.2", + "esbuild-linux-32": "0.13.2", + "esbuild-linux-64": "0.13.2", + "esbuild-linux-arm": "0.13.2", + "esbuild-linux-arm64": "0.13.2", + "esbuild-linux-mips64le": "0.13.2", + "esbuild-linux-ppc64le": "0.13.2", + "esbuild-openbsd-64": "0.13.2", + "esbuild-sunos-64": "0.13.2", + "esbuild-windows-32": "0.13.2", + "esbuild-windows-64": "0.13.2", + "esbuild-windows-arm64": "0.13.2" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.2.tgz", + "integrity": "sha512-Eh2paXUWYqf5JgikdkC0LnhtjSC8tGAz/L2kJRlMC0o3DzOBIxcmT2fdzBerdhW4roY0bOExfcO6deI1qsxI/A==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/esbuild-darwin-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.2.tgz", + "integrity": "sha512-jqp6uXHIIAWZ8kxRqFjxyMmIE1cuSbINellwwigOgk44eLg74ls82oqjY72MbDAowPivQkOU/fF7tsyaGQf5Zg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.2.tgz", + "integrity": "sha512-bD4oAyPZdzOWEA/JoX0sAitOhjJRwhomhWMeyRyowtlVQhQleG2ijRUKTvkq4CAvSobrW5EnZxjvHNKJ5L7zJg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.2.tgz", + "integrity": "sha512-fFJ0yc3lZyfwca+F5OPN/s+izozWryUQpN8aUMIdUkOa7UKX0h3xXrKnkDgdOo8vy3d1A6zHH0/4f2VJfEzLCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.2.tgz", + "integrity": "sha512-DWBZauEfjmqdfWxIacI+KBEim3ulOjtvK+WVm1bX67XlfyUVIkD915OIfT2EBhQUWmv+Z0tZZwskSMNj5DKojw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/esbuild-linux-32": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.2.tgz", + "integrity": "sha512-Gt2rNqqRCRh1QQC2d83KP0iWIXWQYpns7l2+41a1n0PQxXkQ5AarpjjL9mUzdXtcZauNXbUvWwBKAuBTCW+XQg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.2.tgz", + "integrity": "sha512-yT0D5Xly8oGHuqq975k1XUyULHzk3fN/ZlTY+awlU+nCFsYPZ43NE5msGpxlNQu8i6KOXQEke5GXN3y5d+Zd4g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-arm": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.2.tgz", + "integrity": "sha512-KXeyotqj9jbvCjbSpwnxDE8E8jKoBgrgbJpOvvY5Zz7Pp2fAwu/94vWQtE/jPEJndY4C4MSs+ryJLFWzmLOa4w==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.2.tgz", + "integrity": "sha512-qwXL+3NDCWiC8RMKBBETpuOWdC+pUAUS+pwg9jJmapYblLdVKkyRtwF/ogj06TdYs6riSSNikW8HK/Xs0HHbbQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.2.tgz", + "integrity": "sha512-sx8eheRX2XC2ppNAsbQm8/VUcU8XPYGpJK0BEyRefqHONz6u5Ib2guUdOz2Wh4YlbA7oOd482lHjprXSTwUcrQ==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.2.tgz", + "integrity": "sha512-y8iZ3qy2TIAKKsZ6xSopCztHOtGW9oiYDl22vQ0UIoVWjnfRKrbSzX7Y2F94y32hSvRWle6OhAIC+UpS5nQmIA==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.2.tgz", + "integrity": "sha512-g6AYrjBeV9OK624bw0KQ1TjHJQSW+X1Yicyd1NvDWqSFpMqKAjw7EUX4tA87mOFqv8BflPGr4f43ySgNvSVzIw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ] + }, + "node_modules/esbuild-sunos-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.2.tgz", + "integrity": "sha512-hIXvFIyrqwFd6v62XSra0ctCUXDS9Tu5D6QYbvnbhEoBmvD/TmEJRYRH48/+xmRifKJLzu6aegcrjAsDmaww7g==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ] + }, + "node_modules/esbuild-windows-32": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.2.tgz", + "integrity": "sha512-Y767LG0NFkw0sPoDVOTKC5gaj4vURjjWfSCCDV5awpXXxBKOF2zsIp3aia4KvVoivoSSeRPk3emDd0OPHuPrKg==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/esbuild-windows-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.2.tgz", + "integrity": "sha512-01b59kVJUMasctn6lzswC0drchr7zO75QtF22o5w0nlOw0Zorw0loY/8i5choFuWc30gXJId9qBSc1zPvt7uEw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.2.tgz", + "integrity": "sha512-HxyY604ytmh8NkPYyS1TdIB/bFS7DWd1hP90e8Ovo/elEdN5I13h0tyIatDYZkXKS0Ztk+9T/3h6K0fI1a/4tQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", @@ -17764,8 +18000,8 @@ "license": "MIT", "devDependencies": { "@types/jest": "^27.0.0", + "esbuild": "^0.13.2", "jest": "^27.0.0", - "parcel": "1.12.3", "ts-jest": "^27.0.0", "ts-node": "^10.2.1", "typescript": "^4.0.2" @@ -18960,11 +19196,14 @@ "name": "@dzeio/url-manager", "version": "1.0.5", "license": "MIT", + "dependencies": { + "@dzeio/object-util": "^1.4.0" + }, "devDependencies": { "@types/chai": "^4.2.12", "@types/jest": "^26.0.10", + "esbuild": "^0.13.2", "jest": "^26.4.2", - "parcel": "1.12.3", "ts-jest": "^26.4.4", "ts-node": "^10.2.1", "typescript": "^4.0.2" @@ -20053,8 +20292,8 @@ "version": "file:packages/object-util", "requires": { "@types/jest": "^27.0.0", + "esbuild": "^0.13.2", "jest": "^27.0.0", - "parcel": "1.12.3", "ts-jest": "^27.0.0", "ts-node": "^10.2.1", "typescript": "^4.0.2" @@ -20973,10 +21212,11 @@ "@dzeio/url-manager": { "version": "file:packages/url-manager", "requires": { + "@dzeio/object-util": "^1.4.0", "@types/chai": "^4.2.12", "@types/jest": "^26.0.10", + "esbuild": "^0.13.2", "jest": "^26.4.2", - "parcel": "1.12.3", "ts-jest": "^26.4.4", "ts-node": "^10.2.1", "typescript": "^4.0.2" @@ -24420,6 +24660,142 @@ "integrity": "sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw=", "dev": true }, + "esbuild": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.13.2.tgz", + "integrity": "sha512-/tpIqo45hyRREGqh7hsIut8GwY1X2n9IhKbIwRIXUO6IohzG3/RarSGX7dT2eNvYzIbQmelpX+ZyuIphE5u+Bw==", + "dev": true, + "requires": { + "esbuild-android-arm64": "0.13.2", + "esbuild-darwin-64": "0.13.2", + "esbuild-darwin-arm64": "0.13.2", + "esbuild-freebsd-64": "0.13.2", + "esbuild-freebsd-arm64": "0.13.2", + "esbuild-linux-32": "0.13.2", + "esbuild-linux-64": "0.13.2", + "esbuild-linux-arm": "0.13.2", + "esbuild-linux-arm64": "0.13.2", + "esbuild-linux-mips64le": "0.13.2", + "esbuild-linux-ppc64le": "0.13.2", + "esbuild-openbsd-64": "0.13.2", + "esbuild-sunos-64": "0.13.2", + "esbuild-windows-32": "0.13.2", + "esbuild-windows-64": "0.13.2", + "esbuild-windows-arm64": "0.13.2" + } + }, + "esbuild-android-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.13.2.tgz", + "integrity": "sha512-Eh2paXUWYqf5JgikdkC0LnhtjSC8tGAz/L2kJRlMC0o3DzOBIxcmT2fdzBerdhW4roY0bOExfcO6deI1qsxI/A==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.13.2.tgz", + "integrity": "sha512-jqp6uXHIIAWZ8kxRqFjxyMmIE1cuSbINellwwigOgk44eLg74ls82oqjY72MbDAowPivQkOU/fF7tsyaGQf5Zg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.13.2.tgz", + "integrity": "sha512-bD4oAyPZdzOWEA/JoX0sAitOhjJRwhomhWMeyRyowtlVQhQleG2ijRUKTvkq4CAvSobrW5EnZxjvHNKJ5L7zJg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.13.2.tgz", + "integrity": "sha512-fFJ0yc3lZyfwca+F5OPN/s+izozWryUQpN8aUMIdUkOa7UKX0h3xXrKnkDgdOo8vy3d1A6zHH0/4f2VJfEzLCg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.13.2.tgz", + "integrity": "sha512-DWBZauEfjmqdfWxIacI+KBEim3ulOjtvK+WVm1bX67XlfyUVIkD915OIfT2EBhQUWmv+Z0tZZwskSMNj5DKojw==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.13.2.tgz", + "integrity": "sha512-Gt2rNqqRCRh1QQC2d83KP0iWIXWQYpns7l2+41a1n0PQxXkQ5AarpjjL9mUzdXtcZauNXbUvWwBKAuBTCW+XQg==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.13.2.tgz", + "integrity": "sha512-yT0D5Xly8oGHuqq975k1XUyULHzk3fN/ZlTY+awlU+nCFsYPZ43NE5msGpxlNQu8i6KOXQEke5GXN3y5d+Zd4g==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.13.2.tgz", + "integrity": "sha512-KXeyotqj9jbvCjbSpwnxDE8E8jKoBgrgbJpOvvY5Zz7Pp2fAwu/94vWQtE/jPEJndY4C4MSs+ryJLFWzmLOa4w==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.13.2.tgz", + "integrity": "sha512-qwXL+3NDCWiC8RMKBBETpuOWdC+pUAUS+pwg9jJmapYblLdVKkyRtwF/ogj06TdYs6riSSNikW8HK/Xs0HHbbQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.13.2.tgz", + "integrity": "sha512-sx8eheRX2XC2ppNAsbQm8/VUcU8XPYGpJK0BEyRefqHONz6u5Ib2guUdOz2Wh4YlbA7oOd482lHjprXSTwUcrQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.13.2.tgz", + "integrity": "sha512-y8iZ3qy2TIAKKsZ6xSopCztHOtGW9oiYDl22vQ0UIoVWjnfRKrbSzX7Y2F94y32hSvRWle6OhAIC+UpS5nQmIA==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.13.2.tgz", + "integrity": "sha512-g6AYrjBeV9OK624bw0KQ1TjHJQSW+X1Yicyd1NvDWqSFpMqKAjw7EUX4tA87mOFqv8BflPGr4f43ySgNvSVzIw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.13.2.tgz", + "integrity": "sha512-hIXvFIyrqwFd6v62XSra0ctCUXDS9Tu5D6QYbvnbhEoBmvD/TmEJRYRH48/+xmRifKJLzu6aegcrjAsDmaww7g==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.13.2.tgz", + "integrity": "sha512-Y767LG0NFkw0sPoDVOTKC5gaj4vURjjWfSCCDV5awpXXxBKOF2zsIp3aia4KvVoivoSSeRPk3emDd0OPHuPrKg==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.13.2.tgz", + "integrity": "sha512-01b59kVJUMasctn6lzswC0drchr7zO75QtF22o5w0nlOw0Zorw0loY/8i5choFuWc30gXJId9qBSc1zPvt7uEw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.13.2", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.13.2.tgz", + "integrity": "sha512-HxyY604ytmh8NkPYyS1TdIB/bFS7DWd1hP90e8Ovo/elEdN5I13h0tyIatDYZkXKS0Ztk+9T/3h6K0fI1a/4tQ==", + "dev": true, + "optional": true + }, "escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", diff --git a/packages/config/tsconfig.base.json b/packages/config/tsconfig.base.json index 363f06b..ef413c5 100644 --- a/packages/config/tsconfig.base.json +++ b/packages/config/tsconfig.base.json @@ -28,7 +28,7 @@ "noUnusedLocals": true, "noUnusedParameters": true, "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true, + "noFallthroughCasesInSwitch": true }, "exclude": [ "node_modules" diff --git a/packages/config/tsconfig.esm.json b/packages/config/tsconfig.esm.json new file mode 100644 index 0000000..023efda --- /dev/null +++ b/packages/config/tsconfig.esm.json @@ -0,0 +1,6 @@ +{ + "extends": "./tsconfig.base.json", + "compilerOptions": { + "module": "ES2015" + } +} diff --git a/packages/object-util/package.json b/packages/object-util/package.json index ecc159e..26141bd 100644 --- a/packages/object-util/package.json +++ b/packages/object-util/package.json @@ -10,19 +10,21 @@ "homepage": "https://github.com/dzeiocom/libs/tree/master/packages/object-util", "author": "Aviortheking", "license": "MIT", - "main": "./dist/ObjectUtil.js", - "types": "./dist/ObjectUtil.d.ts", + "main": "./dist/cjs/ObjectUtil.js", + "module": "./dist/esm/ObjectUtil.js", + "types": "./dist/types/ObjectUtil.d.ts", + "sideEffects": false, "devDependencies": { "@types/jest": "^27.0.0", + "esbuild": "^0.13.2", "jest": "^27.0.0", - "parcel": "1.12.3", "ts-jest": "^27.0.0", "ts-node": "^10.2.1", "typescript": "^4.0.2" }, "scripts": { "prepublishOnly": "npm run build", - "build": "parcel build src/index.ts --out-file browser.js --experimental-scope-hoisting && tsc", + "build": "esbuild src/index.ts --outfile=dist/browser.js --minify --bundle --target=es6 && tsc && tsc --project tsconfig.esm.json", "test": "jest --coverage" } } diff --git a/packages/object-util/tsconfig.esm.json b/packages/object-util/tsconfig.esm.json new file mode 100644 index 0000000..c2f4a00 --- /dev/null +++ b/packages/object-util/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "../config/tsconfig.esm.json", + "compilerOptions": { + "outDir": "dist/esm", + "declaration": false, + "declarationDir": null + }, + "files": [ + "src/ObjectUtil.ts" + ] +} diff --git a/packages/object-util/tsconfig.json b/packages/object-util/tsconfig.json index 7bc1d43..c2c4baf 100644 --- a/packages/object-util/tsconfig.json +++ b/packages/object-util/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "outDir": "dist" + "outDir": "dist/cjs", + "declarationDir": "dist/types" }, "files": [ "src/ObjectUtil.ts" diff --git a/packages/url-manager/package.json b/packages/url-manager/package.json index 320d846..7c01f78 100644 --- a/packages/url-manager/package.json +++ b/packages/url-manager/package.json @@ -10,7 +10,8 @@ "homepage": "https://github.com/dzeiocom/libs/tree/master/packages/url-manager#readme", "author": "Aviortheking", "license": "MIT", - "main": "./dist/URLManager.js", + "main": "./dist/cjs/URLManager.js", + "module": "./dist/esm/URLManager.js", "types": "./dist/URLManager.d.ts", "keywords": [ "url", @@ -23,15 +24,18 @@ "devDependencies": { "@types/chai": "^4.2.12", "@types/jest": "^26.0.10", + "esbuild": "^0.13.2", "jest": "^26.4.2", - "parcel": "1.12.3", "ts-jest": "^26.4.4", "ts-node": "^10.2.1", "typescript": "^4.0.2" }, "scripts": { "prepublishOnly": "yarn build", - "build": "parcel build src/index.ts --out-file browser.js --experimental-scope-hoisting && tsc", + "build": "esbuild src/index.ts --bundle --outfile=dist/browser.js --minify --target=es6 && tsc && tsc --project tsconfig.esm.json", "test": "jest --coverage" + }, + "dependencies": { + "@dzeio/object-util": "^1.4.0" } } diff --git a/packages/url-manager/src/URLManager.ts b/packages/url-manager/src/URLManager.ts index 9888e44..1709919 100644 --- a/packages/url-manager/src/URLManager.ts +++ b/packages/url-manager/src/URLManager.ts @@ -1,3 +1,5 @@ +import { objectLoop } from '@dzeio/object-util' + /** * Easy URLs manager */ @@ -314,13 +316,9 @@ export default class URLManager { return undefined } if (format) { - for (const key in format) { - if (!(key in format)) { - continue - } - const replacing = format[key] - path = path.replace(`[${key}]`, replacing) - } + objectLoop(format, (replacing, key) => { + path = path?.replace(`[${key}]`, replacing) + }) } return `${(path.startsWith('/') ? '' : '/')}${path}` } @@ -328,24 +326,17 @@ export default class URLManager { private formatQuery(options?: { queryArrayJoin?: string }) { let result = '' const queryTmp = this.query() - - for (const key in queryTmp) { - if (!Object.prototype.hasOwnProperty.call(queryTmp, key)) { - continue - } - - const element = queryTmp[key] - + objectLoop(queryTmp, (element, key) => { result += result.length === 0 ? '?' : '&' if (typeof element !== 'object') { result += `${key}=${element}` - continue + return } if (options?.queryArrayJoin) { result += `${key}=${element.join(options.queryArrayJoin)}` - continue + return } for (let i = 0; i < element.length; i++) { @@ -355,7 +346,7 @@ export default class URLManager { } result += `${key}=${val}` } - } + }) if (!result) { return undefined diff --git a/packages/url-manager/tsconfig.esm.json b/packages/url-manager/tsconfig.esm.json new file mode 100644 index 0000000..41973de --- /dev/null +++ b/packages/url-manager/tsconfig.esm.json @@ -0,0 +1,11 @@ +{ + "extends": "../config/tsconfig.esm.json", + "compilerOptions": { + "outDir": "dist/esm", + "declaration": false, + "declarationDir": null + }, + "files": [ + "src/URLManager.ts" + ] +} diff --git a/packages/url-manager/tsconfig.json b/packages/url-manager/tsconfig.json index 6b2c57f..8bba60d 100644 --- a/packages/url-manager/tsconfig.json +++ b/packages/url-manager/tsconfig.json @@ -1,7 +1,8 @@ { "extends": "../../tsconfig.base.json", "compilerOptions": { - "outDir": "dist" + "outDir": "dist/cjs", + "declarationDir": "dist/types" }, "files": [ "src/URLManager.ts"