static register(Constructor, request, name, serializer) {
		const key = `${request}/${name}`;

		if (serializers.has(Constructor)) {
			throw new Error(
				`ObjectMiddleware.register: serializer for ${Constructor.name} is already registered`
			);
		}

		if (serializerInversed.has(key)) {
			throw new Error(
				`ObjectMiddleware.register: serializer for ${key} is already registered`
			);
		}

		serializers.set(Constructor, {
			request,
			name,
			serializer
		});

		serializerInversed.set(key, serializer);
	}
@param {Constructor} Constructor the constructor
@param {string} request the request which will be required when deserializing
@param {string | null} name the name to make multiple serializer unique when sharing a request
@param {ObjectSerializer} serializer the serializer
@returns {void}