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", () => {
|
describe("project with include", () => {
|
||||||
let project = Project.createProject()
|
let project = Project.createProject()
|
||||||
Project.setContinues(project, "main", ["second"])
|
Project.setContinues(project, "main", ["second"])
|
||||||
|
|
|
@ -22,6 +22,10 @@ export class SqProject {
|
||||||
return RSProject.setSource(this._value, sourceId, value);
|
return RSProject.setSource(this._value, sourceId, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
removeSource(sourceId: string) {
|
||||||
|
RSProject.removeSource(this._value, sourceId);
|
||||||
|
}
|
||||||
|
|
||||||
getSource(sourceId: string) {
|
getSource(sourceId: string) {
|
||||||
return RSProject.getSource(this._value, sourceId);
|
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 =>
|
let setSource = (project: reducerProject, sourceId: string, value: string): unit =>
|
||||||
project->Private.setSource(sourceId, value)
|
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.
|
Gets the source for a given source id.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -61,6 +61,10 @@ let setSource = (project: t, sourceId: string, value: string): unit => {
|
||||||
touchDependents(project, sourceId)
|
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 clean = (project: t, sourceId: string): unit => {
|
||||||
let newItem = project->getItem(sourceId)->ProjectItem.clean
|
let newItem = project->getItem(sourceId)->ProjectItem.clean
|
||||||
project->setItem(sourceId, newItem)
|
project->setItem(sourceId, newItem)
|
||||||
|
@ -184,6 +188,7 @@ let linkDependencies = (project: t, sourceId: string): Reducer_T.namespace => {
|
||||||
acc->Reducer_Namespace.set(
|
acc->Reducer_Namespace.set(
|
||||||
variable,
|
variable,
|
||||||
project->getBindings(includeFile)->Reducer_Namespace.toRecord,
|
project->getBindings(includeFile)->Reducer_Namespace.toRecord,
|
||||||
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user