aboutsummaryrefslogtreecommitdiffstats
path: root/build/conf/ts/ts.conf
blob: 701761e5bd330521ac35c49b189e065a400b44db (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
NODEJS_ROOT=
NODEJS_BIN=$NODEJS_ROOT/node

NOTS_TOOL=${tool:"devtools/frontend_build_platform/nots/builder"}
NOTS_TOOL_BASE_ARGS=--build-root $ARCADIA_BUILD_ROOT --bindir $BINDIR --curdir $CURDIR --nodejs-bin $NODEJS_BIN
NOTS_TOOL_NODE_MODULES_BUNDLE=$BINDIR/node_modules.tar
ERM_PACKAGES_PATH=devtools/frontend_build_platform/nots/erm/erm-packages.json

module _TS_BASE_UNIT: _BARE_UNIT {
    # Propagates peers to related modules
    .PEERDIR_POLICY=as_build_from
    .NODE_TYPE=Bundle
    # Needed for DEPENDS in tests to choose right submodule from multimodule
    .FINAL_TARGET=yes

    # .NODE_TYPE=Bundle is required for peers propagation, but it also affects
    # how merging of pic/nopic graphs. Here we can override this merging behaviour
    SET(MODULE_TYPE LIBRARY)
    # Include processor works only for TS tag
    SET(MODULE_TAG TS)
    # TS should peer to TS
    SET(PEERDIR_TAGS TS)
    # .fake tells builder to not materialize it in results
    SET(MODULE_SUFFIX .ts.fake)

    # We read erm-packages.json during configuration, so we have to include it to configuration cache key
    SET_APPEND(_MAKEFILE_INCLUDE_LIKE_DEPS ${ARCADIA_ROOT}/$ERM_PACKAGES_PATH)

    # PEERDIR that reads required version of tool from package.json
    _PEERDIR_TS_RESOURCE(nodejs pnpm typescript eslint)
    # setup toolchain vars
    _SET_EXTERNAL_RESOURCES()
}


# tag:test
ESLINT_CONFIG_PATH=.eslintrc.js
_TS_LINT_SRCS_VALUE=
### _TS_CONFIG_EPILOGUE() # internal
###
### This macro executes macros which should be invoked after all user specified macros in the ya.make file
macro _TS_CONFIG_EPILOGUE() {
    _GLOB(_TS_LINT_SRCS_VALUE ${CURDIR}/**/*.(ts|tsx) EXCLUDE **/node_modules/**/*.(ts|tsx))
    _SETUP_EXTRACT_NODE_MODULES_RECIPE(${MODDIR})
}

@import "${CONF_ROOT}/conf/ts/node_modules.conf"
@import "${CONF_ROOT}/conf/ts/ts_bundle.conf"
@import "${CONF_ROOT}/conf/ts/ts_library.conf"
@import "${CONF_ROOT}/conf/ts/ts_next.conf"
@import "${CONF_ROOT}/conf/ts/ts_test.conf"