4.0.0 • Published 2 years ago

commonform-resolve v4.0.0

Weekly downloads
442
License
BlueOak-1.0.0
Repository
github
Last release
2 years ago

commonform-resolve

resolve definitions, uses, references, fields, and blanks

var resolve = require('commonform-resolve')

Passes strings through:

var assert = require('assert')

assert.deepStrictEqual(
  resolve(
    { content: [ 'A' ] },
    {}
  ),
  { content: [ 'A' ] }
)

Passes term uses through:

assert.deepStrictEqual(
  resolve(
    { content: [ { use: 'A' } ] },
    {}
  ),
  { content: [ { use: 'A' } ] }
)

Passes definitions through:

assert.deepStrictEqual(
  resolve(
    { content: [ { definition: 'A' } ] },
    {}
  ),
  { content: [ { definition: 'A' } ] }
)

Provides blank values:

assert.deepStrictEqual(
  resolve(
    { content: [ { blank: 'A' } ] },
    [ { blank: [ 'content', 0 ], value: '1' } ]
  ),
  { content: [ { blank: '1' } ] }
)

assert.deepStrictEqual(
  resolve(
    { content: [ { blank: '' } ] },
    []
  ),
  { content: [ { blank: undefined } ] }
)

Replaces references with the numberings of target forms:

assert.deepStrictEqual(
  resolve(
    {
      content: [
        {
          heading: 'A',
          form: { content: [ 'A' ] }
        },
        { reference: 'A' }
      ]
    },
    {}
  )
  .content[1],
  {
    heading: 'A',
    numbering: [
      {
        series: { number: 1, of: 1 },
        element: { number: 1, of: 1 }
      }
    ]
  }
)

Indicates broken references:

assert.deepStrictEqual(
  resolve(
    { content: [ { reference: 'A' } ] },
    {}
  ),
  { content: [ { heading: 'A', broken: true } ] }
)

Flags ambiguous references with the numberings of all potential target forms:

assert.deepStrictEqual(
  resolve(
    {
      content: [
        {
          heading: 'A',
          form: { content: [ 'A' ] }
        },
        {
          heading: 'A',
          form: { content: [ 'A' ] }
        },
        { reference: 'A' }
      ]
    },
    {}
  )
  .content[2],
  {
    heading: 'A',
    ambiguous: true,
    numberings: [
      [
        {
          series: { number: 1, of: 1 },
          element: { number: 1, of: 2 }
        }
      ],
      [
        {
          series: { number: 1, of: 1 },
          element: { number: 2, of: 2 }
        }
      ]
    ]
  }
)

Preserves conspicuous formatting flags:

assert.deepStrictEqual(
  resolve(
    {
      content: [
        {
          heading: 'First',
          form: {
            content: [ 'test' ],
            conspicuous: 'true'
          }
        }
      ]
    },
    {}
  )
  .content,
  [
    {
      heading: 'First',
      form: {
        content: [ 'test' ],
        conspicuous: 'true'
      },
      numbering: [
        {
          series: { number: 1, of: 1 },
          element: { number: 1, of: 1 }
        }
      ]
    }
  ]
)

Attaches numberings to form objects:

assert.deepStrictEqual(
  resolve(
    { content: [ { form: { content: [ 'test' ] } } ] },
    {}
  )
  .content,
  [
    {
      numbering: [
        {
          series: { number: 1, of: 1 },
          element: { number: 1, of: 1 }
        }
      ],
      form: { content: [ 'test' ] }
    }
  ]
)

Attaches numberings to component objects:

assert.deepStrictEqual(
  resolve(
    {
      content: [
        {
          component: 'https://example.com/component',
          version: '1.0.0',
          substitutions: { terms: {}, headings: {} }
        }
      ]
    },
    {}
  )
  .content,
  [
    {
      component: 'https://example.com/component',
      version: '1.0.0',
      substitutions: { terms: {}, headings: {} },
      numbering: [
        {
          series: { number: 1, of: 1 },
          element: { number: 1, of: 1 }
        }
      ]
    }
  ]
)
4.0.0

2 years ago

3.0.0

3 years ago

2.1.0

5 years ago

2.0.1

6 years ago

2.0.0

6 years ago

1.0.0

9 years ago

0.8.0

10 years ago

0.7.0

10 years ago

0.6.2

10 years ago

0.6.1

10 years ago

0.6.0

10 years ago

0.5.0

10 years ago

0.4.0

10 years ago

0.3.0

10 years ago

0.2.1

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago