From 2504563480be056a74428766101ac8e5c0e0ded0 Mon Sep 17 00:00:00 2001 From: Tomas Della Vedova Date: Thu, 25 Jul 2019 10:57:47 +0200 Subject: [PATCH] =?UTF-8?q?Updated=20automatically=20the=20main=20typings?= =?UTF-8?q?=20file=20with=20the=20generated=20t=E2=80=A6=20(#919)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Updated automatically the main typings file with the generated types * Removed useless log --- .gitignore | 4 ---- index.d.ts | 2 ++ scripts/generate.js | 14 +++++++++----- scripts/utils/generateMain.js | 8 +++++++- 4 files changed, 18 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index a5768f2f9..85b6dce46 100644 --- a/.gitignore +++ b/.gitignore @@ -50,10 +50,6 @@ package-lock.json # elasticsearch repo or binary files elasticsearch* -# Generated typings, we don't commit them -# because we should copy them in the main .d.ts file -api/generated.d.ts - test/benchmarks/macro/fixtures/* *-junit.xml diff --git a/index.d.ts b/index.d.ts index 48a6b1a12..52547a78a 100644 --- a/index.d.ts +++ b/index.d.ts @@ -113,6 +113,7 @@ declare class Client extends EventEmitter { extend: ClientExtends; child(opts?: ClientOptions): Client; close(callback?: Function): Promise | void; + /* GENERATED */ bulk: ApiMethod cat: { aliases: ApiMethod @@ -568,6 +569,7 @@ declare class Client extends EventEmitter { stop: ApiMethod } } + /* /GENERATED */ } declare const events: { diff --git a/scripts/generate.js b/scripts/generate.js index 8246a625a..15f6a5497 100644 --- a/scripts/generate.js +++ b/scripts/generate.js @@ -5,7 +5,7 @@ 'use strict' const { join } = require('path') -const { readdirSync, writeFileSync } = require('fs') +const { readdirSync, readFileSync, writeFileSync } = require('fs') const minimist = require('minimist') const semver = require('semver') const ora = require('ora') @@ -32,7 +32,7 @@ function start (opts) { const packageFolder = join(__dirname, '..', 'api') const apiOutputFolder = join(packageFolder, 'api') const mainOutputFile = join(packageFolder, 'index.js') - const typesOutputFile = join(packageFolder, 'generated.d.ts') + const typeDefFile = join(__dirname, '..', 'index.d.ts') const docOutputFile = join(__dirname, '..', 'docs', 'reference.asciidoc') const requestParamsOutputFile = join(packageFolder, 'requestParams.d.ts') const allSpec = [] @@ -64,9 +64,14 @@ function start (opts) { factory, { encoding: 'utf8' } ) + + const oldTypeDefString = readFileSync(typeDefFile, 'utf8') + const start = oldTypeDefString.indexOf('/* GENERATED */') + const end = oldTypeDefString.indexOf('/* /GENERATED */') + const newTypeDefString = oldTypeDefString.slice(0, start + 15) + '\n' + types + '\n ' + oldTypeDefString.slice(end) writeFileSync( - typesOutputFile, - types, + typeDefFile, + newTypeDefString, { encoding: 'utf8' } ) @@ -82,7 +87,6 @@ function start (opts) { ) log.succeed('Done!') - console.log('Remember to copy the generated types into the index.d.ts file') }) }) diff --git a/scripts/utils/generateMain.js b/scripts/utils/generateMain.js index c785385c6..6f9694fa8 100644 --- a/scripts/utils/generateMain.js +++ b/scripts/utils/generateMain.js @@ -73,7 +73,13 @@ function genFactory (folder) { // serialize the type object const typesStr = Object.keys(types) - .map(key => `${key}: ${JSON.stringify(types[key], null, 2)}`) + .map(key => { + const line = ` ${key}: ${JSON.stringify(types[key], null, 4)}` + if (line.slice(-1) === '}') { + return line.slice(0, -1) + ' }' + } + return line + }) .join('\n') // remove useless quotes and commas .replace(/"/g, '')