Synopsis
Adds a new Model class to a LoopBack application.
lb4 model [options] [<name>]
Options
--base
: (Optional) a valid model already created in src/models or any of
the core based class models Entity or Model. Your new model will extend this
selected base model class.
Standard options
-h, --help
- Print the generator’s options and usage.
--skip-cache
- Do not remember prompt answers. Default is false.
--skip-install
- Do not automatically install dependencies. Default is false.
-c, --config
- JSON file name or value to configure options
--format
- Format generated code using
npm run lint:fix
For example,
lb4 app --config config.json
lb4 app --config '{"name":"my-app"}'
cat config.json | lb4 app --config stdin
lb4 app --config stdin < config.json
lb4 app --config stdin << EOF
> {"name":"my-app"}
> EOF
-y, --yes
- Skip all confirmation prompts with default or provided value
Arguments
<name>
- Required name of the model to create as an argument to the command.
If provided, the tool will use that as the default when it prompts for the name.
Interactive Prompts
The tool will prompt you for:
-
Name of the model. (modelName) If the name had been supplied from the command line, the prompt is skipped and the datasource is built with the name from the command-line argument.
-
Model base class. (modelBaseClass) If the command line option –base had been supplied with a valid model class name, the prompt is skipped. It will present you with a list of available models from
src/models
including the Entity and Model at the top of the list.- An Entity is a persisted model with an identity (ID).
- A Model is a business domain object.
- For more information, see here.
-
Allow additional properties. (allowAdditionalProperties) Defaults to false. To allow arbitrary properties in addition to well-defined properties, disable strict mode.
The tool will next recursively prompt you for the model’s properties until a blank one is entered. Properties will be prompted for as follows:
- Name of the property. To add a property, enter a name here. To end the property prompt loop, leave this blank and press enter.
- Property type. Select the type for the property from the following
options:
string
,number
,boolean
,object
,array
,date
,buffer
,geopoint
,any
. - Is ID Field. Defaults to no. If the property is the ID for the Model,
enter Y or yes. This will only be prompted until a property is marked
as the
id
for the Model. - Required. Defaults to no. If the property is required, enter Y or yes.
- Generated. Defaults to Yes. If the property is not generated by database, enter N or no.
- Default value. Set a default value for the property if one isn’t supplied. Leave blank otherwise.
Output
Once all the prompts have been answered, the CLI will do the following:
- Create a Model class as follows:
/src/models/${modelName}.model.ts
- Update
/src/models/index.ts
to export the newly created Model class.