schema.json 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. {
  2. "$schema": "http://json-schema.org/draft-07/schema",
  3. "$id": "SchematicsAngularComponent",
  4. "title": "Angular Component Options Schema",
  5. "type": "object",
  6. "description": "Creates a new, generic component definition in the given project.",
  7. "additionalProperties": false,
  8. "properties": {
  9. "path": {
  10. "type": "string",
  11. "format": "path",
  12. "$default": {
  13. "$source": "workingDirectory"
  14. },
  15. "description": "The path at which to create the component file, relative to the current workspace. Default is a folder with the same name as the component in the project root.",
  16. "visible": false
  17. },
  18. "project": {
  19. "type": "string",
  20. "description": "The name of the project.",
  21. "$default": {
  22. "$source": "projectName"
  23. }
  24. },
  25. "name": {
  26. "type": "string",
  27. "description": "The name of the component.",
  28. "$default": {
  29. "$source": "argv",
  30. "index": 0
  31. },
  32. "x-prompt": "What name would you like to use for the component?"
  33. },
  34. "displayBlock": {
  35. "description": "Specifies if the style will contain `:host { display: block; }`.",
  36. "type": "boolean",
  37. "default": false,
  38. "alias": "b"
  39. },
  40. "inlineStyle": {
  41. "description": "Include styles inline in the component.ts file. Only CSS styles can be included inline. By default, an external styles file is created and referenced in the component.ts file.",
  42. "type": "boolean",
  43. "default": false,
  44. "alias": "s",
  45. "x-user-analytics": "ep.ng_inline_style"
  46. },
  47. "inlineTemplate": {
  48. "description": "Include template inline in the component.ts file. By default, an external template file is created and referenced in the component.ts file.",
  49. "type": "boolean",
  50. "default": false,
  51. "alias": "t",
  52. "x-user-analytics": "ep.ng_inline_template"
  53. },
  54. "standalone": {
  55. "description": "Whether the generated component is standalone.",
  56. "type": "boolean",
  57. "default": false,
  58. "x-user-analytics": "ep.ng_standalone"
  59. },
  60. "viewEncapsulation": {
  61. "description": "The view encapsulation strategy to use in the new component.",
  62. "enum": ["Emulated", "None", "ShadowDom"],
  63. "type": "string",
  64. "alias": "v"
  65. },
  66. "changeDetection": {
  67. "description": "The change detection strategy to use in the new component.",
  68. "enum": ["Default", "OnPush"],
  69. "type": "string",
  70. "default": "Default",
  71. "alias": "c"
  72. },
  73. "prefix": {
  74. "type": "string",
  75. "description": "The prefix to apply to the generated component selector.",
  76. "alias": "p",
  77. "oneOf": [
  78. {
  79. "maxLength": 0
  80. },
  81. {
  82. "minLength": 1,
  83. "format": "html-selector"
  84. }
  85. ]
  86. },
  87. "style": {
  88. "description": "The file extension or preprocessor to use for style files, or 'none' to skip generating the style file.",
  89. "type": "string",
  90. "default": "css",
  91. "enum": ["css", "scss", "sass", "less", "none"],
  92. "x-user-analytics": "ep.ng_style"
  93. },
  94. "type": {
  95. "type": "string",
  96. "description": "Adds a developer-defined type to the filename, in the format \"name.type.ts\".",
  97. "default": "Component"
  98. },
  99. "skipTests": {
  100. "type": "boolean",
  101. "description": "Do not create \"spec.ts\" test files for the new component.",
  102. "default": false
  103. },
  104. "flat": {
  105. "type": "boolean",
  106. "description": "Create the new files at the top level of the current project.",
  107. "default": false
  108. },
  109. "skipImport": {
  110. "type": "boolean",
  111. "description": "Do not import this component into the owning NgModule.",
  112. "default": false
  113. },
  114. "selector": {
  115. "type": "string",
  116. "format": "html-selector",
  117. "description": "The HTML selector to use for this component."
  118. },
  119. "skipSelector": {
  120. "type": "boolean",
  121. "default": false,
  122. "description": "Specifies if the component should have a selector or not."
  123. },
  124. "module": {
  125. "type": "string",
  126. "description": "The declaring NgModule.",
  127. "alias": "m"
  128. },
  129. "export": {
  130. "type": "boolean",
  131. "default": false,
  132. "description": "The declaring NgModule exports this component."
  133. }
  134. },
  135. "required": ["name", "project"]
  136. }