| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- const app = require('../../app')
- const { pascal, camel, param } = require('change-case')
- const plural = require('plural')
- const list = require('./list')
- const details = require('./details')
- const crudPages = ({
- typeName,
- typePlural,
- camelName,
- camelPlural,
- paramName,
- paramPlural,
- apiPrefix,
- appPrefix,
- columns
- }) => {
- if (!typeName) throw new Error('typeName is required')
- if (typeName !== pascal(typeName)) throw new Error('typeName should be PascalCased')
- if (!typePlural) typePlural = plural(typeName)
- if (typePlural !== pascal(typePlural)) throw new Error('typePlural should be PascalCased')
- if (!camelName) camelName = camel(typeName)
- if (camelName !== camel(camelName)) throw new Error('camelName should be camelCased')
- if (!camelPlural) camelPlural = plural(camelName)
- if (camelPlural !== camel(camelPlural)) throw new Error('camelPlural should be camelCased')
- if (!paramName) paramName = param(typeName)
- if (paramName !== param(paramName)) throw new Error('paramName should be param-cased')
- if (!paramPlural) paramPlural = plural(paramName)
- if (paramPlural !== param(paramPlural)) throw new Error('paramPlural should be param-cased')
- if (!apiPrefix) apiPrefix = `/api/${paramPlural}`
- if (!appPrefix) appPrefix = `/${paramPlural}`
- columns = columns.map(column => Object.assign({}, column, {
- camelName: column.camelName || camel(column.fieldName)
- }))
- const listComponentName = `app${typePlural}List`
- const listComponentTag = `app-${paramName}-list`
- const listPageComponentName = `app${typePlural}Page`
- const listPageComponentTag = `app-${paramPlural}-page`
- const args = { typeName, typePlural, camelName, camelPlural, paramName, paramPlural, apiPrefix, appPrefix, columns }
- list(args)
- details(args)
- }
- // TODO: Create Read Update Delete pages...
- module.exports = crudPages
|