From fc215ba35d2ebc12aefc046e0c2847b7e23e5c10 Mon Sep 17 00:00:00 2001 From: Rido Date: Mon, 24 Feb 2025 17:14:18 +0000 Subject: [PATCH] Migrate Node.js project to TypeScript and restructure build process --- .../nodejs/.vscode/launch.json | 3 ++- .../nodejs/.vscode/tasks.json | 15 ++++++++++++++ .../copilotstudio-skill/nodejs/package.json | 6 +++--- .../nodejs/src/{bot.js => bot.ts} | 4 +--- .../nodejs/src/{index.js => index.ts} | 3 +-- .../copilotstudio-skill/nodejs/tsconfig.json | 20 +++++++++++++++++++ 6 files changed, 42 insertions(+), 9 deletions(-) create mode 100644 samples/complex/copilotstudio-skill/nodejs/.vscode/tasks.json rename samples/complex/copilotstudio-skill/nodejs/src/{bot.js => bot.ts} (91%) rename samples/complex/copilotstudio-skill/nodejs/src/{index.js => index.ts} (88%) create mode 100644 samples/complex/copilotstudio-skill/nodejs/tsconfig.json diff --git a/samples/complex/copilotstudio-skill/nodejs/.vscode/launch.json b/samples/complex/copilotstudio-skill/nodejs/.vscode/launch.json index 921d046..1a1b909 100644 --- a/samples/complex/copilotstudio-skill/nodejs/.vscode/launch.json +++ b/samples/complex/copilotstudio-skill/nodejs/.vscode/launch.json @@ -8,7 +8,8 @@ "skipFiles": [ "/**" ], - "program": "${workspaceFolder}/src/index.js" + "program": "${workspaceFolder}/src/index.js", + "preLaunchTask": "npm: build echo-bot-skill" } ] } diff --git a/samples/complex/copilotstudio-skill/nodejs/.vscode/tasks.json b/samples/complex/copilotstudio-skill/nodejs/.vscode/tasks.json new file mode 100644 index 0000000..ba0c8ff --- /dev/null +++ b/samples/complex/copilotstudio-skill/nodejs/.vscode/tasks.json @@ -0,0 +1,15 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "build", + "group": { + "kind": "build", + "isDefault": true + }, + "problemMatcher": [], + "label": "npm: build echo-bot-skill" + } + ] +} diff --git a/samples/complex/copilotstudio-skill/nodejs/package.json b/samples/complex/copilotstudio-skill/nodejs/package.json index 682878d..30de7c5 100644 --- a/samples/complex/copilotstudio-skill/nodejs/package.json +++ b/samples/complex/copilotstudio-skill/nodejs/package.json @@ -2,10 +2,10 @@ "name": "node-echo-skill", "version": "1.0.0", "main": "index.js", - "type": "module", "scripts": { - "lint": "eslint src", - "start": "node --env-file .env src/index.js" + "prebuild": "npm install", + "build": "tsc --build", + "start": "node --env-file .env dist/index.js" }, "keywords": [], "author": "", diff --git a/samples/complex/copilotstudio-skill/nodejs/src/bot.js b/samples/complex/copilotstudio-skill/nodejs/src/bot.ts similarity index 91% rename from samples/complex/copilotstudio-skill/nodejs/src/bot.js rename to samples/complex/copilotstudio-skill/nodejs/src/bot.ts index e8e10f5..09d709a 100644 --- a/samples/complex/copilotstudio-skill/nodejs/src/bot.js +++ b/samples/complex/copilotstudio-skill/nodejs/src/bot.ts @@ -1,7 +1,5 @@ -// @ts-check - import { ActivityHandler, MessageFactory } from '@microsoft/agents-bot-hosting' -import pjson from '@microsoft/agents-bot-hosting/package.json' with { type: 'json' } +import pjson from '@microsoft/agents-bot-hosting/package.json' export class EchoBot extends ActivityHandler { constructor () { diff --git a/samples/complex/copilotstudio-skill/nodejs/src/index.js b/samples/complex/copilotstudio-skill/nodejs/src/index.ts similarity index 88% rename from samples/complex/copilotstudio-skill/nodejs/src/index.js rename to samples/complex/copilotstudio-skill/nodejs/src/index.ts index ae0dca7..e5f6cb8 100644 --- a/samples/complex/copilotstudio-skill/nodejs/src/index.js +++ b/samples/complex/copilotstudio-skill/nodejs/src/index.ts @@ -1,8 +1,7 @@ -// @ts-check import express, { json } from 'express' import { CloudAdapter, loadAuthConfigFromEnv, authorizeJWT } from '@microsoft/agents-bot-hosting' -import pjson from '@microsoft/agents-bot-hosting/package.json' with { type: 'json' } +import pjson from '@microsoft/agents-bot-hosting/package.json' import { EchoBot } from './bot.js' diff --git a/samples/complex/copilotstudio-skill/nodejs/tsconfig.json b/samples/complex/copilotstudio-skill/nodejs/tsconfig.json new file mode 100644 index 0000000..5fb9619 --- /dev/null +++ b/samples/complex/copilotstudio-skill/nodejs/tsconfig.json @@ -0,0 +1,20 @@ +{ + "compilerOptions": { + "incremental": true, + "lib": ["ES2021"], + "target": "es2019", + "module": "commonjs", + "declaration": true, + "sourceMap": true, + "composite": true, + "strict": true, + "moduleResolution": "node", + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "rootDir": "src", + "outDir": "dist", + "tsBuildInfoFile": "dist/.tsbuildinfo" + } +}