d3.line.curve() raises error

Hello there,
May be I use line.curve() wrong

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatable" content="ie=edge">
    <title>Document</title>
  </head>
  <div id="container"></div>
  <body>
    <script src="https://cdn.jsdelivr.net/npm/d3@7"></script>
    <script type="module">
      // Curved line declaration
      const data = [{xpoint: 10, ypoint: 0.2},
		    {xpoint: 4, ypoint: 1},
		    {xpoint: 3, ypoint: 2},
		    {xpoint: 2, ypoint: 3},
		    {xpoint: 1, ypoint: 10}];
// Declare the chart dimensions and margins.
const width = 640;
const height = 400;
const marginTop = 20;
const marginRight = 20;
const marginBottom = 30;
const marginLeft = 40;

// Declare the x (horizontal position) scale.
      const x = d3.scaleLog()
	    .domain([0.2, 60])
    .range([marginLeft, width - marginRight]);

// Declare the y (vertical position) scale.
const y = d3.scaleLog()
    .domain([0.1, 100])
    .range([height - marginBottom, marginTop]);

  // Declare the line generator.
  const line = d3.line()
	.x((d) => x(d.xpoint))
	.y((d) => y(d.ypoint));
      
// Create the SVG container.
const svg = d3.create("svg")
    .attr("width", width)
    .attr("height", height);

// Add the x-axis.
svg.append("g")
    .attr("transform", `translate(0,${height - marginBottom})`)
    .call(d3.axisBottom(x));

// Add the y-axis.
svg.append("g")
    .attr("transform", `translate(${marginLeft},0)`)
    .call(d3.axisLeft(y));

  // Append a path for the line.
  svg.append("path")
    .attr("fill", "none")
      .attr("stroke", "steelblue")
      .attr("stroke-width", 1.5)
      .attr("d", line(data));

// Append the SVG element.
container.append(svg.node());

</script>
</body>
</html>

if I use

// Declare the line generator.
  const line = d3.line.curve()
	.x((d) => x(d.xpoint))
	.y((d) => y(d.ypoint));

raises an error

Uncaught TypeError: d3.line.curve is not a function

but Lines | D3 by Observable looks like conforms my use of d3.line.curve() as a function though.

you’re missing parenthesis after line: d3.line().curve(…)

 // Declare the line generator.
      const line = d3.line().curve()
	.x((d) => x(d.xpoint))
	.y((d) => y(d.ypoint));
Uncaught TypeError: d3.line().curve().x is not a function

.x - oops

Well… you need to specify the curve you want! This is documented in Curves | D3 by Observable

I read Curves | D3 by Observable and come to

   // Declare the line generator.
      const line = d3.line()
	.x((d) => x(d.xpoint))
	.y((d) => y(d.ypoint))
        .curve(d3.curveCatmullRom.alpha(0.5));

That’s what I need! Thank you.