UNPKG

@anglr/rest

Version:

Angular module representing rest services

60 lines 2.01 kB
/** * Iterator for params data */ export class ParamsDataIterator { //######################### public properties ######################### /** * Iterator for params data */ [Symbol.iterator]() { let x = 0; const args = this.args; const paramData = this.paramData ?? []; const transforms = this.transforms; const restClient = this.restClient; return { next() { //skip optional parameters while (x < paramData.length && args[paramData[x].parameterIndex] === undefined) { x++; } if (x >= paramData.length) { return { done: true, value: undefined }; } const param = paramData[x]; const value = args[param.parameterIndex]; let transformFn = transforms ? transforms[param.parameterIndex] : null; if (transformFn) { transformFn = transformFn.bind(restClient); } if (x < paramData.length) { x++; return { value: { index: param.parameterIndex, key: param.key, value, transformFn, }, done: false }; } return { value: undefined, done: true }; } }; } //######################### constructor ######################### constructor(paramData, transforms, args, restClient) { this.paramData = paramData; this.transforms = transforms; this.args = args; this.restClient = restClient; } } //# sourceMappingURL=paramsData.iterator.js.map