All files / src/repository/utility transform-node.ts

100% Statements 11/11
100% Branches 4/4
100% Functions 2/2
100% Lines 11/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38    19x                       237x   237x 1967x   1967x         948x 948x     1019x   1019x     237x     19x  
import Node from 'type/node';
import FieldValue from 'type/field-value';
import transformValue from 'repository/utility/transform-value';
import PrimitiveTransformer from 'repository/interface/primitive-transformer';
 
interface WritableNode {
	[key: string]: FieldValue;
}
 
function transformNode(
	node: Node,
	hostname: string,
	transformer: PrimitiveTransformer
): Node {
	const result: WritableNode = {};
 
	Object.keys(node).forEach((key) => {
		const value = node[key];
 
		switch (key) {
			case 'id':
			case 'type_id':
			case 'created_at':
			case 'updated_at':
				result[key] = value;
				return;
		}
 
		const transformed_value = transformValue(value, hostname, transformer);
 
		result[key] = transformed_value;
	});
 
	return result as Node;
}
 
export default transformNode;