mirror of
https://github.com/Turfjs/turf.git
synced 2025-12-08 20:26:16 +00:00
103 lines
3.3 KiB
JavaScript
Executable File
103 lines
3.3 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
|
|
const fs = require('fs');
|
|
const load = require('load-json-file');
|
|
const write = require('write-json-file');
|
|
const path = require('path');
|
|
const glob = require('glob');
|
|
|
|
// Update Typescript Repos
|
|
glob.sync(path.join(__dirname, '..', 'packages', 'turf-*', 'index.ts')).forEach(filepath => {
|
|
const {dir} = path.parse(filepath);
|
|
const pckgPath = path.join(dir, 'package.json');
|
|
const pckg = load.sync(pckgPath);
|
|
|
|
const formatedPckg = {
|
|
name: pckg.name,
|
|
version: pckg.version,
|
|
description: pckg.description,
|
|
main: 'index',
|
|
types: 'index.d.ts',
|
|
files: updateFiles(pckg.files),
|
|
scripts: {
|
|
'prepare': 'tsc',
|
|
'pretest': 'tsc',
|
|
'test': 'node test.js',
|
|
'bench': 'node bench.js',
|
|
'docs': 'node ../../scripts/generate-readmes'
|
|
},
|
|
repository: pckg.repository,
|
|
keywords: pckg.keywords,
|
|
author: pckg.author,
|
|
contributors: pckg.contributors,
|
|
license: pckg.license,
|
|
bugs: pckg.bugs,
|
|
homepage: pckg.homepage,
|
|
devDependencies: updateDevDependencies(pckg),
|
|
dependencies: pckg.dependencies
|
|
};
|
|
write.sync(pckgPath, formatedPckg, {indent: 2});
|
|
|
|
// Remove extra files
|
|
// To-Do
|
|
|
|
// Add .gitignore
|
|
fs.writeFileSync(path.join(dir, '.gitignore'), 'index.js');
|
|
|
|
// Add Typescript configs
|
|
fs.writeFileSync(path.join(dir, 'tsconfig.json'), `{
|
|
"compilerOptions": {
|
|
/* Basic Options */
|
|
"target": "es5", /* Specify ECMAScript target version: 'ES3' (default), 'ES5', 'ES2015', 'ES2016', 'ES2017','ES2018' or 'ESNEXT'. */
|
|
"module": "commonjs", /* Specify module code generation: 'none', 'commonjs', 'amd', 'system', 'umd', 'es2015', or 'ESNext'. */
|
|
"declaration": true, /* Generates corresponding '.d.ts' file. */
|
|
|
|
/* Strict Type-Checking Options */
|
|
"strict": true, /* Enable all strict type-checking options. */
|
|
|
|
/* Module Resolution Options */
|
|
"esModuleInterop": true /* Enables emit interoperability between CommonJS and ES Modules via creation of namespace objects for all imports. Implies 'allowSyntheticDefaultImports'. */
|
|
}
|
|
}`);
|
|
|
|
fs.writeFileSync(path.join(dir, 'tslint.json'), `{
|
|
"defaultSeverity": "error",
|
|
"extends": [
|
|
"tslint:recommended"
|
|
],
|
|
"jsRules": {},
|
|
"rules": {},
|
|
"rulesDirectory": []
|
|
}`);
|
|
});
|
|
|
|
function entries(obj) {
|
|
return Object.keys(obj || {}).map(key => [key, obj[key]]);
|
|
}
|
|
|
|
/**
|
|
* @param {Array<string>} files Files
|
|
* @returns {Array<string>} Files
|
|
*/
|
|
function updateFiles(files) {
|
|
const newFiles = ['index.js', 'index.ts', 'index.d.ts'];
|
|
if (files.includes('lib')) newFiles.push('lib');
|
|
return newFiles;
|
|
}
|
|
|
|
function updateDevDependencies(pckg) {
|
|
const devDependencies = {};
|
|
const dev = new Map(entries(pckg.devDependencies));
|
|
dev.delete('rollup');
|
|
dev.delete('@std/esm');
|
|
dev
|
|
.set('typescript', '*')
|
|
.set('tslint', '*')
|
|
.set('tape', '*')
|
|
.set('@types/tape', '*')
|
|
.set('benchmark', '*').forEach((version, name) => {
|
|
devDependencies[name] = '*';
|
|
});
|
|
return devDependencies;
|
|
}
|