ts-budgie
Version:
Converts TypeScript code to Budgie.
37 lines • 1.15 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
/**
* Lazily creates visitors for node types.
*/
var VisitorsBag = /** @class */ (function () {
/**
* Initializes a new instance of the VisitorsBag class.
*
* @param dependencies Dependencies to initialize node visitors.
*/
function VisitorsBag(dependencies) {
/**
* Created visitor instances.
*/
this.instances = new Map();
this.dependencies = dependencies;
}
/**
* Creates a visitor using its creator.
*
* @param creator Creates the visitor.
* @returns A created visitor.
*/
VisitorsBag.prototype.createVisitor = function (creator) {
var previousInstance = this.instances.get(creator);
if (previousInstance !== undefined) {
return previousInstance;
}
var visitor = new creator(this.dependencies);
this.instances.set(creator, visitor);
return visitor;
};
return VisitorsBag;
}());
exports.VisitorsBag = VisitorsBag;
//# sourceMappingURL=visitorsBag.js.map