From 71b39d6f53d47ce200ddd797a3ef0f27ff7a82ac Mon Sep 17 00:00:00 2001 From: teidesu <86301490+teidesu@users.noreply.github.com> Date: Sun, 30 Oct 2022 18:38:31 +0300 Subject: [PATCH] feat(tl): generate diff file for simpler update flow primarily for my own use --- packages/tl/.gitignore | 2 ++ packages/tl/scripts/constants.ts | 1 + packages/tl/scripts/fetch-api.ts | 14 +++++++++++++- 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/packages/tl/.gitignore b/packages/tl/.gitignore index 69f81f26..1e8270be 100644 --- a/packages/tl/.gitignore +++ b/packages/tl/.gitignore @@ -4,3 +4,5 @@ errors.d.ts errors.js binary/reader.js binary/writer.js + +diff.json diff --git a/packages/tl/scripts/constants.ts b/packages/tl/scripts/constants.ts index 97dbe9c4..1482c212 100644 --- a/packages/tl/scripts/constants.ts +++ b/packages/tl/scripts/constants.ts @@ -6,6 +6,7 @@ export const DESCRIPTIONS_YAML_FILE = join( '../data/descriptions.yaml' ) export const API_SCHEMA_JSON_FILE = join(__dirname, '../api-schema.json') +export const API_SCHEMA_DIFF_JSON_FILE = join(__dirname, '../diff.json') export const MTP_SCHEMA_JSON_FILE = join(__dirname, '../mtp-schema.json') export const ERRORS_JSON_FILE = join(__dirname, '../raw-errors.json') diff --git a/packages/tl/scripts/fetch-api.ts b/packages/tl/scripts/fetch-api.ts index 93bc6dac..446385bd 100644 --- a/packages/tl/scripts/fetch-api.ts +++ b/packages/tl/scripts/fetch-api.ts @@ -12,6 +12,7 @@ import { TlEntry, TlFullSchema, writeTlEntryToString, + generateTlSchemasDifference, } from '@mtcute/tl-utils' import { readdir, readFile, writeFile } from 'fs/promises' import { join } from 'path' @@ -25,6 +26,7 @@ import { TDLIB_SCHEMA, COREFORK_DOMAIN, BLOGFORK_DOMAIN, + API_SCHEMA_DIFF_JSON_FILE, } from './constants' import { fetchRetry } from './utils' import { @@ -32,7 +34,7 @@ import { fetchDocumentation, getCachedDocumentation, } from './documentation' -import { packTlSchema } from './schema' +import { packTlSchema, unpackTlSchema } from "./schema"; import { bumpVersion } from '../../../scripts/version' const README_MD_FILE = join(__dirname, '../README.md') @@ -313,6 +315,16 @@ async function main() { await overrideInt53(resultSchema) + console.log('Writing diff to file...') + const oldSchema = unpackTlSchema(JSON.parse(await readFile(API_SCHEMA_JSON_FILE, 'utf8'))) + await writeFile( + API_SCHEMA_DIFF_JSON_FILE, + JSON.stringify({ + layer: [oldSchema[1], resultLayer], + diff: generateTlSchemasDifference(oldSchema[0], resultSchema), + }, null, 4) + ) + console.log('Writing result to file...') await writeFile( API_SCHEMA_JSON_FILE,