* Moving to pnpm as package manager. Also taking the opportunity to tidy up our cjs / esm situation using tsup (instead of tsc and rollup). Can't get monorepolint to work with new setup so disabling for the time being.
* Changing all Turf imports to use named imports. Adding a few missing named exports. Updating github workflow actions to pnpm instead of yarn.
* Updating typescript module and moduleResolution mechanisms to "node16". Not tracking nodenext just yet. Changing tsup command to generate d.ts files that arethetypeswrong approves of.
* Tweaking github workflows to explicitely install pnpm.
* Looks like node needs the chosen cache binary installed first. Trying without cache as a first step.
* Seem to be hitting the tsx bug described here: https://github.com/privatenumber/tsx/issues/421 Upgrading to latest tsx to remedy.
* Forgot to update lock file after updating tsx dep in package.json files.
* Sorting modules exported from @turf/turf alphabetically. Preparatory commit to add unexported modules.
* Converting index.mjs to typescript, and simplifying re-exported imports, and ordering alphabetically. Added in a couple of packages - convex, booleanValid and nearestNeighbourAnalysis. Rollup now only used in packages/turf so merging project root base config into there. Also now only using rollup in packages/turf to do final conversion to web module. JS and d.ts files generated the same as other modules, using tsup.
* Including tslib in @turf/turf build now that it's a TS module.
* Lot of per-package tsconfig items now on the tsup command line, so stripping back tsconfig.json to the bare minimum. Adding tsconfig.json to packages that while still only JS, are now processed by tsup.
* Same as last commit - simplifying tsconfig.json - except these are the subset of packages that had multiple entry points e.g. 3rd party code hosted locally in lib/
* Incorporating some suggestions from @favna on being more explicit with d.ts entries. https://github.com/Turfjs/turf/issues/2307#issuecomment-1858653048 Specifying overall module type as commonjs explicitly.
* Reapplying cjsInterop / splitting workaround for CJS exports that we had on build target command line earlier in this PR in to tsup config file. Also disabling treeshaking as this was generating a warning for CJS files and causing the workaround above to not work.
* Upgrading rollup and related plugins. Updating to recommended modern browserslist config in babel.config.json e.g. previous chrome 67 and edge 17 are 5 years old, ie11 is just ... ugh
* Fluffed the browserslist config - need to cover es5 as well.
* Update .github/workflows/turf.yml to use actions/checkout v4.
Co-authored-by: Jeroen Claassens <jeroen.claassens@live.nl>
---------
Co-authored-by: Jeroen Claassens <jeroen.claassens@live.nl>
* Simplify nx config (no point separately caching es and js builds - they both need to be done for any code changes). Fix some no-op type definitions i.e. X extends any, and enforce templated property types as having to extend GeoJsonProperties throughout.
* Upgrade typescript. Had to update topojson-* type defs to avoid the P = GeoJsonProperties problem in geojson-rbush. Also fix a couple of floating point precision related issues that eslint now apparently catches!
* Retire tslint.
* Upgrade eslint and prettier. Add minimal prettier config (defaults have changed) to avoid widespread, minor formatting changes (trailing commas mostly).
* Use tslib so that the typescript shims can be imported instead of inlined [manual change]
* Add tslib dependency via monorepolint run
* yarn.lock
Co-authored-by: Matt Fedderly <mfedderly@palantir.com>
* bezier-spline
* clusters-dbscan and clusters-kmeans, but they both need new DefinitelyTyped updates
* kind of speculative fixes for polygonize
* Enforce strict mode
* turf-clusters-kmeans by way of skmeans types
* types
Co-authored-by: Matt Fedderly <mfedderly@palantir.com>
Further build standardization
- Typescript publishes modules
- All packages have sideEffects: false to enable tree shaking
- All projects use prepare instead of duplicating in the pretest command
- Standardize order of package.json files
- turf-bbox export hack to fix @turf/turf build
Co-authored-by: Matt Fedderly <mfedderly@palantir.com>
* Standardize on a single tsconfig
* Standardize tsconfig output
- Move output of es5 code into dist/js (leaves room for dist/es for modules)
- Update references from ./index over to ./dist/js/index.js
- Seems like this will publish types for several new packages
- A few packages needed to be slightly modified to publish correctly to dist
- Small fixes to @turf/turf due to the file path changes
- Note: not currently using types.ts for testing (next commit)
* Re-enable testing using types.ts in packages where that exists
* Run packages/turf tests after everything else has built
* Enforce tsc before bench
* nearest-neighbor-analysis test updates from rowanwins