Как скомпилировать машинопись в raw ts файлы с удаленными аннотациями типов и импортом интерфейса - PullRequest
0 голосов
/ 08 июля 2019

В настоящее время мы сталкиваемся с проблемой с использованием функций Firebase (с базой кода машинописи), где у нас есть отдельная библиотека в нашем монореполе, которая также находится в машинописном тексте, однако эта библиотека импортирует типы и интерфейсы через символические ссылки (рабочее пространство пряжи) ианнотирует файлы, используя их.

Мы пытаемся использовать эту библиотеку, чтобы иметь все наши общие служебные функции и т. д., а затем каждый раз перед развертыванием копировать ее версию в каталог «функций» облачных функций, поэтомучто нам не нужно каждый раз вручную копировать папку monorepo в нее.

Это потому, что monorepo / символические ссылки не работают с облачными функциями, так как для них нужен код, чтобы все они находились локально в вашей папке функций или на npm в виде пакета, и мы не можем опубликовать часть нашей базы кода как общедоступную.package.

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

В ответ на вопрос я имею в виду следующее:

function.ts

const { MyInterface } = require('interfaces');
const myFunction = (foo: MyInterface) => bar;

Тогда я хочу раздетый файл без аннотаций или импорта типа / интерфейса, например:

function.ts (раздетый)

const myFunction = (foo) => bar;

Любая помощь будет принята с благодарностью,спасибо

1 Ответ

0 голосов
/ 08 июля 2019

Решено: (частично так или иначе) В итоге мы использовали сценарий оболочки, чтобы сначала поместить перенесенную папку javascript в каталог функций, а затем запустить и добавить

export {};

В начало каждого файла (чтобы решить проблему «невозможно повторно объявить переменную области блока»), затем он прошел и просто изменил все эти файлы на расширения .ts.

По общему признанию, не самое элегантное решение в мире, но оно пока работает.

...