Compare commits
12 Commits
feature/1-
...
feature/3-
| Author | SHA1 | Date | |
|---|---|---|---|
| b07b63add2 | |||
| f62c8a0c13 | |||
| 0cfb2edd83 | |||
| 09f398c63f | |||
| 0cef71e053 | |||
| db96953443 | |||
| b3e1b31750 | |||
| a0a3a83cae | |||
| dbe79d5e1b | |||
| 17b57648d5 | |||
| cf1da606d4 | |||
| ff8aaba741 |
1
libs/modules/src/azTable/az-table.constants.ts
Normal file
1
libs/modules/src/azTable/az-table.constants.ts
Normal file
@@ -0,0 +1 @@
|
||||
export const TABLE_OPTIONS = 'TABLE_OPTIONS';
|
||||
4
libs/modules/src/azTable/az-table.interface.ts
Normal file
4
libs/modules/src/azTable/az-table.interface.ts
Normal file
@@ -0,0 +1,4 @@
|
||||
export interface TableOptions {
|
||||
accountName: string;
|
||||
accountKey: string;
|
||||
}
|
||||
21
libs/modules/src/azTable/az-table.module.ts
Normal file
21
libs/modules/src/azTable/az-table.module.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import { Module, DynamicModule } from '@nestjs/common';
|
||||
import { TableService } from './az-table.service';
|
||||
import { TableOptions } from './az-table.interface';
|
||||
import { TABLE_OPTIONS } from './az-table.constants';
|
||||
|
||||
@Module({})
|
||||
export class TableModule {
|
||||
static register(options: TableOptions): DynamicModule {
|
||||
return {
|
||||
module: TableModule,
|
||||
providers: [
|
||||
{
|
||||
provide: TABLE_OPTIONS,
|
||||
useValue: options
|
||||
},
|
||||
TableService
|
||||
],
|
||||
exports: [TableService]
|
||||
}
|
||||
}
|
||||
}
|
||||
19
libs/modules/src/azTable/az-table.service.ts
Normal file
19
libs/modules/src/azTable/az-table.service.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { Inject, Injectable } from '@nestjs/common';
|
||||
import { TableOptions } from './az-table.interface';
|
||||
import { TABLE_OPTIONS } from './az-table.constants';
|
||||
import { TableClient, AzureNamedKeyCredential } from '@azure/data-tables';
|
||||
|
||||
@Injectable()
|
||||
export class TableService {
|
||||
constructor(
|
||||
@Inject(TABLE_OPTIONS)
|
||||
private tablesOptions: TableOptions
|
||||
) {}
|
||||
|
||||
async getTableClient(tableName: string): Promise<TableClient> {
|
||||
const credential: AzureNamedKeyCredential = new AzureNamedKeyCredential(this.tablesOptions.accountName, this.tablesOptions.accountKey);
|
||||
const tableClient: TableClient = new TableClient(`https://${this.tablesOptions.accountName}.table.core.windows.net`, tableName, credential);
|
||||
|
||||
return tableClient;
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,12 @@
|
||||
export * from './azAppConfig/az-app-config.module';
|
||||
export * from './azAppConfig/az-app-config.service';
|
||||
|
||||
// Azure Data Tables
|
||||
|
||||
export * from './azTable/az-table.module';
|
||||
export * from './azTable/az-table.service';
|
||||
export { TableClient } from '@azure/data-tables';
|
||||
|
||||
// Auth
|
||||
|
||||
export * from './auth/auth.module';
|
||||
|
||||
70
package-lock.json
generated
70
package-lock.json
generated
@@ -1,15 +1,16 @@
|
||||
{
|
||||
"name": "@noahspan/noahspan-modules",
|
||||
"version": "0.2.9",
|
||||
"version": "0.3.5",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "@noahspan/noahspan-modules",
|
||||
"version": "0.2.9",
|
||||
"version": "0.3.5",
|
||||
"license": "UNLICENSED",
|
||||
"dependencies": {
|
||||
"@azure/app-configuration": "^1.6.0",
|
||||
"@azure/data-tables": "^13.2.2",
|
||||
"@azure/identity": "^4.2.0",
|
||||
"@azure/msal-node": "^2.9.2",
|
||||
"@microsoft/microsoft-graph-client": "^3.0.7",
|
||||
@@ -438,6 +439,45 @@
|
||||
"node": ">=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/core-xml": {
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/@azure/core-xml/-/core-xml-1.4.3.tgz",
|
||||
"integrity": "sha512-D6G7FEmDiTctPKuWegX2WTrS1enKZwqYwdKTO6ZN6JMigcCehlT0/CYl+zWpI9vQ9frwwp7GQT3/owaEXgnOsA==",
|
||||
"dependencies": {
|
||||
"fast-xml-parser": "^4.3.2",
|
||||
"tslib": "^2.6.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/data-tables": {
|
||||
"version": "13.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@azure/data-tables/-/data-tables-13.2.2.tgz",
|
||||
"integrity": "sha512-Dq2Aq0mMMF0BPzYQKdBY/OtO7VemP/foh6z+mJpUO1hRL+65C1rGQUJf20LJHotSyU8wHb4HJzOs+Z50GXSy1w==",
|
||||
"dependencies": {
|
||||
"@azure/core-auth": "^1.3.0",
|
||||
"@azure/core-client": "^1.0.0",
|
||||
"@azure/core-paging": "^1.1.1",
|
||||
"@azure/core-rest-pipeline": "^1.1.0",
|
||||
"@azure/core-tracing": "^1.0.0",
|
||||
"@azure/core-xml": "^1.0.0",
|
||||
"@azure/logger": "^1.0.0",
|
||||
"tslib": "^2.2.0",
|
||||
"uuid": "^8.3.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/data-tables/node_modules/uuid": {
|
||||
"version": "8.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz",
|
||||
"integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==",
|
||||
"bin": {
|
||||
"uuid": "dist/bin/uuid"
|
||||
}
|
||||
},
|
||||
"node_modules/@azure/identity": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@azure/identity/-/identity-4.2.0.tgz",
|
||||
@@ -4772,6 +4812,27 @@
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
|
||||
"integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA=="
|
||||
},
|
||||
"node_modules/fast-xml-parser": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.4.1.tgz",
|
||||
"integrity": "sha512-xkjOecfnKGkSsOwtZ5Pz7Us/T6mrbPQrq0nh+aCO5V9nk5NLWmasAHumTKjiPJPWANe+kAZ84Jc8ooJkzZ88Sw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
"url": "https://github.com/sponsors/NaturalIntelligence"
|
||||
},
|
||||
{
|
||||
"type": "paypal",
|
||||
"url": "https://paypal.me/naturalintelligence"
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"strnum": "^1.0.5"
|
||||
},
|
||||
"bin": {
|
||||
"fxparser": "src/cli/cli.js"
|
||||
}
|
||||
},
|
||||
"node_modules/fastq": {
|
||||
"version": "1.17.1",
|
||||
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz",
|
||||
@@ -8644,6 +8705,11 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/strnum": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz",
|
||||
"integrity": "sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA=="
|
||||
},
|
||||
"node_modules/superagent": {
|
||||
"version": "8.1.2",
|
||||
"resolved": "https://registry.npmjs.org/superagent/-/superagent-8.1.2.tgz",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@noahspan/noahspan-modules",
|
||||
"version": "0.3.5",
|
||||
"version": "0.3.9",
|
||||
"description": "",
|
||||
"author": "",
|
||||
"license": "UNLICENSED",
|
||||
@@ -25,6 +25,7 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@azure/app-configuration": "^1.6.0",
|
||||
"@azure/data-tables": "^13.2.2",
|
||||
"@azure/identity": "^4.2.0",
|
||||
"@azure/msal-node": "^2.9.2",
|
||||
"@microsoft/microsoft-graph-client": "^3.0.7",
|
||||
|
||||
Reference in New Issue
Block a user