Создать подписку с аргументами в AWS AppSync с помощью GraphQL Transform

Это регулярное выражение делает это. Здесь выделено 10 слотов, но вы можете добавить столько, сколько хотите (сто?).

Это не значит, что вам нужно сопоставить 10 уникальных чисел в наборе, вы можете сопоставить что-либо меньшее или равное 10 (пример {5}) или даже диапазон, например {3,7}

Слоты будут заполняться последовательно, начиная с 1. Итак, вам просто нужно сидеть в цикле от 1 до N, видя, если он определен.

Если вы ищете скорость, это демона, которого вы хотите!

/\{(?>(?>(?(1)(?!))((?&GetNum))|(?(2)(?!))((?&GetNum))|(?(3)(?!))((?&GetNum))|(?(4)(?!))((?&GetNum))|(?(5)(?!))((?&GetNum))|(?(6)(?!))((?&GetNum))|(?(7)(?!))((?&GetNum))|(?(8)(?!))((?&GetNum))|(?(9)(?!))((?&GetNum))|(?(10)(?!))((?&GetNum)))(?:,(?!\})|(?=\}))){3,7}\}(?(DEFINE)(?(?!(?:\g{1}|\g{2}|\g{3}|\g{4}|\g{5}|\g{6}|\g{7}|\g{8}|\g{9}|\g{10})\b)\d+))/

https://regex101.com/ r / pPwPTe / 1

Читаемое регулярное выражение

 # Unique numbers in set, 10 slots
 \{
 (?>                    # Atomic, no backtracking allowed
      (?>               # ditto
            (?(1) (?!) )  ( (?&GetNum) )        # (1),  Slot 1
          | (?(2) (?!) )  ( (?&GetNum) )        # (2),  Slot 2
          | (?(3) (?!) )  ( (?&GetNum) )        # (3),  Slot 3
          | (?(4) (?!) )  ( (?&GetNum) )        # (4),  Slot 4
          | (?(5) (?!) )  ( (?&GetNum) )        # (5),  Slot 5
          | (?(6) (?!) )  ( (?&GetNum) )        # (6),  Slot 6
          | (?(7) (?!) )  ( (?&GetNum) )        # (7),  Slot 7
          | (?(8) (?!) )  ( (?&GetNum) )        # (8),  Slot 8
          | (?(9) (?!) )  ( (?&GetNum) )        # (9),  Slot 9
          | (?(10) (?!) ) ( (?&GetNum) )        # (10), Slot 10
      )
      (?: , (?! \} ) | (?= \} ) )
 ){3,7}                   # Set range, example: 3 to 7 unique numbers in set
 \}

 (?(DEFINE)
      (?       # (4) Get a new number, must not be seen before
           (?! (?: \g{1}|\g{2}|\g{3}|\g{4}|\g{5}|\g{6}|\g{7}|\g{8}|\g{9}|\g{10} ) \b )       
           \d+
      )
 )

0
задан odieatla 19 January 2019 в 08:55
поделиться

1 ответ

Как правильно описывает @Tinou, вы можете переименовывать и отключать поля подписки, сгенерированные с помощью @model, используя аргумент subscriptions, но вы также можете создавать собственные подписки, добавляя тип Subscription в свою схему.

type Subscription {
    customField(arg: String): String @aws_subscribe(mutations:["customPublish"])
}

При таком подходе вы можете добавлять любые поля и аргументы, которые вам нужны.

0
ответ дан mparis 19 January 2019 в 08:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: