Files
stats/packages/cli/src/importer/index.ts
Carl-Gerhard Lindesvärd 32e91959f6 chore(root): migrate to biome
2024-09-18 23:46:11 +02:00

60 lines
1.3 KiB
TypeScript

import path from 'node:path';
import arg from 'arg';
import { glob } from 'glob';
import { importFiles } from './importer';
export default async function importer() {
const args = arg(
{
'--glob': String,
'--api-url': String,
'--client-id': String,
'--client-secret': String,
'--dry-run': Boolean,
'--from': Number,
'--to': Number,
},
{
permissive: true,
},
);
if (!args['--glob']) {
throw new Error('Missing --glob argument');
}
if (!args['--client-id']) {
throw new Error('Missing --client-id argument');
}
if (!args['--client-secret']) {
throw new Error('Missing --client-secret argument');
}
const cwd = process.cwd();
const fileMatcher = path.resolve(cwd, args['--glob']);
const allFiles = await glob([fileMatcher], { root: '/' });
allFiles.sort((a, b) => a.localeCompare(b));
const files = allFiles.slice(
args['--from'] ?? 0,
args['--to'] ?? Number.MAX_SAFE_INTEGER,
);
if (args['--dry-run']) {
files.forEach((file, index) => {
console.log(`Would import (index: ${index}): ${file}`);
});
return;
}
return importFiles({
files,
clientId: args['--client-id'],
clientSecret: args['--client-secret'],
apiUrl: args['--api-url'] ?? 'https://api.openpanel.dev',
});
}