Просмотр исходного кода

conf: Сделать вызов макроса TS_FILES обязательным для TS_PACKAGE
fd92c9fd52236249f4a95bc57fff7f66797923a5

khoden 10 месяцев назад
Родитель
Сommit
42c37f6650
2 измененных файлов с 16 добавлено и 0 удалено
  1. 5 0
      build/conf/ts/ts_package.conf
  2. 11 0
      build/plugins/nots.py

+ 5 - 0
build/conf/ts/ts_package.conf

@@ -5,6 +5,10 @@ TS_PACK=$TOUCH_UNIT \
     && $_TS_FILES_COPY_CMD \
     && $_TS_FILES_COPY_CMD \
     ${kv;hide:"p TS_PKG"} ${kv;hide:"pc magenta"}
     ${kv;hide:"p TS_PKG"} ${kv;hide:"pc magenta"}
 
 
+macro _TS_PACKAGE_EPILOGUE() {
+  _TS_PACKAGE_CHECK_FILES()
+}
+
 ### @usage: TS_PACKAGE()
 ### @usage: TS_PACKAGE()
 ###
 ###
 ### The TypeScript/JavaScript library module, that does not need any compilation,
 ### The TypeScript/JavaScript library module, that does not need any compilation,
@@ -23,6 +27,7 @@ TS_PACK=$TOUCH_UNIT \
 multimodule TS_PACKAGE {
 multimodule TS_PACKAGE {
     module BUILD: _TS_BASE_UNIT {
     module BUILD: _TS_BASE_UNIT {
         .CMD=TS_PACK
         .CMD=TS_PACK
+        .EPILOGUE=_TS_PACKAGE_EPILOGUE
         .ALLOWED=TS_FILES
         .ALLOWED=TS_FILES
         .ALIASES=FILES=TS_FILES SRCS=TS_FILES
         .ALIASES=FILES=TS_FILES SRCS=TS_FILES
         .PEERDIRSELF=TS_PREPARE_DEPS
         .PEERDIRSELF=TS_PREPARE_DEPS

+ 11 - 0
build/plugins/nots.py

@@ -697,6 +697,17 @@ def on_ts_files(unit, *files):
     unit.set(["_TS_FILES_COPY_CMD", " && ".join(new_cmds)])
     unit.set(["_TS_FILES_COPY_CMD", " && ".join(new_cmds)])
 
 
 
 
+@_with_report_configure_error
+def on_ts_package_check_files(unit):
+    ts_files = unit.get("_TS_FILES_COPY_CMD")
+    if ts_files == "":
+        ymake.report_configure_error(
+            "\n"
+            "In the TS_PACKAGE module, you should define at least one file using the TS_FILES() macro.\n"
+            "Docs: https://docs.yandex-team.ru/frontend-in-arcadia/references/TS_PACKAGE#ts-files."
+        )
+
+
 @_with_report_configure_error
 @_with_report_configure_error
 def on_depends_on_mod(unit):
 def on_depends_on_mod(unit):
     if unit.get("_TS_TEST_DEPENDS_ON_BUILD"):
     if unit.get("_TS_TEST_DEPENDS_ON_BUILD"):