diff --git a/cli/src/commands/format.ts b/cli/src/commands/format.ts index 6690ef0d5..7756be45e 100644 --- a/cli/src/commands/format.ts +++ b/cli/src/commands/format.ts @@ -21,11 +21,12 @@ export default class Format extends Command { 'order-by': flags.string({ default: 'index', description: 'Order of the keys', - options: ['index', 'key'], + options: ['index', 'key', '-index', '-key'], }), }; async run() { + const {flags} = this.parse(Format); const documents = this.projectConfig.files(); const t0 = process.hrtime(); const formattedPaths: FormattedFile[] = []; @@ -44,7 +45,7 @@ export default class Format extends Command { if (fs.existsSync(path)) { const beforeContent = fs.readFileSync(path); - await document.format(path, language); + await document.format(path, language, flags); const unchanged = fs.readFileSync(path).equals(beforeContent); formattedPaths.push({path, unchanged}); diff --git a/cli/src/services/document.ts b/cli/src/services/document.ts index 72aa95c2d..4b43254b8 100644 --- a/cli/src/services/document.ts +++ b/cli/src/services/document.ts @@ -25,6 +25,10 @@ const throwOnServerError = async (response: Response) => { } }; +interface FormatOptions { + 'order-by': string; +} + export default class Document { paths: string[]; readonly apiKey: string; @@ -46,7 +50,7 @@ export default class Document { this.paths = new Tree(this.config).list(); } - async format(file: string, language: string) { + async format(file: string, language: string, options: FormatOptions) { const formData = new FormData(); formData.append('file', fs.createReadStream(file)); @@ -54,6 +58,7 @@ export default class Document { formData.append('document_format', this.config.format); formData.append('language', language); if (this.projectId) formData.append('project_id', this.projectId); + if (options['order-by']) formData.append('order_by', options['order-by']); const url = `${this.apiUrl}/format`;