Add removeSource to project
This commit is contained in:
parent
d3bc08ab9d
commit
96a0d9c489
|
@ -112,6 +112,25 @@ describe("project2", () => {
|
|||
})
|
||||
})
|
||||
|
||||
describe("removing sources", () => {
|
||||
let project = Project.createProject()
|
||||
Project.setContinues(project, "main", ["second"])
|
||||
Project.setContinues(project, "second", ["first"])
|
||||
Project.setSource(project, "first", "x=1")
|
||||
Project.setSource(project, "second", "y=2")
|
||||
Project.setSource(project, "main", "y")
|
||||
|
||||
Project.removeSource(project, "main")
|
||||
|
||||
test("can delete sources without dependents", () => {
|
||||
expect(Project.getDependents(project, "second")) == []
|
||||
})
|
||||
|
||||
test("project doesn't have source", () => {
|
||||
expect(Project.getSource(project, "main")) == None
|
||||
})
|
||||
})
|
||||
|
||||
describe("project with include", () => {
|
||||
let project = Project.createProject()
|
||||
Project.setContinues(project, "main", ["second"])
|
||||
|
|
|
@ -22,6 +22,10 @@ export class SqProject {
|
|||
return RSProject.setSource(this._value, sourceId, value);
|
||||
}
|
||||
|
||||
removeSource(sourceId: string) {
|
||||
RSProject.removeSource(this._value, sourceId);
|
||||
}
|
||||
|
||||
getSource(sourceId: string) {
|
||||
return RSProject.getSource(this._value, sourceId);
|
||||
}
|
||||
|
|
|
@ -50,6 +50,14 @@ Sets the source for a given source Id.
|
|||
let setSource = (project: reducerProject, sourceId: string, value: string): unit =>
|
||||
project->Private.setSource(sourceId, value)
|
||||
|
||||
/*
|
||||
Removes the source for a given source Id. Only works on sources without dependents.
|
||||
Returns true for success
|
||||
*/
|
||||
@genType
|
||||
let removeSource = (project: reducerProject, sourceId: string): unit =>
|
||||
project->Private.removeSource(sourceId)
|
||||
|
||||
/*
|
||||
Gets the source for a given source id.
|
||||
*/
|
||||
|
|
|
@ -61,6 +61,10 @@ let setSource = (project: t, sourceId: string, value: string): unit => {
|
|||
touchDependents(project, sourceId)
|
||||
}
|
||||
|
||||
let removeSource = (project: t, sourceId: string): unit => {
|
||||
Belt.MutableMap.String.remove(project.items, sourceId)
|
||||
}
|
||||
|
||||
let clean = (project: t, sourceId: string): unit => {
|
||||
let newItem = project->getItem(sourceId)->ProjectItem.clean
|
||||
project->setItem(sourceId, newItem)
|
||||
|
@ -184,6 +188,7 @@ let linkDependencies = (project: t, sourceId: string): Reducer_T.namespace => {
|
|||
acc->Reducer_Namespace.set(
|
||||
variable,
|
||||
project->getBindings(includeFile)->Reducer_Namespace.toRecord,
|
||||
|
||||
)
|
||||
)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user