Выпуск jsii 1.31, генератора кода C#, Go, Java и Python из TypeScript

Компания Amazon опубликовала компилятор jsii 1.31, представляющий собой модификацию компилятора TypeScript, позволяющую извлечь из компилируемых модулей информацию об API и сгенерировать универсальное представление данного API для обращения к JavaScript-классам из приложений на различных языках программирования. Код проекта написан на TypeScript и распространяется под лицензией Apache 2.0.

Jsii даёт возможность создавать на языке TypeScript библиотеки классов, которые могут использоваться в проектах на языках C#, Go, Java и Python, благодаря трансляции в родные для этих языков модули, предоставляющие тот же самый API. Инструментарий используется в AWS Cloud Development Kit для поставки библиотек для разных языков программирования, формируемых из одной кодовой базы.

Новый выпуск примечателен добавлением команды «jsii-rosetta transliterate», позволяющий провести транслитерацию файлов «.jsii»c промежуточным представлением кода в один или несколько целевых языков программирования.

Например, на основе JavaScript/TypeScript-кода: export class HelloWorld { public sayHello(name: string) { return `Hello, ${name}`; } public fibonacci(num: number) { let array = [0, 1]; for (let i = 2; i < num + 1; i++) { array.push(array[i — 2] + array[i — 1]); } return array[num]; } }

jsii сгенерирует Python-код: class HelloWorld: def say_hello(self, name): return ‘Hello, ‘ + name def fibonacci(self, n): table = [0, 1] for i in range(2, n + 1): table.append(table[i — 2] + table[i — 1]) return table[n]
Источник: opennet.ru

Добавить комментарий