Is there a method to get term URL in taxonomy in SharePoint TermStore using PnPJS library?
I am using this code to retreive term Name, Parent and ID:
export interface IPTerm {
parent?: string;
id: string;
name: string;
url: string;
}
export interface ITaxonomyPopulatorState {
terms: IPTerm[];
}
public async getTermsetWithChildren(): Promise<IPTerm[]> {
let tms: IPTerm[] = [];
return new Promise<any[]>((resolve, reject) => {
const tbatch = taxonomy.createBatch();
return taxonomy.termStores.getByName("Taxonomy_InjkMqAvKdUBok59vNz/Mg==").get().then((resp1: ITermStore) => {
return resp1.getTermGroupById("7bdebaed-a684-4682-a5a6-6c1f1e976641").termSets.get().then((resp2: ITermSet[]) => {
resp2.forEach((ele: ITermSet) => {
ele.terms.select('Name', 'Id', 'Url').inBatch(tbatch).get().then((resp3: ITerm[]) => {
resp3.forEach((t: ITerm) => {
let ip1 = {
parent: ele['Name'],
name: t['Name'],
id: t['Id'].replace("/Guid(", "").replace(")/", ""),
};
tms.push(ip1);
});
});
});
tbatch.execute().then(_r => {
resolve(tms);
});
});
});
});
}
EDIT:
Iterm interface:
export interface ITerm extends IClientSvcQueryable {
readonly labels: ILabels;
readonly parent: ITerm;
readonly pinSourceTermSet: ITermSet;
readonly reusedTerms: ITerms;
readonly sourceTerm: ITerm;
readonly terms: ITerms;
readonly termSet: ITermSet;
readonly termSets: ITermSets;
createLabel(name: string, lcid: number, isDefault?: boolean): Promise<ILabelData & ILabel>;
deprecate(doDeprecate: boolean): Promise<void>;
get(): Promise<(ITermData & ITerm)>;
addTerm(name: string, lcid: number, isAvailableForTagging?: boolean, id?: string): Promise<ITerm & ITermData>;
getDescription(lcid: number): Promise<string>;
setDescription(description: string, lcid: number): Promise<void>;
setLocalCustomProperty(name: string, value: string): Promise<void>;
update(properties: {
Name: string;
}): Promise<ITermData & ITerm>;
}