source: node_modules/@swagger-api/apidom-reference/cjs/ReferenceSet.cjs@ 65b6638

main
Last change on this file since 65b6638 was d24f17c, checked in by Aleksandar Panovski <apano77@…>, 15 months ago

Initial commit

  • Property mode set to 100644
File size: 1.5 KB
RevLine 
[d24f17c]1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault").default;
4exports.__esModule = true;
5exports.default = void 0;
6var _stampit = _interopRequireDefault(require("stampit"));
7var _ramda = require("ramda");
8var _ramdaAdjunct = require("ramda-adjunct");
9const ReferenceSet = (0, _stampit.default)({
10 props: {
11 rootRef: null,
12 refs: [],
13 circular: false
14 },
15 init({
16 refs = []
17 } = {}) {
18 this.refs = [];
19 refs.forEach(ref => this.add(ref));
20 },
21 methods: {
22 get size() {
23 // @ts-ignore
24 return this.refs.length;
25 },
26 add(reference) {
27 if (!this.has(reference)) {
28 this.refs.push(reference);
29 this.rootRef = this.rootRef === null ? reference : this.rootRef;
30 reference.refSet = this; // eslint-disable-line no-param-reassign
31 }
32 return this;
33 },
34 merge(anotherRefSet) {
35 for (const reference of anotherRefSet.values()) {
36 this.add(reference);
37 }
38 return this;
39 },
40 has(thing) {
41 const uri = (0, _ramdaAdjunct.isString)(thing) ? thing : thing.uri;
42 return (0, _ramdaAdjunct.isNotUndefined)(this.find((0, _ramda.propEq)(uri, 'uri')));
43 },
44 find(callback) {
45 return this.refs.find(callback);
46 },
47 *values() {
48 yield* this.refs;
49 },
50 clean() {
51 this.refs.forEach(ref => {
52 // eslint-disable-next-line no-param-reassign
53 ref.refSet = null;
54 });
55 this.refs = [];
56 }
57 }
58});
59var _default = exports.default = ReferenceSet;
Note: See TracBrowser for help on using the repository browser.