Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

node-relation

Package Overview
Dependencies
Maintainers
1
Versions
46
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

node-relation - npm Package Compare versions

Comparing version 1.1.0 to 1.2.0

75

dist/NodeRelation.d.ts
import AdvancedArray from './AdvancedArray';
declare type RelationNode = string | number | Symbol;
declare class Relation extends AdvancedArray<RelationNode> {
get nodes(): RelationNode[];
}
declare class RelationGroup extends AdvancedArray<Relation> {
get relations(): Relation[];
get nodes(): RelationNode[];
}
/**
*
* 새로운 RelationGroup 인스턴스를 만들어 반환합니다.
* @param group 초기값입니다. Relation 인스턴스를 매개변수로 넘깁니다.
* @description 새로운 RelationGroup 인스턴스를 만들어 반환합니다.
*/
declare function create(...relations: Relation[]): RelationGroup;
/**
*
* 대상 노드를 포함하고 있지 않는 모든 릴레이션을 묶어 새로운 RelationGroup 인스턴스를 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param nodes 서로 관련성을 가지는 노드입니다.
* @description 서로 관련 있는 노드를 매개변수로 넘겨 릴레이션으로 지정합니다.
* @param nodes 포함되지 않을 노드입니다.
*/
declare function setRelation(group: RelationGroup, ...node: RelationNode[]): RelationGroup;
declare function exclude(group: RelationGroup, ...nodes: RelationNode[]): RelationGroup;
/**
*
* RelationGroup 인스턴스의 릴레이션을 모두 제거하여 초기화합니다.
* @param group RelationGroup 인스턴스입니다.
* @description RelationGroup 인스턴스에 담긴 모든 노드를 배열로 반환합니다.
*/
declare function getNodes(group: RelationGroup): RelationNode[];
declare function clear(group: RelationGroup): RelationGroup;
/**
*
* 대상 노드를 포함하고 있는 릴레이션에서 대상 노드를 제거한 새로운 릴레이션을 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
* @description 대상 노드를 포함하고 있는 릴레이션을 반환합니다. 어떤 릴레이션도 대상 노드를 가지고 있지 않다면 null을 반환합니다.
*/
declare function getRelation(group: RelationGroup, node: RelationNode): Relation | null;
declare function createRelationRelatives(group: RelationGroup, node: RelationNode): Relation;
/**
*
* 서로 관련 있는 노드를 매개변수로 넘겨 릴레이션으로 지정합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
* @description RelationGroup 인스턴스가 대상 노드를 포함하고 있는지 여부를 반환합니다.
* @param nodes 서로 관련성을 가지는 노드입니다.
*/
declare function hasNode(group: RelationGroup, node: RelationNode): boolean;
declare function setRelation(group: RelationGroup, ...node: RelationNode[]): Relation;
/**
*
* @param groups RelationGroup 인스턴스입니다.
* 대상 노드를 포함하고 있는 릴레이션을 반환합니다. 어떤 릴레이션도 대상 노드를 가지고 있지 않다면 null을 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
* @description 릴레이션이 대상 노드를 포함하고 있다면 노드를 삭제하고, 해당 릴레이션을 반환합니다. 어떤 릴레이션도 대상 노드를 가지고 있지 않다면 null을 반환합니다.
*/
declare function deleteNode(groups: RelationGroup, node: RelationNode): Relation | null;
declare function getRelation(group: RelationGroup, node: RelationNode): Relation | null;
/**
*
* @param groups RelationGroup 인스턴스입니다.
* 대상 노드를 모두 포함하고 있는 릴레이션을 반환합니다. 해당되는 릴레이션이 없다면 null을 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param nodes 대상 노드입니다.
*/
declare function getRelationEvery(group: RelationGroup, ...nodes: RelationNode[]): Relation | null;
/**
* RelationGroup 인스턴스에 담긴 모든 노드를 배열로 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @deprecated group.nodes getter를 사용하십시오.
*/
declare function getNodes(group: RelationGroup): RelationNode[];
/**
* RelationGroup 인스턴스가 대상 노드를 포함하고 있는지 여부를 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
* @description 대상 노드를 포함하고 있는 릴레이션을 RelationGroup 인스턴스에서 삭제합니다.
*/
declare function dropRelation(groups: RelationGroup, node: RelationNode): void;
declare function hasNode(group: RelationGroup, node: RelationNode): boolean;
/**
*
* @param groups RelationGroup 인스턴스입니다.
* @description RelationGroup 인스턴스의 릴레이션을 모두 제거하여 초기화합니다.
* 릴레이션이 대상 노드를 포함하고 있다면 노드를 삭제하고, 해당 릴레이션을 반환합니다. 어떤 릴레이션도 대상 노드를 가지고 있지 않다면 null을 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
*/
declare function clear(groups: RelationGroup): void;
declare function deleteNode(group: RelationGroup, node: RelationNode): Relation | null;
/**
*
* @param groups RelationGroup 인스턴스입니다.
* @param nodes 대상 노드입니다.
* @description 대상 노드를 모두 포함하고 있는 릴레이션을 반환합니다. 해당되는 릴레이션이 없다면 null을 반환합니다.
* 대상 노드를 포함하고 있는 릴레이션을 RelationGroup 인스턴스에서 삭제합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
*/
declare function getRelationEvery(groups: RelationGroup, ...nodes: RelationNode[]): Relation | null;
export { create, clear, hasNode, getNodes, deleteNode, setRelation, getRelation, getRelationEvery, dropRelation, };
declare function dropRelation(group: RelationGroup, node: RelationNode): void;
export { create, exclude, clear, hasNode, getNodes, deleteNode, createRelationRelatives, setRelation, getRelation, getRelationEvery, dropRelation, };

