{"version":3,"file":"get-attributes-prompts.mjs","sources":["../../../src/plops/prompts/get-attributes-prompts.ts"],"sourcesContent":["import validateAttributeInput from '../utils/validate-attribute-input';\n\ninterface AttributeAnswer {\n  attributeName: string;\n  attributeType: (typeof DEFAULT_TYPES)[number];\n  enum?: string;\n  multiple?: boolean;\n}\n\nconst DEFAULT_TYPES = [\n  // advanced types\n  'media',\n\n  // scalar types\n  'string',\n  'text',\n  'richtext',\n  'json',\n  'enumeration',\n  'password',\n  'email',\n  'integer',\n  'biginteger',\n  'float',\n  'decimal',\n  'date',\n  'time',\n  'datetime',\n  'timestamp',\n  'boolean',\n] as const;\n\nconst getAttributesPrompts = async (inquirer: any) => {\n  const { addAttributes } = await inquirer.prompt([\n    {\n      type: 'confirm',\n      name: 'addAttributes',\n      message: 'Do you want to add attributes?',\n    },\n  ]);\n\n  const attributes: Array<AttributeAnswer> = [];\n\n  /**\n   * @param {import('inquirer').Inquirer} inquirer\n   * @returns {Promise<void>}\n   */\n  const createNewAttributes = async (inquirer: any) => {\n    const answers = await inquirer.prompt([\n      {\n        type: 'input',\n        name: 'attributeName',\n        message: 'Name of attribute',\n        validate: (input: string) => validateAttributeInput(input),\n      },\n      {\n        type: 'list',\n        name: 'attributeType',\n        message: 'What type of attribute',\n        pageSize: DEFAULT_TYPES.length,\n        choices: DEFAULT_TYPES.map((type) => {\n          return { name: type, value: type };\n        }),\n      },\n      {\n        when: (answers: AttributeAnswer) => answers.attributeType === 'enumeration',\n        type: 'input',\n        name: 'enum',\n        message: 'Add values separated by a comma',\n      },\n      {\n        when: (answers: AttributeAnswer) => answers.attributeType === 'media',\n        type: 'list',\n        name: 'multiple',\n        message: 'Choose media type',\n        choices: [\n          { name: 'Multiple', value: true },\n          { name: 'Single', value: false },\n        ],\n      },\n      {\n        type: 'confirm',\n        name: 'addAttributes',\n        message: 'Do you want to add another attribute?',\n      },\n    ]);\n\n    attributes.push(answers);\n\n    if (!answers.addAttributes) {\n      return;\n    }\n\n    await createNewAttributes(inquirer);\n  };\n\n  if (addAttributes) {\n    await createNewAttributes(inquirer);\n  } else {\n    console.warn(\n      `You won't be able to manage entries from the admin, you can still add attributes later from the content type builder.`\n    );\n  }\n\n  return attributes;\n};\n\nexport default getAttributesPrompts;\n"],"names":["DEFAULT_TYPES","getAttributesPrompts","inquirer","addAttributes","prompt","type","name","message","attributes","createNewAttributes","answers","validate","input","validateAttributeInput","pageSize","length","choices","map","value","when","attributeType","push","console","warn"],"mappings":";;AASA,MAAMA,aAAAA,GAAgB;;AAEpB,IAAA,OAAA;;AAGA,IAAA,QAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,MAAA;AACA,IAAA,aAAA;AACA,IAAA,UAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,YAAA;AACA,IAAA,OAAA;AACA,IAAA,SAAA;AACA,IAAA,MAAA;AACA,IAAA,MAAA;AACA,IAAA,UAAA;AACA,IAAA,WAAA;AACA,IAAA;AACD,CAAA;AAED,MAAMC,uBAAuB,OAAOC,QAAAA,GAAAA;AAClC,IAAA,MAAM,EAAEC,aAAa,EAAE,GAAG,MAAMD,QAAAA,CAASE,MAAM,CAAC;AAC9C,QAAA;YACEC,IAAAA,EAAM,SAAA;YACNC,IAAAA,EAAM,eAAA;YACNC,OAAAA,EAAS;AACX;AACD,KAAA,CAAA;AAED,IAAA,MAAMC,aAAqC,EAAE;AAE7C;;;MAIA,MAAMC,sBAAsB,OAAOP,QAAAA,GAAAA;AACjC,QAAA,MAAMQ,OAAAA,GAAU,MAAMR,QAAAA,CAASE,MAAM,CAAC;AACpC,YAAA;gBACEC,IAAAA,EAAM,OAAA;gBACNC,IAAAA,EAAM,eAAA;gBACNC,OAAAA,EAAS,mBAAA;gBACTI,QAAAA,EAAU,CAACC,QAAkBC,sBAAAA,CAAuBD,KAAAA;AACtD,aAAA;AACA,YAAA;gBACEP,IAAAA,EAAM,MAAA;gBACNC,IAAAA,EAAM,eAAA;gBACNC,OAAAA,EAAS,wBAAA;AACTO,gBAAAA,QAAAA,EAAUd,cAAce,MAAM;gBAC9BC,OAAAA,EAAShB,aAAAA,CAAciB,GAAG,CAAC,CAACZ,IAAAA,GAAAA;oBAC1B,OAAO;wBAAEC,IAAAA,EAAMD,IAAAA;wBAAMa,KAAAA,EAAOb;AAAK,qBAAA;AACnC,gBAAA,CAAA;AACF,aAAA;AACA,YAAA;AACEc,gBAAAA,IAAAA,EAAM,CAACT,OAAAA,GAA6BA,OAAAA,CAAQU,aAAa,KAAK,aAAA;gBAC9Df,IAAAA,EAAM,OAAA;gBACNC,IAAAA,EAAM,MAAA;gBACNC,OAAAA,EAAS;AACX,aAAA;AACA,YAAA;AACEY,gBAAAA,IAAAA,EAAM,CAACT,OAAAA,GAA6BA,OAAAA,CAAQU,aAAa,KAAK,OAAA;gBAC9Df,IAAAA,EAAM,MAAA;gBACNC,IAAAA,EAAM,UAAA;gBACNC,OAAAA,EAAS,mBAAA;gBACTS,OAAAA,EAAS;AACP,oBAAA;wBAAEV,IAAAA,EAAM,UAAA;wBAAYY,KAAAA,EAAO;AAAK,qBAAA;AAChC,oBAAA;wBAAEZ,IAAAA,EAAM,QAAA;wBAAUY,KAAAA,EAAO;AAAM;AAChC;AACH,aAAA;AACA,YAAA;gBACEb,IAAAA,EAAM,SAAA;gBACNC,IAAAA,EAAM,eAAA;gBACNC,OAAAA,EAAS;AACX;AACD,SAAA,CAAA;AAEDC,QAAAA,UAAAA,CAAWa,IAAI,CAACX,OAAAA,CAAAA;QAEhB,IAAI,CAACA,OAAAA,CAAQP,aAAa,EAAE;AAC1B,YAAA;AACF,QAAA;AAEA,QAAA,MAAMM,mBAAAA,CAAoBP,QAAAA,CAAAA;AAC5B,IAAA,CAAA;AAEA,IAAA,IAAIC,aAAAA,EAAe;AACjB,QAAA,MAAMM,mBAAAA,CAAoBP,QAAAA,CAAAA;IAC5B,CAAA,MAAO;AACLoB,QAAAA,OAAAA,CAAQC,IAAI,CACV,CAAC,qHAAqH,CAAC,CAAA;AAE3H,IAAA;IAEA,OAAOf,UAAAA;AACT;;;;"}