Amazon jsii 1.31 కంపైలర్ను ప్రచురించింది, ఇది టైప్స్క్రిప్ట్ కంపైలర్ యొక్క మార్పు, ఇది కంపైల్డ్ మాడ్యూల్స్ నుండి API సమాచారాన్ని సంగ్రహించడానికి మరియు వివిధ ప్రోగ్రామింగ్ భాషలలోని అప్లికేషన్ల నుండి జావాస్క్రిప్ట్ తరగతులను యాక్సెస్ చేయడానికి ఈ API యొక్క సార్వత్రిక ప్రాతినిధ్యాన్ని రూపొందించడానికి మిమ్మల్ని అనుమతిస్తుంది. ప్రాజెక్ట్ కోడ్ టైప్స్క్రిప్ట్లో వ్రాయబడింది మరియు 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