@@ -14,13 +14,2 @@ var __extends = (this && this.__extends) || (function () {

})();
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __read = (this && this.__read) || function (o, n) {

@@ -46,2 +35,13 @@ var m = typeof Symbol === "function" && o[Symbol.iterator];

};
var __values = (this && this.__values) || function(o) {
var s = typeof Symbol === "function" && Symbol.iterator, m = s && o[s], i = 0;
if (m) return m.call(o);
if (o && typeof o.length === "number") return {
next: function () {
if (o && i >= o.length) o = void 0;
return { value: o && o[i++], done: !o };
}
};
throw new TypeError(s ? "Object is not iterable." : "Symbol.iterator is not defined.");
};
var __importDefault = (this && this.__importDefault) || function (mod) {

@@ -61,3 +61,3 @@ return (mod && mod.__esModule) ? mod : { "default": mod };

Object.defineProperty(exports, "__esModule", { value: true });
exports.dropRelation = exports.getRelationEvery = exports.getRelation = exports.setRelation = exports.deleteNode = exports.getNodes = exports.hasNode = exports.clear = exports.create = void 0;
exports.dropRelation = exports.getRelationEvery = exports.getRelation = exports.setRelation = exports.createRelationRelatives = exports.deleteNode = exports.getNodes = exports.hasNode = exports.clear = exports.exclude = exports.create = void 0;
var AdvancedArray_1 = __importDefault(require("./AdvancedArray"));

@@ -69,2 +69,9 @@ var Relation = /** @class */ (function (_super) {

}
Object.defineProperty(Relation.prototype, "nodes", {
get: function () {
return __spread(this);
},
enumerable: false,
configurable: true
});
return Relation;

@@ -77,11 +84,39 @@ }(AdvancedArray_1.default));

}
Object.defineProperty(RelationGroup.prototype, "relations", {
get: function () {
return __spread(this);
},
enumerable: false,
configurable: true
});
Object.defineProperty(RelationGroup.prototype, "nodes", {
get: function () {
var e_1, _a;
var nodes = [];
try {
for (var _b = __values(this), _c = _b.next(); !_c.done; _c = _b.next()) {
var relation = _c.value;
nodes.push.apply(nodes, __spread(relation.nodes));
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
}
finally { if (e_1) throw e_1.error; }
}
return nodes;
},
enumerable: false,
configurable: true
});
return RelationGroup;
}(AdvancedArray_1.default));
/**
*
* 새로운 RelationGroup 인스턴스를 만들어 반환합니다.
* @param group 초기값입니다. Relation 인스턴스를 매개변수로 넘깁니다.
* @description 새로운 RelationGroup 인스턴스를 만들어 반환합니다.
*/
function create() {
var e_1, _a;
var e_2, _a;
var relations = [];

@@ -98,3 +133,3 @@ for (var _i = 0; _i < arguments.length; _i++) {

}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {

@@ -104,3 +139,3 @@ try {

}
finally { if (e_1) throw e_1.error; }
finally { if (e_2) throw e_2.error; }
}

@@ -111,9 +146,64 @@ return group;

/**
*
* 대상 노드를 포함하고 있지 않는 모든 릴레이션을 묶어 새로운 RelationGroup 인스턴스를 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param nodes 포함되지 않을 노드입니다.
*/
function exclude(group) {
var nodes = [];
for (var _i = 1; _i < arguments.length; _i++) {
nodes[_i - 1] = arguments[_i];
}
var excludeRelations = group.filter(function (relation) {
var e_3, _a;
try {
for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
var node = nodes_1_1.value;
if (relation.has(node))
return false;
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
}
finally { if (e_3) throw e_3.error; }
}
return true;
});
return create.apply(void 0, __spread(excludeRelations));
}
exports.exclude = exclude;
/**
* RelationGroup 인스턴스의 릴레이션을 모두 제거하여 초기화합니다.
* @param group RelationGroup 인스턴스입니다.
*/
function clear(group) {
group.clear();
return group;
}
exports.clear = clear;
/**
* 대상 노드를 포함하고 있는 릴레이션에서 대상 노드를 제거한 새로운 릴레이션을 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
*/
function createRelationRelatives(group, node) {
var relation = new Relation;
var matchedRelation = getRelation(group, node);
if (matchedRelation) {
var nodes = new (AdvancedArray_1.default.bind.apply(AdvancedArray_1.default, __spread([void 0], matchedRelation.nodes)))();
nodes.delete(node);
relation.push.apply(relation, __spread(nodes));
}
return relation;
}
exports.createRelationRelatives = createRelationRelatives;
/**
* 서로 관련 있는 노드를 매개변수로 넘겨 릴레이션으로 지정합니다.
* @param group RelationGroup 인스턴스입니다.
* @param nodes 서로 관련성을 가지는 노드입니다.
* @description 서로 관련 있는 노드를 매개변수로 넘겨 릴레이션으로 지정합니다.
*/
function setRelation(group) {
var e_2, _a, e_3, _b, e_4, _c;
var e_4, _a, e_5, _b, e_6, _c;
var node = [];

@@ -136,3 +226,3 @@ for (var _i = 1; _i < arguments.length; _i++) {

}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {

@@ -142,3 +232,3 @@ try {

}
finally { if (e_2) throw e_2.error; }
finally { if (e_4) throw e_4.error; }
}

@@ -149,3 +239,3 @@ try {

try {
for (var relation_1 = (e_4 = void 0, __values(relation)), relation_1_1 = relation_1.next(); !relation_1_1.done; relation_1_1 = relation_1.next()) {
for (var relation_1 = (e_6 = void 0, __values(relation)), relation_1_1 = relation_1.next(); !relation_1_1.done; relation_1_1 = relation_1.next()) {
var relationNode = relation_1_1.value;

@@ -155,3 +245,3 @@ newRelation.ensure(relationNode);

}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {

@@ -161,3 +251,3 @@ try {

}
finally { if (e_4) throw e_4.error; }
finally { if (e_6) throw e_6.error; }
}

@@ -167,3 +257,3 @@ group.delete(relation);

}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {

@@ -173,23 +263,23 @@ try {

}
finally { if (e_3) throw e_3.error; }
finally { if (e_5) throw e_5.error; }
}
group.push(newRelation);
return group;
return newRelation;
}
exports.setRelation = setRelation;
/**
*
* 대상 노드를 포함하고 있는 릴레이션을 반환합니다. 어떤 릴레이션도 대상 노드를 가지고 있지 않다면 null을 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @description RelationGroup 인스턴스에 담긴 모든 노드를 배열로 반환합니다.
* @param node 대상 노드입니다.
*/
function getNodes(group) {
var e_5, _a;
var relationNodes = new AdvancedArray_1.default;
function getRelation(group, node) {
var e_7, _a;
try {
for (var group_1 = __values(group), group_1_1 = group_1.next(); !group_1_1.done; group_1_1 = group_1.next()) {
var relation = group_1_1.value;
relationNodes.push.apply(relationNodes, __spread(relation));
if (relation.has(node))
return relation;
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
catch (e_7_1) { e_7 = { error: e_7_1 }; }
finally {

@@ -199,24 +289,53 @@ try {

}
finally { if (e_5) throw e_5.error; }
finally { if (e_7) throw e_7.error; }
}
relationNodes.deduplication();
return __spread(relationNodes);
return null;
}
exports.getNodes = getNodes;
exports.getRelation = getRelation;
/**
*
* 대상 노드를 모두 포함하고 있는 릴레이션을 반환합니다. 해당되는 릴레이션이 없다면 null을 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
* @description 대상 노드를 포함하고 있는 릴레이션을 반환합니다. 어떤 릴레이션도 대상 노드를 가지고 있지 않다면 null을 반환합니다.
* @param nodes 대상 노드입니다.
*/
function getRelation(group, node) {
var e_6, _a;
function getRelationEvery(group) {
var nodes = [];
for (var _i = 1; _i < arguments.length; _i++) {
nodes[_i - 1] = arguments[_i];
}
var matchedRelations = group.filter(function (relation) {
var e_8, _a;
try {
for (var nodes_2 = __values(nodes), nodes_2_1 = nodes_2.next(); !nodes_2_1.done; nodes_2_1 = nodes_2.next()) {
var node = nodes_2_1.value;
if (!relation.has(node))
return false;
}
}
catch (e_8_1) { e_8 = { error: e_8_1 }; }
finally {
try {
if (nodes_2_1 && !nodes_2_1.done && (_a = nodes_2.return)) _a.call(nodes_2);
}
finally { if (e_8) throw e_8.error; }
}
return true;
});
return matchedRelations.pop() || null;
}
exports.getRelationEvery = getRelationEvery;
/**
* RelationGroup 인스턴스에 담긴 모든 노드를 배열로 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @deprecated group.nodes getter를 사용하십시오.
*/
function getNodes(group) {
var e_9, _a;
var relationNodes = new AdvancedArray_1.default;
try {
for (var group_2 = __values(group), group_2_1 = group_2.next(); !group_2_1.done; group_2_1 = group_2.next()) {
var relation = group_2_1.value;
if (relation.has(node))
return relation;
relationNodes.push.apply(relationNodes, __spread(relation));
}
}
catch (e_6_1) { e_6 = { error: e_6_1 }; }
catch (e_9_1) { e_9 = { error: e_9_1 }; }
finally {

@@ -226,12 +345,12 @@ try {

}
finally { if (e_6) throw e_6.error; }
finally { if (e_9) throw e_9.error; }
}
return null;
relationNodes.deduplication();
return __spread(relationNodes);
}
exports.getRelation = getRelation;
exports.getNodes = getNodes;
/**
*
* RelationGroup 인스턴스가 대상 노드를 포함하고 있는지 여부를 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
* @description RelationGroup 인스턴스가 대상 노드를 포함하고 있는지 여부를 반환합니다.
*/

@@ -243,9 +362,8 @@ function hasNode(group, node) {

/**
*
* @param groups RelationGroup 인스턴스입니다.
* 릴레이션이 대상 노드를 포함하고 있다면 노드를 삭제하고, 해당 릴레이션을 반환합니다. 어떤 릴레이션도 대상 노드를 가지고 있지 않다면 null을 반환합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
* @description 릴레이션이 대상 노드를 포함하고 있다면 노드를 삭제하고, 해당 릴레이션을 반환합니다. 어떤 릴레이션도 대상 노드를 가지고 있지 않다면 null을 반환합니다.
*/
function deleteNode(groups, node) {
var t = getRelation(groups, node);
function deleteNode(group, node) {
var t = getRelation(group, node);
if (!t)

@@ -260,13 +378,12 @@ return null;

/**
*
* @param groups RelationGroup 인스턴스입니다.
* 대상 노드를 포함하고 있는 릴레이션을 RelationGroup 인스턴스에서 삭제합니다.
* @param group RelationGroup 인스턴스입니다.
* @param node 대상 노드입니다.
* @description 대상 노드를 포함하고 있는 릴레이션을 RelationGroup 인스턴스에서 삭제합니다.
*/
function dropRelation(groups, node) {
var i = groups.length;
function dropRelation(group, node) {
var i = group.length;
while (i--) {
var relation = groups[i];
var relation = group[i];
if (relation.has(node)) {
groups.delete(relation);
group.delete(relation);
}

@@ -276,43 +393,2 @@ }

exports.dropRelation = dropRelation;
/**
*
* @param groups RelationGroup 인스턴스입니다.
* @description RelationGroup 인스턴스의 릴레이션을 모두 제거하여 초기화합니다.
*/
function clear(groups) {
groups.clear();
}
exports.clear = clear;
/**
*
* @param groups RelationGroup 인스턴스입니다.
* @param nodes 대상 노드입니다.
* @description 대상 노드를 모두 포함하고 있는 릴레이션을 반환합니다. 해당되는 릴레이션이 없다면 null을 반환합니다.
*/
function getRelationEvery(groups) {
var nodes = [];
for (var _i = 1; _i < arguments.length; _i++) {
nodes[_i - 1] = arguments[_i];
}
var matchedRelations = groups.filter(function (relation) {
var e_7, _a;
try {
for (var nodes_1 = __values(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {
var node = nodes_1_1.value;
if (!relation.has(node))
return false;
}
}
catch (e_7_1) { e_7 = { error: e_7_1 }; }
finally {
try {
if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);
}
finally { if (e_7) throw e_7.error; }
}
return true;
});
return matchedRelations.pop() || null;
}
exports.getRelationEvery = getRelationEvery;
});
{
"name": "node-relation",
"version": "1.1.0",
"version": "1.2.0",
"description": "Manage strings that are related to each other.",

@@ -5,0 +5,0 @@ "main": "dist/NodeRelation.js",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc