@ordergroove/smi-precompile

    1.7.1 • Public • Published

    smi-precompile

    Precompiles a liquid style template into smi function generator. Precompile returns code as a string

    Precompilers for smi-core

    Usage

    resultCode = precompile(source, partials, locales, settings, (defaultLocale = 'en'));

    Example

    const precompile = require('@ordergroove/smi-precompile');
    
    const result = precompile(
      `
      {% set some_value = 'yes' %}
      {% if some_value == ('some_setting' | setting) %} 
        {% include 'some-include' %}
      {% endif %}`,
      {
        'some-include.liquid': `{{ 'my_custom_text' | t }}`
      },
      [
        {
          locale: 'en',
          translations: { my_custom_text: 'Hello world' }
        },
        {
          locale: 'es',
          translations: { my_custom_text: 'Hola mundo' }
        }
      ],
      {
        some_setting: 'yes'
      }
    );

    ** outputs **

    function template(html, repeat, unsafeHTML) {
      function template_en({}, _F) {
        var some_value;
        return html`
          ${(() => {
            some_value = 'yes';
          })()} ${some_value == 'yes'
            ? html`
                Hello world
              `
            : ''}
        `;
      }
    
      function template_es({}, _F) {
        var some_value;
        return html`
          ${(() => {
            some_value = 'yes';
          })()} ${some_value == 'yes'
            ? html`
                Hola mundo
              `
            : ''}
        `;
      }
    
      return {
        en: template_en,
        es: template_es
      };
    }

    Keywords

    none

    Install

    npm i @ordergroove/smi-precompile

    DownloadsWeekly Downloads

    162

    Version

    1.7.1

    License

    ISC

    Unpacked Size

    4.84 MB

    Total Files

    16

    Last publish

    Collaborators

    • ogdevs
    • og-jenkins
    • eugenio63
    • evasilchenko