Skip to content

Commit 0850dbf

Browse files
authored
refactor: use Node.js native TS support (#1133)
This removes `tsx` (https://www.npmjs.com/package/tsx) to run the TypeScript code and switches over to Node.js native support for running TypeScript: https://nodejs.org/en/learn/typescript/run-natively
1 parent 4b0f721 commit 0850dbf

File tree

177 files changed

+782
-1568
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

177 files changed

+782
-1568
lines changed

.github/workflows/test-and-release.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -237,8 +237,9 @@ jobs:
237237
- name: Print failed End-to-End tests
238238
if: failure()
239239
run:
240-
cat e2e-test-result.json | npx tsx --no-warnings
241-
./feature-runner/console-reporter.ts --only-failed --with-timestamps
240+
cat e2e-test-result.json | node --experimental-transform-types
241+
--no-warnings ./feature-runner/console-reporter.ts --only-failed
242+
--with-timestamps
242243

243244
- uses: actions/upload-artifact@v4
244245
if: failure()
@@ -253,8 +254,8 @@ jobs:
253254
- name: Get all logs
254255
if: failure()
255256
run: |
256-
npx tsx ./aws/export-logs.ts ${{ env.STACK_NAME }}
257-
npx tsx ./aws/export-logs.ts ${{ needs.http-api-mock.outputs.stackName }}
257+
node --experimental-transform-types ./aws/export-logs.ts ${{ env.STACK_NAME }}
258+
node --experimental-transform-types ./aws/export-logs.ts ${{ needs.http-api-mock.outputs.stackName }}
258259
259260
- uses: actions/upload-artifact@v4
260261
if: failure()

Memfault/MemfaultReboots.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { validateWithTypeBox } from '@hello.nrfcloud.com/proto'
22
import assert from 'node:assert'
33
import { describe, it } from 'node:test'
4-
import { MemfaultReboots } from './MemfaultReboots.js'
4+
import { MemfaultReboots } from './MemfaultReboots.ts'
55
import res from './reboots.json' assert { type: 'json' }
66

77
void describe('MemfaultReboots()', () => {

Memfault/api.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { validateWithTypeBox } from '@hello.nrfcloud.com/proto'
22
import { type Static } from '@sinclair/typebox'
3-
import { NotFoundError } from '../util/NotFoundError.js'
4-
import { ValidationError } from '../util/ValidationError.js'
5-
import { MemfaultReboots } from './MemfaultReboots.js'
3+
import { NotFoundError } from '../util/NotFoundError.ts'
4+
import { ValidationError } from '../util/ValidationError.ts'
5+
import { MemfaultReboots } from './MemfaultReboots.ts'
66

77
export const v = validateWithTypeBox(MemfaultReboots)
88

aws/getIoTEndpoint.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { IoTClient } from '@aws-sdk/client-iot'
22
import { DescribeEndpointCommand } from '@aws-sdk/client-iot'
3-
import { isString } from '../util/isString.js'
3+
import { isString } from '../util/isString.ts'
44

55
export const getIoTEndpoint = async ({
66
iot,

bridge/createCAVerificationCert.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ import run from '@bifravst/run'
44
import { randomUUID } from 'crypto'
55
import { unlink } from 'fs/promises'
66
import path from 'path'
7-
import { type logFn } from '../cli/log.js'
8-
import { caLocation } from './caLocation.js'
7+
import { type logFn } from '../cli/log.ts'
8+
import { caLocation } from './caLocation.ts'
99

1010
export const createCAVerificationCert = async ({
1111
iot,

bridge/ensureCA.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import type { IoTClient } from '@aws-sdk/client-iot'
22
import run from '@bifravst/run'
33
import { mkdir, stat } from 'node:fs/promises'
4-
import type { logFn } from '../cli/log.js'
5-
import { ulid } from '../util/ulid.js'
6-
import { caLocation, type CAFiles } from './caLocation.js'
7-
import { createCAVerificationCert } from './createCAVerificationCert.js'
4+
import type { logFn } from '../cli/log.ts'
5+
import { ulid } from '../util/ulid.ts'
6+
import { caLocation, type CAFiles } from './caLocation.ts'
7+
import { createCAVerificationCert } from './createCAVerificationCert.ts'
88

99
export const ensureCA =
1010
({

bridge/ensureMQTTBridgeCredentials.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
import type { IoTClient } from '@aws-sdk/client-iot'
22
import run from '@bifravst/run'
33
import { mkdir, stat } from 'node:fs/promises'
4-
import type { logFn } from '../cli/log.js'
5-
import { ulid } from '../util/ulid.js'
6-
import { ensureCA } from './ensureCA.js'
4+
import type { logFn } from '../cli/log.ts'
5+
import { ulid } from '../util/ulid.ts'
6+
import { ensureCA } from './ensureCA.ts'
77
import {
88
mqttBridgeCertificateLocation,
99
type CertificateFiles,
10-
} from './mqttBridgeCertificateLocation.js'
10+
} from './mqttBridgeCertificateLocation.ts'
1111

1212
export const ensureMQTTBridgeCredentials =
1313
({

cdk.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
"app": "npx tsx --no-warnings cdk/backend.ts"
2+
"app": "node --experimental-transform-types --no-warnings cdk/backend.ts"
33
}

cdk/BackendApp.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { App } from 'aws-cdk-lib'
2-
import { BackendStack } from './BackendStack.js'
2+
import { BackendStack } from './BackendStack.ts'
33

44
export class BackendApp extends App {
55
public constructor({

cdk/BackendStack.ts

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -11,41 +11,41 @@ import {
1111
Stack,
1212
type Environment,
1313
} from 'aws-cdk-lib'
14-
import { ContainerRepositoryId } from '../aws/ecr.js'
15-
import { type CAFiles } from '../bridge/caLocation.js'
16-
import type { CertificateFiles } from '../bridge/mqttBridgeCertificateLocation.js'
17-
import type { BackendLambdas } from './packBackendLambdas.js'
18-
import { API } from './resources/API.js'
14+
import { ContainerRepositoryId } from '../aws/ecr.ts'
15+
import { type CAFiles } from '../bridge/caLocation.ts'
16+
import type { CertificateFiles } from '../bridge/mqttBridgeCertificateLocation.ts'
17+
import type { BackendLambdas } from './packBackendLambdas.ts'
18+
import { API } from './resources/API.ts'
1919
import {
2020
APICustomDomain,
2121
type CustomDomain,
22-
} from './resources/APICustomDomain.js'
23-
import { APIHealthCheck } from './resources/APIHealthCheck.js'
24-
import { ContinuousDeployment } from './resources/ContinuousDeployment.js'
25-
import { ConvertNrfCloudDeviceMessages } from './resources/ConvertNrfCloudDeviceMessages.js'
26-
import { DeviceFOTA } from './resources/DeviceFOTA.js'
27-
import { DeviceInfo } from './resources/DeviceInfo.js'
28-
import { DeviceLastSeen } from './resources/DeviceLastSeen.js'
29-
import { DeviceLocationHistory } from './resources/DeviceLocationHistory.js'
30-
import { DeviceShadow } from './resources/DeviceShadow.js'
31-
import { DeviceStorage } from './resources/DeviceStorage.js'
32-
import { MultiBundleFOTAFlow } from './resources/FOTA/MultiBundleFlow.js'
33-
import { Feedback } from './resources/Feedback.js'
34-
import { HealthCheckCoAP } from './resources/HealthCheckCoAP.js'
35-
import { HealthCheckMqtt } from './resources/HealthCheckMqtt.js'
36-
import { Integration } from './resources/Integration.js'
37-
import { LwM2MObjectsHistory } from './resources/LwM2MObjectsHistory.js'
38-
import { MemfaultReboots } from './resources/MemfaultReboots.js'
39-
import { Monitoring } from './resources/Monitoring.js'
40-
import { SenMLImportLogs } from './resources/SenMLImportLogs.js'
41-
import { CoAPSenMLtoLwM2M } from './resources/SenMLtoLwM2M.js'
42-
import { UpdateDevice } from './resources/UpdateDevice.js'
43-
import { UpdateDeviceState } from './resources/UpdateDeviceState.js'
44-
import { WebsocketAPI } from './resources/WebsocketAPI.js'
45-
import { WebsocketConnectionsTable } from './resources/WebsocketConnectionsTable.js'
46-
import { WebsocketEventBus } from './resources/WebsocketEventBus.js'
47-
import { KPIs } from './resources/kpis/KPIs.js'
48-
import { STACK_NAME } from './stackConfig.js'
22+
} from './resources/APICustomDomain.ts'
23+
import { APIHealthCheck } from './resources/APIHealthCheck.ts'
24+
import { ContinuousDeployment } from './resources/ContinuousDeployment.ts'
25+
import { ConvertNrfCloudDeviceMessages } from './resources/ConvertNrfCloudDeviceMessages.ts'
26+
import { DeviceFOTA } from './resources/DeviceFOTA.ts'
27+
import { DeviceInfo } from './resources/DeviceInfo.ts'
28+
import { DeviceLastSeen } from './resources/DeviceLastSeen.ts'
29+
import { DeviceLocationHistory } from './resources/DeviceLocationHistory.ts'
30+
import { DeviceShadow } from './resources/DeviceShadow.ts'
31+
import { DeviceStorage } from './resources/DeviceStorage.ts'
32+
import { MultiBundleFOTAFlow } from './resources/FOTA/MultiBundleFlow.ts'
33+
import { Feedback } from './resources/Feedback.ts'
34+
import { HealthCheckCoAP } from './resources/HealthCheckCoAP.ts'
35+
import { HealthCheckMqtt } from './resources/HealthCheckMqtt.ts'
36+
import { Integration } from './resources/Integration.ts'
37+
import { LwM2MObjectsHistory } from './resources/LwM2MObjectsHistory.ts'
38+
import { MemfaultReboots } from './resources/MemfaultReboots.ts'
39+
import { Monitoring } from './resources/Monitoring.ts'
40+
import { SenMLImportLogs } from './resources/SenMLImportLogs.ts'
41+
import { CoAPSenMLtoLwM2M } from './resources/SenMLtoLwM2M.ts'
42+
import { UpdateDevice } from './resources/UpdateDevice.ts'
43+
import { UpdateDeviceState } from './resources/UpdateDeviceState.ts'
44+
import { WebsocketAPI } from './resources/WebsocketAPI.ts'
45+
import { WebsocketConnectionsTable } from './resources/WebsocketConnectionsTable.ts'
46+
import { WebsocketEventBus } from './resources/WebsocketEventBus.ts'
47+
import { KPIs } from './resources/kpis/KPIs.ts'
48+
import { STACK_NAME } from './stackConfig.ts'
4949

5050
export class BackendStack extends Stack {
5151
public constructor(

0 commit comments

Comments
 (0)