Типы Stripe TypeScript, влияющие на производительность сборки ts c - PullRequest
0 голосов
/ 21 марта 2020

Поскольку для нашей первоначальной сборки сборка TypeScript заняла больше времени, чем ожидалось, я включил incremental: true в tsconfig.json, чтобы создать tsconfig.tsbuildinfo, что значительно сократит начальное время сборки tsc --watch.

После проверки файл содержит 19999 + вхождений слова stripe в форме:

      "./app/enums/licensetype.ts": [
        "./node_modules/@types/node/fs.d.ts",
        "./node_modules/@types/node/ts3.2/fs.d.ts",
        "./node_modules/@types/node/util.d.ts",
        "./node_modules/@types/node/ts3.2/util.d.ts",
        "./node_modules/stripe/types/shared.d.ts",
        "./node_modules/stripe/types/webhooks.d.ts",
        "./node_modules/stripe/types/oauth.d.ts",
        "./node_modules/stripe/types/2020-03-02/accounts.d.ts",
        "./node_modules/stripe/types/2020-03-02/accountlinks.d.ts",
        "./node_modules/stripe/types/2020-03-02/alipayaccounts.d.ts",
        "./node_modules/stripe/types/2020-03-02/applepaydomains.d.ts",
        "./node_modules/stripe/types/2020-03-02/applications.d.ts",
        "./node_modules/stripe/types/2020-03-02/applicationfees.d.ts",
        "./node_modules/stripe/types/2020-03-02/balance.d.ts",
        "./node_modules/stripe/types/2020-03-02/balancetransactions.d.ts",
        "./node_modules/stripe/types/2020-03-02/bankaccounts.d.ts",
        "./node_modules/stripe/types/2020-03-02/bitcoinreceivers.d.ts",
        "./node_modules/stripe/types/2020-03-02/cards.d.ts",
        "./node_modules/stripe/types/2020-03-02/charges.d.ts",
        "./node_modules/stripe/types/2020-03-02/checkout/sessions.d.ts",
        "./node_modules/stripe/types/2020-03-02/connectcollectiontransfers.d.ts",
        "./node_modules/stripe/types/2020-03-02/countryspecs.d.ts",
        "./node_modules/stripe/types/2020-03-02/coupons.d.ts",
        "./node_modules/stripe/types/2020-03-02/creditnotes.d.ts",
        "./node_modules/stripe/types/2020-03-02/customers.d.ts",
        "./node_modules/stripe/types/2020-03-02/discounts.d.ts",
        "./node_modules/stripe/types/2020-03-02/disputes.d.ts",
        "./node_modules/stripe/types/2020-03-02/ephemeralkeys.d.ts",
        "./node_modules/stripe/types/2020-03-02/events.d.ts",
        "./node_modules/stripe/types/2020-03-02/exchangerates.d.ts",
        "./node_modules/stripe/types/2020-03-02/files.d.ts",
        "./node_modules/stripe/types/2020-03-02/filelinks.d.ts",
        "./node_modules/stripe/types/2020-03-02/invoices.d.ts",
        "./node_modules/stripe/types/2020-03-02/invoiceitems.d.ts",
        "./node_modules/stripe/types/2020-03-02/issuerfraudrecords.d.ts",
        "./node_modules/stripe/types/2020-03-02/issuing/authorizations.d.ts",
        "./node_modules/stripe/types/2020-03-02/issuing/cards.d.ts",
        "./node_modules/stripe/types/2020-03-02/issuing/carddetails.d.ts",
        "./node_modules/stripe/types/2020-03-02/issuing/cardholders.d.ts",
        "./node_modules/stripe/types/2020-03-02/issuing/disputes.d.ts",
        "./node_modules/stripe/types/2020-03-02/issuing/transactions.d.ts",
        "./node_modules/stripe/types/2020-03-02/mandates.d.ts",
        "./node_modules/stripe/types/2020-03-02/orders.d.ts",
        "./node_modules/stripe/types/2020-03-02/orderitems.d.ts",
        "./node_modules/stripe/types/2020-03-02/orderreturns.d.ts",
        "./node_modules/stripe/types/2020-03-02/paymentintents.d.ts",
        "./node_modules/stripe/types/2020-03-02/paymentmethods.d.ts",
        "./node_modules/stripe/types/2020-03-02/payouts.d.ts",
        "./node_modules/stripe/types/2020-03-02/plans.d.ts",
        "./node_modules/stripe/types/2020-03-02/platformtaxfees.d.ts",
        "./node_modules/stripe/types/2020-03-02/products.d.ts",
        "./node_modules/stripe/types/2020-03-02/radar/earlyfraudwarnings.d.ts",
        "./node_modules/stripe/types/2020-03-02/radar/valuelists.d.ts",
        "./node_modules/stripe/types/2020-03-02/radar/valuelistitems.d.ts",
        "./node_modules/stripe/types/2020-03-02/recipients.d.ts",
        "./node_modules/stripe/types/2020-03-02/refunds.d.ts",
        "./node_modules/stripe/types/2020-03-02/reporting/reportruns.d.ts",
        "./node_modules/stripe/types/2020-03-02/reporting/reporttypes.d.ts",
        "./node_modules/stripe/types/2020-03-02/reservetransactions.d.ts",
        "./node_modules/stripe/types/2020-03-02/reviews.d.ts",
        "./node_modules/stripe/types/2020-03-02/sigma/scheduledqueryruns.d.ts",
        "./node_modules/stripe/types/2020-03-02/setupintents.d.ts",
        "./node_modules/stripe/types/2020-03-02/skus.d.ts",
        "./node_modules/stripe/types/2020-03-02/sources.d.ts",
        "./node_modules/stripe/types/2020-03-02/sourcemandatenotifications.d.ts",
        "./node_modules/stripe/types/2020-03-02/sourcetransactions.d.ts",
        "./node_modules/stripe/types/2020-03-02/subscriptions.d.ts",
        "./node_modules/stripe/types/2020-03-02/subscriptionitems.d.ts",
        "./node_modules/stripe/types/2020-03-02/subscriptionschedules.d.ts",
        "./node_modules/stripe/types/2020-03-02/taxdeductedatsources.d.ts",
        "./node_modules/stripe/types/2020-03-02/taxrates.d.ts",
        "./node_modules/stripe/types/2020-03-02/terminal/connectiontokens.d.ts",
        "./node_modules/stripe/types/2020-03-02/terminal/locations.d.ts",
        "./node_modules/stripe/types/2020-03-02/terminal/readers.d.ts",
        "./node_modules/stripe/types/2020-03-02/tokens.d.ts",
        "./node_modules/stripe/types/2020-03-02/topups.d.ts",
        "./node_modules/stripe/types/2020-03-02/transfers.d.ts",
        "./node_modules/stripe/types/2020-03-02/webhookendpoints.d.ts",
        "./node_modules/stripe/types/2020-03-02/capabilities.d.ts",
        "./node_modules/stripe/types/2020-03-02/externalaccounts.d.ts",
        "./node_modules/stripe/types/2020-03-02/loginlinks.d.ts",
        "./node_modules/stripe/types/2020-03-02/persons.d.ts",
        "./node_modules/stripe/types/2020-03-02/feerefunds.d.ts",
        "./node_modules/stripe/types/2020-03-02/bitcointransactions.d.ts",
        "./node_modules/stripe/types/2020-03-02/creditnotelineitems.d.ts",
        "./node_modules/stripe/types/2020-03-02/customerbalancetransactions.d.ts",
        "./node_modules/stripe/types/2020-03-02/customersources.d.ts",
        "./node_modules/stripe/types/2020-03-02/taxids.d.ts",
        "./node_modules/stripe/types/2020-03-02/invoicelineitems.d.ts",
        "./node_modules/stripe/types/2020-03-02/usagerecords.d.ts",
        "./node_modules/stripe/types/2020-03-02/usagerecordsummaries.d.ts",
        "./node_modules/stripe/types/2020-03-02/transferreversals.d.ts",
        "./node_modules/stripe/types/2020-03-02/index.d.ts",
        "./node_modules/stripe/types/lib.d.ts"
      ],

Где ./app/enums/licensetype.ts (ключ) - файл в нашей кодовой базе и строковые значения в массиве предположительно являются типами, которые загружаются в память для этого файла?

Я весьма удивлен этим, потому что мы используем модуль Stripe NPM всего за пару файлов, и ни одна из наших других ~ 90 зависимостей не встречается в этом списке. tsconfig.tsbuildinfo - это 388 тыс. Строк, что немного выше, особенно потому, что большинство из этих строк относятся к перечисленным выше типам Stripe.

Как оптимизировать конфигурацию TypeScript таким образом, чтобы Stripe не замедлялся наша сборка?

Большое спасибо заранее.

...