@fluent/dedent
    TypeScript icon, indicating that this package has built-in type declarations

    0.4.0 • Public • Published

    @fluent/dedent

    @fluent/dedent provides a template literal tag to dedent Fluent code. It's part of Project Fluent.

    Fluent Syntax is indentation-sensitive, and @fluent/dedent offers a convenient way to include Fluent snippets in source code keeping the current level of indentation and without compromising the readability.

    Installation

    @fluent/dedent can be used both on the client-side and the server-side. You can install it from the npm registry or use it as a standalone script (as the FluentDedent global).

    npm install @fluent/dedent
    

    How to use

    @fluent/dedent's default export is meant to be used as a template literal tag. By convention, the tag is often called ftl.

    import ftl from "@fluent/dedent";
    
    let messages = ftl`
        hello = Hello, world!
        welcome = Welcome, {$userName}!
        `;

    The position of the closing backtick defines how much indent will be removed from each line of the content. If the indentation is not sufficient in any of the non-blank lines of the content, a RangeError is thrown.

    import ftl from "@fluent/dedent";
    
    let messages = ftl`
        hello = Hello, world!
      welcome = Welcome, {$userName}!
        `;
    
    // → RangeError("Insufficient indentation in line 2.")

    Content must start on a new line and must end on a line of its own. The closing delimiter must appear on a new line. The first and the last line of the input will be removed from the output. If any of them contains non-whitespace characters, a RangeError is thrown.

    import ftl from "@fluent/dedent";
    
    let message1 = "hello = Hello, world!";
    let message2 = ftl`
        hello = Hello, world!
        `;
    
    assert(message1 === message2);

    If you wish to include the leading or trailing line breaks in the output, put extra blank lines in the input.

    import ftl from "@fluent/dedent";
    
    let message = ftl`
    
        hello = Hello, world!
    
        `;
    
    assert(message === "\nhello = Hello, world!\n");

    Install

    npm i @fluent/dedent

    DownloadsWeekly Downloads

    222

    Version

    0.4.0

    License

    Apache-2.0

    Unpacked Size

    9.11 kB

    Total Files

    7

    Last publish

    Collaborators

    • eemeli
    • zbraniecki
    • tatumcreative
    • flod