Add AddNugetPackageReferenceRequest for sql projects (#22757)

* Add AddnugetPackageReferenceRequest for sql projects

* update comment

* fix whitespace
This commit is contained in:
Kim Santiago
2023-04-17 13:31:17 -07:00
committed by GitHub
parent 02e61d1598
commit 938a8bffbe
3 changed files with 53 additions and 0 deletions

View File

@@ -790,6 +790,10 @@ export namespace AddSystemDatabaseReferenceRequest {
export const type = new RequestType<AddSystemDatabaseReferenceParams, azdata.ResultStatus, void, void>('sqlprojects/addSystemDatabaseReference');
}
export namespace AddNugetPackageReferenceRequest {
export const type = new RequestType<AddNugetPackageReferenceParams, azdata.ResultStatus, void, void>('sqlprojects/addNugetPackageReference');
}
export namespace DeleteDatabaseReferenceRequest {
export const type = new RequestType<DeleteDatabaseReferenceParams, azdata.ResultStatus, void, void>('sqlprojects/deleteDatabaseReference');
}
@@ -839,6 +843,18 @@ export interface AddDacpacReferenceParams extends AddUserDatabaseReferenceParams
dacpacPath: string;
}
export interface AddNugetPackageReferenceParams extends AddUserDatabaseReferenceParams {
/**
* NuGet package name
*/
packageName: string;
/**
* NuGet package version
*/
packageVersion: string;
}
export interface AddDatabaseReferenceParams extends SqlProjectParams {
/**
* Whether to suppress missing dependencies

View File

@@ -352,6 +352,19 @@ declare module 'mssql' {
*/
addSystemDatabaseReference(projectUri: string, systemDatabase: SystemDatabase, suppressMissingDependencies: boolean, databaseLiteral?: string): Promise<azdata.ResultStatus>;
/**
* Add a nuget package database reference to a project
* @param projectUri Absolute path of the project, including .sqlproj
* @param packageName Name of the referenced nuget package
* @param packageVersion Version of the referenced nuget package
* @param suppressMissingDependencies Whether to suppress missing dependencies
* @param databaseVariable SQLCMD variable name for specifying the other database this reference is to, if different from that of the current project
* @param serverVariable SQLCMD variable name for specifying the other server this reference is to, if different from that of the current project.
If this is set, DatabaseVariable must also be set.
* @param databaseLiteral Literal name used to reference another database in the same server, if not using SQLCMD variables
*/
addNugetPackageReference(projectUri: string, packageName: string, packageVersion: string, suppressMissingDependencies: boolean, databaseVariable?: string, serverVariable?: string, databaseLiteral?: string): Promise<azdata.ResultStatus>;
/**
* Delete a database reference from a project
* @param projectUri Absolute path of the project, including .sqlproj
@@ -626,6 +639,10 @@ declare module 'mssql' {
* Array of SQL project references contained in the project
*/
sqlProjectReferences: SqlProjectReference[];
/**
* Array of NuGet package references contained in the project
*/
nugetPackageReferences: NugetPackageReference[];
}
export interface GetFoldersResult extends azdata.ResultStatus {
@@ -724,6 +741,11 @@ declare module 'mssql' {
dacpacPath: string;
}
export interface NugetPackageReference extends UserDatabaseReference {
packageName: string;
packageVersion: string;
}
export const enum SystemDatabase {
Master = 0,
MSDB = 1

View File

@@ -77,6 +77,21 @@ export class SqlProjectsService extends BaseService implements mssql.ISqlProject
return await this.runWithErrorHandling(contracts.AddSystemDatabaseReferenceRequest.type, params);
}
/**
* Add a nuget package database reference to a project
* @param projectUri Absolute path of the project, including .sqlproj
* @param packageName Name of the referenced nuget package
* @param packageVersion Version of the referenced nuget package
* @param suppressMissingDependencies Whether to suppress missing dependencies
* @param databaseVariable SQLCMD variable name for specifying the other database this reference is to, if different from that of the current project
* @param serverVariable SQLCMD variable name for specifying the other server this reference is to, if different from that of the current project. If this is set, DatabaseVariable must also be set.
* @param databaseLiteral Literal name used to reference another database in the same server, if not using SQLCMD variables
*/
public async addNugetPackageReference(projectUri: string, packageName: string, packageVersion: string, suppressMissingDependencies: boolean, databaseVariable?: string, serverVariable?: string, databaseLiteral?: string): Promise<azdata.ResultStatus> {
const params: contracts.AddNugetPackageReferenceParams = { projectUri: projectUri, packageName: packageName, packageVersion: packageVersion, suppressMissingDependencies: suppressMissingDependencies, databaseVariable: databaseVariable, serverVariable: serverVariable, databaseLiteral: databaseLiteral };
return await this.runWithErrorHandling(contracts.AddNugetPackageReferenceRequest.type, params);
}
/**
* Delete a database reference from a project
* @param projectUri Absolute path of the project, including .sqlproj