Skip to content

Commit

Permalink
[JS] feat: Azure AI Search data source (#1361)
Browse files Browse the repository at this point in the history
## Linked issues

closes: #1360 #1267 #1266 (issue number)

## Details
Introducing a sample to showcase how to integrate the Azure AI Search
data source.

#### Change details
- Included scripts to create/delete index
- Included Teams Test tool
- Azure AI Search data source

## Attestation Checklist

- [x] My code follows the style guidelines of this project

- I have checked for/fixed spelling, linting, and other errors
- I have commented my code for clarity
- I have made corresponding changes to the documentation (updating the
doc strings in the code is sufficient)
- My changes generate no new warnings
- I have added tests that validates my changes, and provides sufficient
test coverage. I have tested with:
  - Local testing
  - E2E testing in Teams
- New and existing unit tests pass locally with my changes

---------

Co-authored-by: Corina <14900841+corinagum@users.noreply.github.com>
  • Loading branch information
singhk97 and corinagum committed Mar 14, 2024
1 parent 3f64d5e commit c48b7c0
Show file tree
Hide file tree
Showing 35 changed files with 1,914 additions and 2 deletions.
8 changes: 8 additions & 0 deletions js/samples/08.datasource.azureAISearch/.eslintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
bin
build
demo-packages
dist
manifest
node_modules
package-lock.json
docs/assets/main.js
58 changes: 58 additions & 0 deletions js/samples/08.datasource.azureAISearch/.eslintrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
{
"parser": "@typescript-eslint/parser",
"root": true,
"env": {
"browser": true,
"node": true,
"es2015": true,
"mocha": true,
"jest": true
},
"extends": [
"eslint:recommended",
"plugin:@typescript-eslint/recommended",
"plugin:import/typescript",
"plugin:import/recommended",
"plugin:jsdoc/recommended",
"plugin:prettier/recommended" // Recommended to be last
],
"plugins": [
"@typescript-eslint",
"jsdoc",

"mocha",
"only-warn",
"prettier"
// "react"
],
"parserOptions": {
"ecmaVersion": 2015,
// Allows for the parsing of modern ECMAScript features
"sourceType": "module" // Allows for the use of imports
// "ecmaFeatures": {
// "jsx": true
// }
},
"rules": {
// Place to specify ESLint rules. Can be used to overwrite rules specified from the extended configs
"@typescript-eslint/ban-types": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/explicit-member-accessibility": "off",
"@typescript-eslint/explicit-module-boundary-types": "off",
"@typescript-eslint/interface-name-prefix": "off",
"@typescript-eslint/no-empty-function": "off",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/no-namespace": "off",
"no-async-promise-executor": "off",
"no-constant-condition": "off",
"no-undef": "off", // Disabled due to conflicts with @typescript/eslint
"no-unused-vars": "off", // Disabled due to conflicts with @typescript/eslint
"prettier/prettier": "error"
},
"overrides": [
{
"files": ["bin/*.js", "lib/*.js"]
}
],
"ignorePatterns": ["node_modules/*"]
}
115 changes: 115 additions & 0 deletions js/samples/08.datasource.azureAISearch/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
.zip

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*

# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
/**/lib
lib

# Coverage directory used by tools like istanbul
coverage
*.lcov

# nyc test coverage
.nyc_output

# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt

# Bower dependency directory (https://bower.io/)
bower_components

# node-waf configuration
.lock-wscript

# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release

# Dependency directories
node_modules/
jspm_packages/

# TypeScript v1 declaration files
typings/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# dotenv environment variables file
.env
.env.test

# parcel-bundler cache (https://parceljs.org/)
.cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt
dist

# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and *not* Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public

# vuepress build output
.vuepress/dist

# Serverless directories
.serverless/

# FuseBox cache
.fusebox/

# DynamoDB Local files
.dynamodb/

# TernJS port file
.tern-port

# Teams Toolkit
env/.env.*.user
env/.env.local
appPackage/build
.deployment
devTools/
7 changes: 7 additions & 0 deletions js/samples/08.datasource.azureAISearch/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
bin
build
demo-packages
dist
manifest
node_modules
package-lock.json
11 changes: 11 additions & 0 deletions js/samples/08.datasource.azureAISearch/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"arrowParens": "always",
"endOfLine": "auto",
"printWidth": 120,
"semi": true,
"singleAttributePerLine": false,
"singleQuote": true,
"tabWidth": 4,
"trailingComma": "none",
"useTabs": false
}
107 changes: 107 additions & 0 deletions js/samples/08.datasource.azureAISearch/.vscode/launch.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,107 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Launch Remote (Edge)",
"type": "msedge",
"request": "launch",
"url": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}",
"presentation": {
"group": "remote",
"order": 1
},
"internalConsoleOptions": "neverOpen"
},
{
"name": "Launch Remote (Chrome)",
"type": "chrome",
"request": "launch",
"url": "https://teams.microsoft.com/l/app/${{TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}",
"presentation": {
"group": "remote",
"order": 2
},
"internalConsoleOptions": "neverOpen"
},
{
"name": "Launch App (Edge)",
"type": "msedge",
"request": "launch",
"url": "https://teams.microsoft.com/l/app/${{local:TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}",
"cascadeTerminateToConfigurations": [
"Attach to Local Service"
],
"presentation": {
"group": "all",
"hidden": true
},
"internalConsoleOptions": "neverOpen"
},
{
"name": "Launch App (Chrome)",
"type": "chrome",
"request": "launch",
"url": "https://teams.microsoft.com/l/app/${{local:TEAMS_APP_ID}}?installAppPackage=true&webjoin=true&${account-hint}",
"cascadeTerminateToConfigurations": [
"Attach to Local Service"
],
"presentation": {
"group": "all",
"hidden": true
},
"internalConsoleOptions": "neverOpen"
},
{
"name": "Attach to Local Service",
"type": "node",
"request": "attach",
"port": 9239,
"restart": true,
"presentation": {
"group": "all",
"hidden": true
},
"internalConsoleOptions": "neverOpen"
},
],
"compounds": [
{
"name": "Debug (Edge)",
"configurations": [
"Launch App (Edge)",
"Attach to Local Service"
],
"preLaunchTask": "Start Teams App Locally",
"presentation": {
"group": "all",
"order": 1
},
"stopAll": true
},
{
"name": "Debug in Test Tool (Preview)",
"configurations": [
"Attach to Local Service"
],
"preLaunchTask": "Start Teams App (Test Tool)",
"presentation": {
"group": "2-local",
"order": 1
},
"stopAll": true
},
{
"name": "Debug (Chrome)",
"configurations": [
"Launch App (Chrome)",
"Attach to Local Service"
],
"preLaunchTask": "Start Teams App Locally",
"presentation": {
"group": "all",
"order": 2
},
"stopAll": true
}
]
}
Loading

0 comments on commit c48b7c0

Please sign in to comment.