Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: use swc for ts-node #55

Merged
merged 6 commits into from
Feb 12, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,10 @@ gh repo clone jasonkuhrt/template-typescript-lib foobar \
1. [`sourceMap`](https://www.typescriptlang.org/tsconfig#sourceMap) enabled to allow your users' tools to base off the source for e.g. stack traces instead of the less informative derived built JS.
1. [`importHelpers`](https://www.typescriptlang.org/tsconfig#importHelpers) enabled to minimize build size.

1. `ts-node` for running TypeScript scripts/modules.

1. [Setup to use SWC](https://typestrong.org/ts-node/docs/transpilers/#swc)

#### [ESLint](https://eslint.org/) For Linting

1. TypeScript integration
Expand Down
3 changes: 3 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,8 @@
},
"devDependencies": {
"@prisma-labs/prettier-config": "0.1.0",
"@swc/core": "^1.2.138",
"@swc/helpers": "^0.3.2",
"@types/node": "17.0.13",
"@typescript-eslint/eslint-plugin": "5.11.0",
"@typescript-eslint/parser": "5.11.0",
Expand All @@ -61,6 +63,7 @@
"prettier": "2.5.1",
"ts-node": "10.5.0",
"ts-patch": "2.0.1",
"tsconfig-paths": "^3.12.0",
"typescript": "4.5.5",
"typescript-snapshots-plugin": "1.7.0",
"typescript-transform-paths": "3.3.1"
Expand Down
6 changes: 2 additions & 4 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"ts-node": {
"transpileOnly": true,
"require": ["typescript-transform-paths/register"],
"swc": true,
"require": ["tsconfig-paths/register"],
"compilerOptions": {
// Sometimes projects (e.g. Nextjs) will want code to emit ESM but ts-node will not work with that.
"module": "CommonJS"
Expand Down Expand Up @@ -41,8 +41,6 @@

// Transformer Plugins made possible by https://github.com/nonara/ts-patch
"plugins": [
// https://github.com/dsherret/ts-nameof
{ "transform": "ts-nameof", "type": "raw" },
// https://github.com/LeDDGroup/typescript-transform-paths
{ "transform": "typescript-transform-paths" },
{ "transform": "typescript-transform-paths", "afterDeclarations": true }
Expand Down
186 changes: 186 additions & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -363,6 +363,152 @@ __metadata:
languageName: node
linkType: hard

"@swc/core-android-arm-eabi@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-android-arm-eabi@npm:1.2.138"
checksum: 6a48dba1c817d18cc1b0580d2d425cd5b9fc1d46342a4d21fa17b37fb82152d2928559707386166fcd8d7fdb9090bec8a3f17796c0e3319a8bf6cee8c88811c1
languageName: node
linkType: hard

"@swc/core-android-arm64@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-android-arm64@npm:1.2.138"
checksum: aeb04a59cab07b90eb612f4ccbcbfd714975849d9ac37306ea4ecc3b788f24fd58ff8b56c0eb05ccf9dfdcaf743883e04cf23d5fafba1501c6ed343e4327ea30
languageName: node
linkType: hard

"@swc/core-darwin-arm64@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-darwin-arm64@npm:1.2.138"
checksum: 9cdb39b20c33ac37f2dbb117616ccc9055cce00756448158239f7fb4342318f8f40f99cfb0caf4fcf13da16eecc83b8daf1a069f9fd53a07fdc108a5ff2f109e
languageName: node
linkType: hard

"@swc/core-darwin-x64@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-darwin-x64@npm:1.2.138"
checksum: 8e51c8eeafb6591ab8ed0efcbd03898920bbf5338b26310a34db19a524b6a6a1b0a5b61a0a55747801c49277200f118464c2dcd3817f3cf484cf25cb7813180c
languageName: node
linkType: hard

"@swc/core-freebsd-x64@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-freebsd-x64@npm:1.2.138"
checksum: 962af1cf9ba69825a078ff0b1ebfd9b61ba4b11279907a0a5e81a48b38387193507e28cccc42f88f8a7cf46faf2d4e0fc6d31d871cd852bc75d549ba3e1b0e34
languageName: node
linkType: hard

"@swc/core-linux-arm-gnueabihf@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.2.138"
checksum: 1d58e1b2b01bf2287f10c29af324d818c1acdcd0366d0cb42ebde54154f3fc5b24f2613535dcb5c09377ab5df32974cc8344bc654170c18553ace87078f38772
languageName: node
linkType: hard

"@swc/core-linux-arm64-gnu@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-linux-arm64-gnu@npm:1.2.138"
checksum: 297faa65887763e4f6be1bf1c6a8d88c1d19f394a5f0e8e88aebcf3707479d6d707f532a7c4c854c53863991a3c3a6bbee5de607b75d370c06027233c49b975e
languageName: node
linkType: hard

"@swc/core-linux-arm64-musl@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-linux-arm64-musl@npm:1.2.138"
checksum: e03720f328aa04f4772a9e194ece717c1805805f9a241df7d036fc19b3969e3d0a926b922937cf9878d9c51b9673ca958ba19f541e4fd6e76912f3a802743f3d
languageName: node
linkType: hard

"@swc/core-linux-x64-gnu@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-linux-x64-gnu@npm:1.2.138"
checksum: 74b205bddc263656f2ba35475ee721506b2810c2e1e925ebd56374ce49bd530040a96327f8d8a6d39a6e1d0774196b7cb71d96e966806e106118a82cb4fbabee
languageName: node
linkType: hard

"@swc/core-linux-x64-musl@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-linux-x64-musl@npm:1.2.138"
checksum: 0d0c5d8ba8d8c63148808599f6851409950a7ab149bb64164c16bde2e6c633de78b46893b5dab0c3882de974ceea58b14e4823f26961ef1a30bcf6f1b6c70ec8
languageName: node
linkType: hard

"@swc/core-win32-arm64-msvc@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-win32-arm64-msvc@npm:1.2.138"
checksum: 17db4f776a1c2f26dbb67f65dc49f2792d81f4e06e3ecd887f532f227a6d53853fbb2343010f5267f34408b9c332b1f8c9a53e949c1330ab36dac756d2d6b39c
languageName: node
linkType: hard

"@swc/core-win32-ia32-msvc@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-win32-ia32-msvc@npm:1.2.138"
checksum: 2433e5d659a017507a3e4bd568e981fb83f8808814d7562c8b12f14a6e51ff6786932afad16db922bcdb5f79493ef4a07e09c8eeee7190a51b804feb91853cb5
languageName: node
linkType: hard

"@swc/core-win32-x64-msvc@npm:1.2.138":
version: 1.2.138
resolution: "@swc/core-win32-x64-msvc@npm:1.2.138"
checksum: d32558e603fc52fbabd4017b0423519866ad078e2a8a3fee72e96350fcda995cc3ed5495a756c27d06c8211509b10910a31f9ef720456bba0b9bc603f52bd070
languageName: node
linkType: hard

"@swc/core@npm:^1.2.138":
version: 1.2.138
resolution: "@swc/core@npm:1.2.138"
dependencies:
"@swc/core-android-arm-eabi": 1.2.138
"@swc/core-android-arm64": 1.2.138
"@swc/core-darwin-arm64": 1.2.138
"@swc/core-darwin-x64": 1.2.138
"@swc/core-freebsd-x64": 1.2.138
"@swc/core-linux-arm-gnueabihf": 1.2.138
"@swc/core-linux-arm64-gnu": 1.2.138
"@swc/core-linux-arm64-musl": 1.2.138
"@swc/core-linux-x64-gnu": 1.2.138
"@swc/core-linux-x64-musl": 1.2.138
"@swc/core-win32-arm64-msvc": 1.2.138
"@swc/core-win32-ia32-msvc": 1.2.138
"@swc/core-win32-x64-msvc": 1.2.138
dependenciesMeta:
"@swc/core-android-arm-eabi":
optional: true
"@swc/core-android-arm64":
optional: true
"@swc/core-darwin-arm64":
optional: true
"@swc/core-darwin-x64":
optional: true
"@swc/core-freebsd-x64":
optional: true
"@swc/core-linux-arm-gnueabihf":
optional: true
"@swc/core-linux-arm64-gnu":
optional: true
"@swc/core-linux-arm64-musl":
optional: true
"@swc/core-linux-x64-gnu":
optional: true
"@swc/core-linux-x64-musl":
optional: true
"@swc/core-win32-arm64-msvc":
optional: true
"@swc/core-win32-ia32-msvc":
optional: true
"@swc/core-win32-x64-msvc":
optional: true
checksum: 151ded0768b3bbd7fc02d992086d676f5f6d89ac7a42e0ba2a5a13ef89514707f2984f15827d1e1271c54e5d4a9002832dfa659b506406ba266ac90560f60e82
languageName: node
linkType: hard

"@swc/helpers@npm:^0.3.2":
version: 0.3.2
resolution: "@swc/helpers@npm:0.3.2"
checksum: ab0ed08c234eaae108ba241e3c73212062cc0533e4f6e5e37e17343fbf3da13b60a63109bcd052dd937072e6f290cda76fb74ccb7bfd632e3f85a51b0acea7fd
languageName: node
linkType: hard

"@tootallnate/once@npm:1":
version: 1.1.2
resolution: "@tootallnate/once@npm:1.1.2"
Expand Down Expand Up @@ -414,6 +560,13 @@ __metadata:
languageName: node
linkType: hard

"@types/json5@npm:^0.0.29":
version: 0.0.29
resolution: "@types/json5@npm:0.0.29"
checksum: e60b153664572116dfea673c5bda7778dbff150498f44f998e34b5886d8afc47f16799280e4b6e241c0472aef1bc36add771c569c68fc5125fc2ae519a3eb9ac
languageName: node
linkType: hard

"@types/ms@npm:*":
version: 0.7.31
resolution: "@types/ms@npm:0.7.31"
Expand Down Expand Up @@ -2993,6 +3146,17 @@ fsevents@~2.3.2:
languageName: node
linkType: hard

"json5@npm:^1.0.1":
version: 1.0.1
resolution: "json5@npm:1.0.1"
dependencies:
minimist: ^1.2.0
bin:
json5: lib/cli.js
checksum: e76ea23dbb8fc1348c143da628134a98adf4c5a4e8ea2adaa74a80c455fc2cdf0e2e13e6398ef819bfe92306b610ebb2002668ed9fc1af386d593691ef346fc3
languageName: node
linkType: hard

"jsonfile@npm:^4.0.0":
version: 4.0.0
resolution: "jsonfile@npm:4.0.0"
Expand Down Expand Up @@ -4440,6 +4604,13 @@ resolve@~1.19.0:
languageName: node
linkType: hard

"strip-bom@npm:^3.0.0":
version: 3.0.0
resolution: "strip-bom@npm:3.0.0"
checksum: 8d50ff27b7ebe5ecc78f1fe1e00fcdff7af014e73cf724b46fb81ef889eeb1015fc5184b64e81a2efe002180f3ba431bdd77e300da5c6685d702780fbf0c8d5b
languageName: node
linkType: hard

"strip-color@npm:^0.1.0":
version: 0.1.0
resolution: "strip-color@npm:0.1.0"
Expand Down Expand Up @@ -4518,6 +4689,8 @@ resolve@~1.19.0:
resolution: "template-typescript-lib@workspace:."
dependencies:
"@prisma-labs/prettier-config": 0.1.0
"@swc/core": ^1.2.138
"@swc/helpers": ^0.3.2
"@types/node": 17.0.13
"@typescript-eslint/eslint-plugin": 5.11.0
"@typescript-eslint/parser": 5.11.0
Expand All @@ -4538,6 +4711,7 @@ resolve@~1.19.0:
prettier: 2.5.1
ts-node: 10.5.0
ts-patch: 2.0.1
tsconfig-paths: ^3.12.0
tslib: ^2.3.1
typescript: 4.5.5
typescript-snapshots-plugin: 1.7.0
Expand Down Expand Up @@ -4660,6 +4834,18 @@ resolve@~1.19.0:
languageName: node
linkType: hard

"tsconfig-paths@npm:^3.12.0":
version: 3.12.0
resolution: "tsconfig-paths@npm:3.12.0"
dependencies:
"@types/json5": ^0.0.29
json5: ^1.0.1
minimist: ^1.2.0
strip-bom: ^3.0.0
checksum: 4999ec6cd1c7cc06750a460dbc0d39fe3595a4308cb5f1d0d0a8283009cf9c0a30d5a156508c28fe3a47760508af5263ab288fc23d71e9762779674257a95d3b
languageName: node
linkType: hard

"tslib@npm:^1.8.1, tslib@npm:^1.9.3":
version: 1.14.1
resolution: "tslib@npm:1.14.1"
Expand Down