apostrophe-anchor-field-type

Adds an `anchor` field type to apostrophe-schemas that populates a select with ID and name attributes from a target URL

Usage no npm install needed!

<script type="module">
  import apostropheAnchorFieldType from 'https://cdn.skypack.dev/apostrophe-anchor-field-type';
</script>

README

apostrophe-anchor-field-type

Improves apostrophe-schemas to add an anchor field type that displays all id and name attributes from the target remote URL.

Configuration

An anchor field depends on other schema fields to tell it what URLs it should look up to find ids and names. You must provide a remoteAnchorsFields property to tell it what fields to connect to.

Shorthand

  // ... other schema fields
  {
    type: 'anchor',
    name: 'anchor',
    label: 'Anchor ID',
    remoteAnchorsFields: ['_page', 'url'],
  }

remoteAnchorsFields is an array of field names in the schema.

Shorthand makes the assumption that _page is a join (because of the leading _ in its name) and, conversely, that url is a string field. These assumptions also mean that:

  • Joins are internal pages, using a joinByOne field type, and should be treated as such in the context of the current site.
  • String could be anything and must be treated as external URLs. They must be fully absolute.

Explicit singular

  // ... other schema fields
  {
    type: 'anchor',
    name: 'anchor',
    label: 'Anchor ID',
    remoteAnchorsFields: {
      fieldName: '_page',
      urlType: 'relative',
      fieldType: 'join'
    },
  }

Spells out what is assumed in shorthand syntax.

  • urlType tells module how to request the remote page.
  • fieldType tells module what type of apostrophe field to connect to.

Explicit array

  // ... other schema fields
  {
    type: 'anchor',
    name: 'anchor',
    label: 'Anchor ID',
    remoteAnchorsFields: [
      {
        fieldName: '_page',
        urlType: 'relative',
        fieldType: 'join'
      },
      {
        fieldName: 'url',
        urlType: 'absolute',
        fieldType: 'string'
      },
    ],
  }

Changelog

1.0.3 (2021-04-07)

  • Updates axios version due to security patch.