Handle nukpg database references in project.ts (#22762)

* changes in project.ts for adding nupkg database references

* Add tests

* more tests

* fix comment

* remove it.only
This commit is contained in:
Kim Santiago
2023-04-18 11:11:42 -07:00
committed by GitHub
parent b69e87df15
commit 2dcbdc9c63
5 changed files with 171 additions and 9 deletions

View File

@@ -5,7 +5,7 @@
import * as path from 'path';
import * as utils from '../common/utils';
import { IDacpacReferenceSettings, IProjectReferenceSettings } from './IDatabaseReferenceSettings';
import { IDacpacReferenceSettings, INugetPackageReferenceSettings, IProjectReferenceSettings } from './IDatabaseReferenceSettings';
import { EntryType, IDatabaseReferenceProjectEntry, IFileProjectEntry, IProjectEntry } from 'sqldbproj';
import { Uri } from 'vscode';
@@ -124,6 +124,37 @@ export class SqlProjectReferenceProjectEntry extends FileProjectEntry implements
}
}
export class NugetPackageReferenceProjectEntry extends FileProjectEntry implements IDatabaseReferenceProjectEntry {
databaseSqlCmdVariableValue?: string;
databaseSqlCmdVariableName?: string;
databaseVariableLiteralValue?: string;
serverSqlCmdVariableName?: string;
serverSqlCmdVariableValue?: string;
suppressMissingDependenciesErrors: boolean;
packageName: string;
constructor(settings: INugetPackageReferenceSettings) {
super(Uri.file(settings.packageName), /* relativePath doesn't get set for database references */ '', EntryType.DatabaseReference);
this.packageName = settings.packageName;
this.suppressMissingDependenciesErrors = settings.suppressMissingDependenciesErrors;
this.databaseVariableLiteralValue = settings.databaseVariableLiteralValue;
this.databaseSqlCmdVariableName = settings.databaseName;
this.databaseSqlCmdVariableValue = settings.databaseVariable;
this.serverSqlCmdVariableName = settings.serverName;
this.serverSqlCmdVariableValue = settings.serverVariable;
}
public get referenceName(): string {
return this.packageName;
}
public override pathForSqlProj(): string {
return this.packageName;
}
}
export class SqlCmdVariableProjectEntry extends ProjectEntry {
constructor(public variableName: string, public defaultValue: string) {
super(EntryType.SqlCmdVariable);