mirror of
https://github.com/Turfjs/turf.git
synced 2025-12-08 20:26:16 +00:00
76 lines
2.5 KiB
JavaScript
Executable File
76 lines
2.5 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const load = require('load-json-file');
|
|
const write = require('write-json-file');
|
|
const path = require('path');
|
|
const glob = require('glob');
|
|
|
|
// Update package.json
|
|
glob.sync(path.join(__dirname, '..', 'packages', 'turf-*', 'package.json')).forEach(packagePath => {
|
|
const pckg = load.sync(packagePath);
|
|
pckg.dependencies = updateDependencies(pckg);
|
|
pckg.devDependencies = updateDevDependencies(pckg);
|
|
write.sync(packagePath, pckg, {indent: 2});
|
|
});
|
|
|
|
function entries(obj) {
|
|
return Object.keys(obj || {}).map(key => [key, obj[key]]);
|
|
}
|
|
|
|
function updateDependencies(pckg) {
|
|
const dependencies = {};
|
|
new Map(entries(pckg.dependencies))
|
|
.forEach((version, name) => {
|
|
// Update dependencies to v5.x
|
|
switch (name) {
|
|
case 'geojson-rbush':
|
|
dependencies[name] = '2.1.0';
|
|
break;
|
|
case 'topojson-client':
|
|
case 'topojson-server':
|
|
dependencies[name] = '3.x';
|
|
break;
|
|
// JSTS based modules:
|
|
case '@turf/buffer':
|
|
case '@turf/intersect':
|
|
case '@turf/union':
|
|
case '@turf/difference':
|
|
case '@turf/dissolve':
|
|
case '@turf/hex-grid':
|
|
case '@turf/mask':
|
|
case '@turf/square-grid':
|
|
case '@turf/triangle-grid':
|
|
case '@turf/interpolate':
|
|
dependencies[name] = '*';
|
|
break;
|
|
case 'jsts':
|
|
case 'jsts-es':
|
|
case '@turf/point-on-surface':
|
|
case '@turf/line-distance':
|
|
case '@turf/point-on-line':
|
|
case '@turf/nearest':
|
|
throw new Error(`${pckg.name} module has invalid dependency ${name}`);
|
|
default:
|
|
dependencies[name] = version;
|
|
}
|
|
});
|
|
// All modules will have helpers to handle the internal TypeScript definitions
|
|
if (pckg.name !== '@turf/helpers') dependencies['@turf/helpers'] = '^5.0.4';
|
|
return dependencies;
|
|
}
|
|
|
|
function updateDevDependencies(pckg) {
|
|
const devDependencies = {};
|
|
const dev = new Map(entries(pckg.devDependencies));
|
|
dev.delete('rollup-plugin-uglify');
|
|
dev.delete('uglify-js');
|
|
dev.delete('@turf/helpers');
|
|
dev.set('rollup', '*')
|
|
.set('tape', '*')
|
|
.set('@std/esm', '*')
|
|
.set('benchmark', '*').forEach((version, name) => {
|
|
devDependencies[name] = '*';
|
|
});
|
|
return devDependencies;
|
|
}
|