@pega/custom-dx-components 0.0.1 → 0.23.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/extensions.json +1 -1
- package/README.md +6 -189
- package/package.json +34 -32
- package/src/auth.js +608 -0
- package/src/cli.js +42 -0
- package/src/constants.js +122 -8
- package/src/tasks/authenticate/helper.js +91 -8
- package/src/tasks/authenticate/index.js +169 -49
- package/src/tasks/build/helper.js +122 -0
- package/src/tasks/build/index.js +54 -0
- package/src/tasks/build-all/helper.js +70 -0
- package/src/tasks/build-all/index.js +79 -0
- package/src/tasks/{publish/bundle → bundle}/builder/index.js +49 -5
- package/src/tasks/{publish/bundle → bundle}/builder/webpack.config.js +5 -3
- package/src/tasks/{publish/bundle → bundle}/index.js +2 -2
- package/src/tasks/create/index.js +87 -64
- package/src/tasks/create/templates/Constellation/Field/Boolean/Boolean.js.mustache +38 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/boolean-format.js.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/config.json.mustache +145 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/demo.stories.jsx.mustache +61 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/index.jsx.mustache +170 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Boolean/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Date/DateFormatter.js.mustache +61 -0
- package/src/tasks/create/templates/Constellation/Field/Date/FormattedText.jsx.mustache +41 -0
- package/src/tasks/create/templates/Constellation/Field/Date/config.json.mustache +195 -0
- package/src/tasks/create/templates/Constellation/Field/Date/date.js.mustache +439 -0
- package/src/tasks/create/templates/Constellation/Field/Date/demo.stories.jsx.mustache +73 -0
- package/src/tasks/create/templates/Constellation/Field/Date/index.jsx.mustache +256 -0
- package/src/tasks/create/templates/Constellation/Field/Date/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/Date/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Date/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/config.json.mustache +256 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-time.js.mustache +92 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date-utils.js.mustache +287 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/date.js.mustache +328 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/demo.stories.jsx.mustache +73 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/index.jsx.mustache +254 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/DateTime/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/config.json.mustache +278 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/index.jsx.mustache +273 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/config.json.mustache +291 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/demo.stories.jsx.mustache +53 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/index.jsx.mustache +299 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Currency/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/config.json.mustache +93 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/index.jsx.mustache +281 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Decimal-Percentage/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/config.json.mustache +347 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/demo.stories.jsx.mustache +49 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/index.jsx.mustache +336 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Integer/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/config.json.mustache +114 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/demo.stories.jsx.mustache +78 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/index.jsx.mustache +351 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/mock.stories.js.mustache +67 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Picklist/suggestions-handler.js +10 -0
- package/src/tasks/create/{template → templates/Constellation/Field/Text}/config.json.mustache +14 -5
- package/src/tasks/create/templates/Constellation/Field/Text/demo.stories.jsx.mustache +51 -0
- package/src/tasks/create/{template → templates/Constellation/Field/Text}/index.jsx.mustache +5 -0
- package/src/tasks/create/templates/Constellation/Field/Text/mock.stories.js.mustache +13 -0
- package/src/tasks/create/templates/Constellation/Field/Text/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/config.json.mustache +111 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/index.jsx.mustache +231 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/mock.stories.js.mustache +22 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Email/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/StatusWork.jsx +26 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/config.json.mustache +111 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/index.jsx.mustache +239 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/mock.stories.js.mustache +21 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Input/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/config.json.mustache +111 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/demo.stories.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/index.jsx.mustache +231 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/mock.stories.js.mustache +20 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Paragraph/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/config.json.mustache +123 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/demo.stories.jsx.mustache +46 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/index.jsx.mustache +267 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/mock.stories.js.mustache +37 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-Phone/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/config.json.mustache +237 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/demo.stories.jsx.mustache +46 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/event-utils.js.mustache +18 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/index.jsx.mustache +232 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/mock.stories.js.mustache +22 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/Text-URL/text-url.jsx.mustache +173 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/config.json.mustache +185 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/demo.stories.jsx.mustache +57 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/index.jsx.mustache +213 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/mock.stories.js.mustache +20 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/suggestions-handler.js +10 -0
- package/src/tasks/create/templates/Constellation/Field/TimeOfDay/time-of-day.js.mustache +287 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/OneColumnDetails.svg +22 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/StatusWork.jsx.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/config.json.mustache +35 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/demo.stories.jsx.mustache +132 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/index.jsx.mustache +86 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/mock.stories.js.mustache +189 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS/utils.js.mustache +152 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/StatusWork.jsx.mustache +26 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/TwoColumnDetails.svg +28 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/config.json.mustache +42 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/demo.stories.jsx.mustache +136 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/index.jsx.mustache +86 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/mock.stories.js.mustache +230 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/DETAILS-region/utils.js.mustache +155 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/DefaultForm.svg +29 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/config.json.mustache +45 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/demo.stories.jsx.mustache +169 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/index.jsx.mustache +45 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/mock.stories.js.mustache +137 -0
- package/src/tasks/create/templates/Constellation/Template/FORM/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/TwoColumn.svg +38 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/config.json.mustache +27 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/demo.stories.jsx.mustache +178 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/index.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/mock.stories.js.mustache +143 -0
- package/src/tasks/create/templates/Constellation/Template/FORM-region/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/GetNextWork.jsx.mustache +35 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/config.json.mustache +32 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/demo.stories.jsx.mustache +102 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/index.jsx.mustache +70 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/localizations.json.mustache +4 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/mock.stories.js.mustache +94 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Template/PAGE/utils.js.mustache +229 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/config.json.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/demo.stories.jsx.mustache +78 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/index.jsx.mustache +76 -0
- package/src/tasks/create/templates/Constellation/Widget/CASE/mock.stories.js.mustache +390 -0
- package/src/tasks/create/{template → templates/Constellation/Widget/CASE}/styles.js.mustache +1 -1
- package/src/tasks/create/templates/Constellation/Widget/PAGE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/config.json.mustache +59 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/demo.stories.jsx.mustache +30 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/index.jsx.mustache +48 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/mock.stories.js.mustache +23 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE/styles.js.mustache +7 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Avatar.jsx.mustache +75 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/OneColumnPage.svg +36 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/Operator.jsx.mustache +240 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/config.json.mustache +66 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/demo.stories.jsx.mustache +68 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/index.jsx.mustache +110 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/mock.stories.js.mustache +51 -0
- package/src/tasks/create/templates/Constellation/Widget/PAGE-CASE/styles.js.mustache +7 -0
- package/src/tasks/create-all/index.js +398 -0
- package/src/tasks/delete/helper.js +6 -4
- package/src/tasks/delete/index.js +4 -0
- package/src/tasks/delete-all/helper.js +153 -0
- package/src/tasks/delete-all/index.js +49 -0
- package/src/tasks/generate-ai/aiPrompt.txt.mustache +121 -0
- package/src/tasks/generate-ai/helper.js +184 -0
- package/src/tasks/generate-ai/index.js +33 -0
- package/src/tasks/index.js +7 -0
- package/src/tasks/init/index.js +9 -3
- package/src/tasks/init/template/.eslintignore +8 -0
- package/src/tasks/init/template/.eslintrc.json +186 -5
- package/src/tasks/init/template/.vscode/extensions.json +1 -1
- package/src/tasks/init/template/README.md +80 -61
- package/src/tasks/init/template/keys/DX-ComponentDev.zip +0 -0
- package/src/tasks/init/template/keys/dxcb.crt +32 -0
- package/src/tasks/init/template/keys/dxcb.key +51 -0
- package/src/tasks/init/template/package.json.mustache +44 -21
- package/src/tasks/init/template/tasks.config.json +19 -5
- package/src/tasks/init/template/templateNPMRC.txt +8 -0
- package/src/tasks/linter/index.js +46 -0
- package/src/tasks/list/helper.js +19 -6
- package/src/tasks/list/index.js +4 -0
- package/src/tasks/publish/helper.js +13 -4
- package/src/tasks/publish/index.js +14 -1
- package/src/tasks/publish-all/helper.js +154 -0
- package/src/tasks/publish-all/index.js +95 -0
- package/src/tasks/rename/index.js +314 -0
- package/src/tasks/validator/index.js +291 -18
- package/src/util.js +247 -6
- package/src/tasks/create/template/demo.stories.jsx.mustache +0 -44
- package/src/tasks/init/template/src/components/MBTAList/MBTAList.stories.tsx +0 -10
- package/src/tasks/init/template/src/components/MBTAList/MBTAList.tsx +0 -122
- package/src/tasks/init/template/src/components/MBTAList/icons/accessible.icon.tsx +0 -14
- package/src/tasks/init/template/src/components/MBTAList/icons/bus.icon.tsx +0 -13
- package/src/tasks/init/template/src/components/MBTAList/icons/mbta.icon.tsx +0 -10
- package/src/tasks/init/template/src/components/MBTAList/icons/subway.icon.tsx +0 -14
- package/src/tasks/init/template/src/components/MBTAList/index.ts +0 -2
- /package/src/tasks/{publish/bundle → bundle}/builder/modules.js +0 -0
- /package/src/tasks/{publish/bundle → bundle}/builder/paths.js +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
Your task is to generate a custom DX component based on the Pega Constellation architecture. A custom DX component is a React functional component that uses hooks. Create the first iteration of this component using the code template below, delimited by the second set of triple backticks.
|
|
2
|
+
|
|
3
|
+
Replace MyOrg, MyLib and MyComponent with the text specified in InputProperties called organization, library and name respectively that is provided in the in the json properties array delimited by the fourth set of triple backticks. Be aware that MyComponent should be derived from the last part of the componentKey text that is delimited by a '_'. Based on the example component definition delimited by the third set of three backticks, replace the component props and PropTypes with the properties defined in the properties json array delimited by the fourth set of backticks.
|
|
4
|
+
|
|
5
|
+
DesignSystemComponents is an array of jsx React components. Replace the DesignSystemComponents import with the comma delimited list of imported components from '@pega/cosmos-react-core' with the text specified in DesignSystemComponents, delimited by the first set of triple backticks. Also add in the jsx components in the render function.
|
|
6
|
+
|
|
7
|
+
{{COMPONENT_ADDITIONAL}}
|
|
8
|
+
|
|
9
|
+
DesignSystemComponents:
|
|
10
|
+
```{{COMPONENT_DSC}}```
|
|
11
|
+
|
|
12
|
+
Template:
|
|
13
|
+
```
|
|
14
|
+
import PropTypes from 'prop-types';
|
|
15
|
+
import { DesignSystemComponents } from '@pega/cosmos-react-core';
|
|
16
|
+
import StyledMyOrgMyLibMyComponentWrapper from './styles';
|
|
17
|
+
|
|
18
|
+
export default function MyOrgMyLibMyComponent(props) {
|
|
19
|
+
const { getPConnect, visibility, disabled, required, aNumber, aString, aBoolean } = props;
|
|
20
|
+
|
|
21
|
+
const pConn = getPConnect();
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<StyledMyOrgMyLibMyPageWidgetWrapper>
|
|
25
|
+
<DesignSystemComponent
|
|
26
|
+
input1 = {aNumber}
|
|
27
|
+
input2 = {aString}
|
|
28
|
+
input3 = {aBoolean}
|
|
29
|
+
/>
|
|
30
|
+
</StyledMyOrgMyLibMyPageWidgetWrapper>
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
MyOrgMyLibMyComponent.defaultProps = {
|
|
35
|
+
aString: '',
|
|
36
|
+
aNumber: 0,
|
|
37
|
+
aBoolean: false,
|
|
38
|
+
visibility: true,
|
|
39
|
+
disabled: false,
|
|
40
|
+
required: false
|
|
41
|
+
}
|
|
42
|
+
MyOrgMyLibMyComponent.propTypes = {
|
|
43
|
+
aString: PropTypes.string,
|
|
44
|
+
aNumber: PropTypes.number,
|
|
45
|
+
aBoolean: PropTypes.bool,
|
|
46
|
+
visibility: PropTypes.string.bool,
|
|
47
|
+
disabled: PropTypes.string.bool,
|
|
48
|
+
required: PropTypes.string.bool,
|
|
49
|
+
getPConnect: PropTypes.func.isRequired
|
|
50
|
+
}
|
|
51
|
+
```
|
|
52
|
+
ExampleComponentDefinition:
|
|
53
|
+
```
|
|
54
|
+
{
|
|
55
|
+
"name": "MyOrg_MyLib_MyComponent",
|
|
56
|
+
"label": "My Component",
|
|
57
|
+
"description": "My Component",
|
|
58
|
+
"organization": "MyOrg",
|
|
59
|
+
"version": "01.01.01",
|
|
60
|
+
"library": "MyLib",
|
|
61
|
+
"allowedApplications": [],
|
|
62
|
+
"componentKey": "MyOrg_MyLib_MyComponent",
|
|
63
|
+
"type": "",
|
|
64
|
+
"subtype": "",
|
|
65
|
+
"properties": [
|
|
66
|
+
{
|
|
67
|
+
"name": "aString",
|
|
68
|
+
"label": "aString value",
|
|
69
|
+
"format": "TEXT"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"name": "aBoolean",
|
|
73
|
+
"label": "aBoolean value",
|
|
74
|
+
"format": "BOOLEAN"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"name": "aNumber",
|
|
78
|
+
"label": "aNumber value",
|
|
79
|
+
"format": "NUMBER",
|
|
80
|
+
"defaultValue": "0"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"name": "visibility",
|
|
84
|
+
"label": "Visible",
|
|
85
|
+
"format": "VISIBILITY"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "disabled",
|
|
89
|
+
"label": "Disabled",
|
|
90
|
+
"format": "DISABLED",
|
|
91
|
+
"visibility": "(!$this.readOnly = true)"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "required",
|
|
95
|
+
"label": "Required",
|
|
96
|
+
"format": "REQUIRED",
|
|
97
|
+
"visibility": "(!$this.readOnly = true)"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"label": "Advanced",
|
|
101
|
+
"format": "GROUP",
|
|
102
|
+
"collapsible": true,
|
|
103
|
+
"properties": [
|
|
104
|
+
{
|
|
105
|
+
"name": "testId",
|
|
106
|
+
"label": "Test ID",
|
|
107
|
+
"format": "TEXT",
|
|
108
|
+
"ignorePattern": "[^-_\\p{N}\\p{L}]",
|
|
109
|
+
"includeAnnotations": false
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
}
|
|
113
|
+
],
|
|
114
|
+
"defaultConfig": {
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
InputProperties:
|
|
119
|
+
```
|
|
120
|
+
{{COMPONENT_CONFIG}}
|
|
121
|
+
```
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
import inquirer from 'inquirer';
|
|
3
|
+
import ora from 'ora';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import { URL, fileURLToPath } from 'url';
|
|
6
|
+
import { join } from 'path';
|
|
7
|
+
import fs from 'fs';
|
|
8
|
+
|
|
9
|
+
import { AI_PROMPT_FILENAME } from '../../constants.js';
|
|
10
|
+
|
|
11
|
+
import _ from 'lodash';
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
import {
|
|
15
|
+
getComponents,
|
|
16
|
+
getPegaConfig,
|
|
17
|
+
getAIPromptData,
|
|
18
|
+
getDirectoryFiles,
|
|
19
|
+
getAIComponent,
|
|
20
|
+
getComponentDirectoryPath,
|
|
21
|
+
compileMustacheTemplate,
|
|
22
|
+
getComponentConfigJson
|
|
23
|
+
} from '../../util.js';
|
|
24
|
+
import { str } from 'ajv';
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
export const getComponentAndGenerateAI = async (enteredKey) => {
|
|
31
|
+
const localComponents = await getComponents();
|
|
32
|
+
|
|
33
|
+
let answers;
|
|
34
|
+
|
|
35
|
+
if (localComponents.length > 0) {
|
|
36
|
+
|
|
37
|
+
if (enteredKey && enteredKey != "") {
|
|
38
|
+
answers = await inquirer.prompt([
|
|
39
|
+
{
|
|
40
|
+
name: 'designSystemComponents',
|
|
41
|
+
message: 'Enter comma delimited string of Design system components (ie. Input, TextArea, etc.)'
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
name: 'additionalPromptInfo',
|
|
45
|
+
message: 'Enter any additional generation information',
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
]);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
answers = await inquirer.prompt([
|
|
53
|
+
{
|
|
54
|
+
name: 'componentKey',
|
|
55
|
+
type: 'rawlist',
|
|
56
|
+
message: 'Select component to generateAI',
|
|
57
|
+
choices: localComponents,
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
name: 'designSystemComponents',
|
|
61
|
+
message: 'Enter comma delimited string of Design system components (ie. Input, TextArea, etc.)'
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
name: 'additionalPromptInfo',
|
|
65
|
+
message: 'Enter any additional generation information',
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
]);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
|
|
73
|
+
console.log("Generating component...");
|
|
74
|
+
|
|
75
|
+
await generateAIComponent(enteredKey || answers.componentKey, answers.designSystemComponents, answers.additionalPropmtInfo);
|
|
76
|
+
|
|
77
|
+
} else {
|
|
78
|
+
console.log(chalk.bold.redBright(`No custom components in ${sourceOfComponents}`));
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
export const renameFile = (oldFileName, newFileName) => {
|
|
83
|
+
try {
|
|
84
|
+
fs.renameSync(oldFileName, newFileName);
|
|
85
|
+
|
|
86
|
+
} catch(err) {
|
|
87
|
+
console.log(err)
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
export const generateAIComponent = async (componentKey, designSystemComponents, additionalPromptInfo) => {
|
|
92
|
+
|
|
93
|
+
const fileName = "." + path.sep + AI_PROMPT_FILENAME;
|
|
94
|
+
|
|
95
|
+
// get config file
|
|
96
|
+
//
|
|
97
|
+
const targetDirectory = await getComponentDirectoryPath(componentKey);
|
|
98
|
+
const configFile = await getComponentConfigJson(targetDirectory);
|
|
99
|
+
|
|
100
|
+
let strPrompt = compileMustacheTemplate(fileURLToPath(new URL(fileName, import.meta.url)), {
|
|
101
|
+
COMPONENT_CONFIG: configFile,
|
|
102
|
+
COMPONENT_DSC: designSystemComponents,
|
|
103
|
+
COMPONENT_ADDITIONAL: additionalPromptInfo
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
strPrompt = _.unescape(strPrompt);
|
|
107
|
+
|
|
108
|
+
//let strPrompt = await getAIPromptData(fileURLToPath(new URL(fileName, import.meta.url)));
|
|
109
|
+
let aiComponent = await getAIComponent(strPrompt);
|
|
110
|
+
|
|
111
|
+
//console.log(aiData);
|
|
112
|
+
const indexFile = join(targetDirectory, "index.jsx");
|
|
113
|
+
|
|
114
|
+
// remove enclosed ``` and "Answer:"
|
|
115
|
+
aiComponent = aiComponent.substring(aiComponent.indexOf("import"));
|
|
116
|
+
aiComponent = aiComponent.substring(0, aiComponent.lastIndexOf("```"));
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
// get directory list
|
|
121
|
+
// check for index-template.jsx.old
|
|
122
|
+
// if not there, copy index.jsx to index-template.jsx.old and then copy aiComponent to index.jsx
|
|
123
|
+
// if there, check if have index-genai-1.jsx.old, if not, then copy index.jsx, to index-genai-1.jsx.old
|
|
124
|
+
// otherwise, find all index-genai-X and find biggest number and add one, and save index.jsx to that and then create index.jsx
|
|
125
|
+
|
|
126
|
+
const dirList = await getDirectoryFiles(targetDirectory);
|
|
127
|
+
|
|
128
|
+
if (dirList.includes("index-template.jsx.old")) {
|
|
129
|
+
|
|
130
|
+
const genList = dirList.map( (el) => {
|
|
131
|
+
if (el.indexOf("index-genai") >= 0) {
|
|
132
|
+
return el;
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
return "";
|
|
136
|
+
}
|
|
137
|
+
});
|
|
138
|
+
|
|
139
|
+
if (genList.length > 0) {
|
|
140
|
+
let lastIndex = 0;
|
|
141
|
+
|
|
142
|
+
genList.forEach((el) => {
|
|
143
|
+
const theName = el.split(".")[0];
|
|
144
|
+
const theIndex = theName.split("-")[2];
|
|
145
|
+
|
|
146
|
+
if (parseInt(theIndex) > lastIndex) {
|
|
147
|
+
lastIndex = parseInt(theIndex);
|
|
148
|
+
}
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
lastIndex++;
|
|
152
|
+
|
|
153
|
+
const oldGenFileName = join(targetDirectory, "index.jsx");
|
|
154
|
+
const newGenFileName = join(targetDirectory, "index-genai-" + lastIndex + ".jsx.old");
|
|
155
|
+
|
|
156
|
+
renameFile(oldGenFileName, newGenFileName);
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
const oldGenFileName = join(targetDirectory, "index.jsx");
|
|
160
|
+
const newGenFileName = join(targetDirectory, "index-genai-1.jsx.old");
|
|
161
|
+
|
|
162
|
+
renameFile(oldGenFileName, newGenFileName);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
else {
|
|
166
|
+
// so only index.jsx, so rename index.jsx to index-template.jsx.old
|
|
167
|
+
// and create a new index.jsx
|
|
168
|
+
const oldFileName = join(targetDirectory, "index.jsx");
|
|
169
|
+
const newFileName = join(targetDirectory, "index-template.jsx.old");
|
|
170
|
+
|
|
171
|
+
renameFile(oldFileName, newFileName);
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// creae new index.jsx
|
|
175
|
+
fs.writeFileSync(indexFile, aiComponent, err => {
|
|
176
|
+
if (err) {
|
|
177
|
+
Promise.reject(`${chalk.bold.red(err)}`);
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
|
|
181
|
+
console.log(`Updated file ${chalk.green('index.jsx')} in directory ${chalk.green(componentKey)} with AI generated code.`);
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import inquirer from 'inquirer';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import chalk from 'chalk';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
getComponentAndGenerateAI,
|
|
7
|
+
generateAIComponent
|
|
8
|
+
} from './helper.js';
|
|
9
|
+
|
|
10
|
+
import { showVersion } from '../../util.js';
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
export default async options => {
|
|
16
|
+
showVersion();
|
|
17
|
+
|
|
18
|
+
if (options.params.length > 3 && options.params[3] != "") {
|
|
19
|
+
const sourceOfComponents = options.params[3];
|
|
20
|
+
|
|
21
|
+
//await generateAIComponent(sourceOfComponents);
|
|
22
|
+
await getComponentAndGenerateAI(sourceOfComponents);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
|
|
26
|
+
await getComponentAndGenerateAI();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
};
|
package/src/tasks/index.js
CHANGED
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
export { default as createComponent } from './create/index.js';
|
|
2
|
+
export { default as createAllComponents } from './create-all/index.js';
|
|
2
3
|
export { default as deleteComponent } from './delete/index.js';
|
|
4
|
+
export { default as deleteAllComponents } from './delete-all/index.js';
|
|
3
5
|
export { default as initProject } from './init/index.js';
|
|
4
6
|
export { default as publishComponent } from './publish/index.js';
|
|
7
|
+
export { default as publishAllComponents } from './publish-all/index.js';
|
|
8
|
+
export { default as renameComponent } from './rename/index.js';
|
|
5
9
|
export { default as listComponents } from './list/index.js';
|
|
6
10
|
export { default as updateComponent } from './update/index.js';
|
|
7
11
|
export { default as validate } from './validator/index.js';
|
|
8
12
|
export { default as authenticate } from './authenticate/index.js';
|
|
9
13
|
export { default as upgrade } from './upgrade/index.js';
|
|
14
|
+
export { default as buildComponent } from './build/index.js';
|
|
15
|
+
export { default as buildAllComponents } from './build-all/index.js';
|
|
16
|
+
export { default as generateWithAI } from './generate-ai/index.js';
|
package/src/tasks/init/index.js
CHANGED
|
@@ -47,6 +47,7 @@ const copyProjectTemplate = async options => {
|
|
|
47
47
|
clobber: false
|
|
48
48
|
});
|
|
49
49
|
const packageJsonPath = path.join(options.targetDirectory, 'package.json.mustache');
|
|
50
|
+
const templateNPMRCPath = path.join(options.targetDirectory, 'templateNPMRC.txt');
|
|
50
51
|
|
|
51
52
|
let { organization, projectName } = options;
|
|
52
53
|
|
|
@@ -65,6 +66,10 @@ const copyProjectTemplate = async options => {
|
|
|
65
66
|
const output = compileMustacheTemplate(packageJsonPath, options);
|
|
66
67
|
fs.writeFileSync(packageJsonPath, output);
|
|
67
68
|
fs.renameSync(packageJsonPath, packageJsonPath.replace('.mustache', ''));
|
|
69
|
+
|
|
70
|
+
// rename template NPMRC to .npmrc, need to do this because npmjs won't publish an .npmrc file
|
|
71
|
+
fs.renameSync(templateNPMRCPath, templateNPMRCPath.replace('templateNPMRC.txt', '.npmrc'));
|
|
72
|
+
|
|
68
73
|
await createLicense(options);
|
|
69
74
|
};
|
|
70
75
|
|
|
@@ -123,7 +128,8 @@ export default async options => {
|
|
|
123
128
|
},
|
|
124
129
|
{
|
|
125
130
|
title: installDependenciesText,
|
|
126
|
-
task: () =>
|
|
131
|
+
task: () =>
|
|
132
|
+
execPromise('npm i --force --production=false', { cwd: options.targetDirectory })
|
|
127
133
|
}
|
|
128
134
|
],
|
|
129
135
|
{
|
|
@@ -140,7 +146,7 @@ export default async options => {
|
|
|
140
146
|
'\n',
|
|
141
147
|
`Inside that directory, you can run several commands:`,
|
|
142
148
|
'\n\n',
|
|
143
|
-
`${chalk.blueBright('npm
|
|
149
|
+
`${chalk.blueBright('npm run startStorybook')}`,
|
|
144
150
|
`\n Start Storybook in development mode`,
|
|
145
151
|
'\n\n',
|
|
146
152
|
`${chalk.blueBright('npm run create')}`,
|
|
@@ -158,7 +164,7 @@ export default async options => {
|
|
|
158
164
|
'\n\n',
|
|
159
165
|
`${chalk.blueBright('cd')} ${chalk.bold(projectName)}`,
|
|
160
166
|
'\n',
|
|
161
|
-
`${chalk.blueBright('npm
|
|
167
|
+
`${chalk.blueBright('npm run startStorybook')}`,
|
|
162
168
|
'\n'
|
|
163
169
|
);
|
|
164
170
|
return true;
|
|
@@ -1,10 +1,191 @@
|
|
|
1
1
|
{
|
|
2
|
-
"extends": ["@pega"],
|
|
3
|
-
"parserOptions": { "project": "tsconfig.json" },
|
|
4
2
|
"root": true,
|
|
5
|
-
"
|
|
3
|
+
"extends": ["@pega"],
|
|
4
|
+
"parserOptions": {
|
|
5
|
+
"project": "tsconfig.json",
|
|
6
|
+
"ecmaVersion": 13
|
|
7
|
+
},
|
|
8
|
+
"settings": {
|
|
9
|
+
"import/resolver": {
|
|
10
|
+
"typescript": {},
|
|
11
|
+
"node": {
|
|
12
|
+
"extensions": [".js", ".jsx"]
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
"react": {
|
|
16
|
+
"version": "detect"
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
"ignorePatterns": ["node_modules", "packages/*/lib", "!.storybook", ".storybook/public"],
|
|
6
20
|
"rules": {
|
|
21
|
+
// Prettier recommends running separately from a linter.
|
|
22
|
+
// https://prettier.io/docs/en/integrating-with-linters.html#notes
|
|
7
23
|
"prettier/prettier": "off",
|
|
8
|
-
|
|
9
|
-
|
|
24
|
+
|
|
25
|
+
// Disable rules from shared configs we're not ready for yet.
|
|
26
|
+
"sonarjs/cognitive-complexity": "off",
|
|
27
|
+
"sonarjs/no-identical-functions": "off",
|
|
28
|
+
"sonarjs/no-duplicate-string": "off",
|
|
29
|
+
"sonarjs/no-nested-template-literals": "off",
|
|
30
|
+
|
|
31
|
+
//
|
|
32
|
+
// JA - Override some default lint handling here
|
|
33
|
+
"@typescript-eslint/array-type": ["error", { "default": "generic" }],
|
|
34
|
+
// "import/extensions": ["warn", "never"], // Turning off for now (see below)
|
|
35
|
+
|
|
36
|
+
//
|
|
37
|
+
// Initial release: turning these off; phase in to "warn" or "error" over time
|
|
38
|
+
// For "quotes" and "@typescript-eslint/quotes", see override below for .ts/.tsx files
|
|
39
|
+
"import/extensions": ["off", "never"],
|
|
40
|
+
"import/named": "off",
|
|
41
|
+
"import/no-cycle": "off",
|
|
42
|
+
"import/no-duplicates": "off",
|
|
43
|
+
"import/no-extraneous-dependencies": "off",
|
|
44
|
+
"import/no-named-as-default": "off",
|
|
45
|
+
"import/no-named-as-default-member": "off",
|
|
46
|
+
"import/no-self-import": "off",
|
|
47
|
+
"import/no-unresolved": "off",
|
|
48
|
+
"import/no-useless-path-segments": "off",
|
|
49
|
+
"import/order": "off",
|
|
50
|
+
|
|
51
|
+
"no-else-return": "off",
|
|
52
|
+
"no-restricted-syntax": "off",
|
|
53
|
+
"no-underscore-dangle": "off",
|
|
54
|
+
|
|
55
|
+
"jsx-a11y/alt-text": "off",
|
|
56
|
+
"jsx-a11y/anchor-is-valid": "off",
|
|
57
|
+
"jsx-a11y/click-events-have-key-events": "off",
|
|
58
|
+
"jsx-a11y/label-has-associated-control": "off",
|
|
59
|
+
"jsx-a11y/no-static-element-interactions": "off",
|
|
60
|
+
|
|
61
|
+
"react/jsx-fragments": "off",
|
|
62
|
+
"react/jsx-no-bind": "off",
|
|
63
|
+
"react/self-closing-comp": "off",
|
|
64
|
+
|
|
65
|
+
"sonarjs/prefer-immediate-return": "off",
|
|
66
|
+
|
|
67
|
+
"@typescript-eslint/dot-notation": "off", // prefer warn but needs different parserOptions
|
|
68
|
+
"@typescript-eslint/naming-convention": "off", // prefer warn but needs different parserOptions
|
|
69
|
+
"@typescript-eslint/ban-types": "off", // also, see override below
|
|
70
|
+
|
|
71
|
+
//
|
|
72
|
+
// Initial release: set to error
|
|
73
|
+
"@typescript-eslint/no-inferrable-types": "error",
|
|
74
|
+
"eqeqeq": "error",
|
|
75
|
+
"no-alert": "error",
|
|
76
|
+
"no-console": "error",
|
|
77
|
+
"no-fallthrough": "error",
|
|
78
|
+
"no-undef": "error",
|
|
79
|
+
"no-unused-vars": "error",
|
|
80
|
+
"no-var": "error",
|
|
81
|
+
"prefer-const": "error",
|
|
82
|
+
"yoda": "error",
|
|
83
|
+
|
|
84
|
+
"import/no-mutable-exports": "error",
|
|
85
|
+
"sonarjs/max-switch-cases": "error",
|
|
86
|
+
"sonarjs/no-collapsible-if": "error",
|
|
87
|
+
"sonarjs/no-all-duplicated-branches": "error",
|
|
88
|
+
"sonarjs/no-duplicated-branches": "error",
|
|
89
|
+
"sonarjs/no-gratuitous-expressions": "error",
|
|
90
|
+
"sonarjs/no-ignored-return": "error",
|
|
91
|
+
"sonarjs/no-small-switch": "error",
|
|
92
|
+
"sonarjs/prefer-object-literal": "error",
|
|
93
|
+
"sonarjs/prefer-single-boolean-return": "error",
|
|
94
|
+
"@typescript-eslint/no-shadow": "error",
|
|
95
|
+
"react/default-props-match-prop-types": "error",
|
|
96
|
+
"react/no-unescaped-entities": "error",
|
|
97
|
+
"react/no-unused-prop-types": "error",
|
|
98
|
+
"react/static-property-placement": "error",
|
|
99
|
+
"array-callback-return": "error",
|
|
100
|
+
"camelcase": "error",
|
|
101
|
+
"default-case": "error",
|
|
102
|
+
"func-names": "error",
|
|
103
|
+
"no-case-declarations": "error",
|
|
104
|
+
"no-lonely-if": "error",
|
|
105
|
+
"no-nested-ternary": "error",
|
|
106
|
+
"no-plusplus": "error",
|
|
107
|
+
"no-restricted-globals": "error",
|
|
108
|
+
"no-restricted-properties": "error",
|
|
109
|
+
"no-shadow": "error",
|
|
110
|
+
"radix": "error",
|
|
111
|
+
"spaced-comment": "error",
|
|
112
|
+
|
|
113
|
+
"import/newline-after-import": "error",
|
|
114
|
+
"sonarjs/no-nested-switch": "error",
|
|
115
|
+
"@typescript-eslint/no-array-constructor": "error",
|
|
116
|
+
"@typescript-eslint/no-empty-function": "error",
|
|
117
|
+
"@typescript-eslint/no-unused-vars": "error",
|
|
118
|
+
"@typescript-eslint/no-useless-constructor": "error",
|
|
119
|
+
"react/button-has-type": "error",
|
|
120
|
+
"react/jsx-curly-brace-presence": "error",
|
|
121
|
+
"react/jsx-boolean-value": "error",
|
|
122
|
+
"react/no-array-index-key": "error",
|
|
123
|
+
"class-methods-use-this": "error",
|
|
124
|
+
"guard-for-in": "error",
|
|
125
|
+
"no-unneeded-ternary": "error",
|
|
126
|
+
"no-unused-expressions": "error",
|
|
127
|
+
"operator-assignment": "error",
|
|
128
|
+
"prefer-template": "error",
|
|
129
|
+
"vars-on-top": "error",
|
|
130
|
+
|
|
131
|
+
"no-use-before-define": "off", // doc for @typescript-eslint/no-use-before-define says to turn off the base implementation
|
|
132
|
+
"@typescript-eslint/no-use-before-define": "error"
|
|
133
|
+
},
|
|
134
|
+
"overrides": [
|
|
135
|
+
{
|
|
136
|
+
"files": "*.@(ts|tsx)",
|
|
137
|
+
"rules": {
|
|
138
|
+
"@typescript-eslint/method-signature-style": ["error", "property"],
|
|
139
|
+
// "@typescript-eslint/ban-types": [
|
|
140
|
+
// "warn",
|
|
141
|
+
// {
|
|
142
|
+
// "types": {
|
|
143
|
+
// "Omit": "Please use the 'OmitStrict' type from 'src/types/' instead.",
|
|
144
|
+
// "object": false,
|
|
145
|
+
// "Function": false
|
|
146
|
+
// },
|
|
147
|
+
// "extendDefaults": true
|
|
148
|
+
// }
|
|
149
|
+
// ],
|
|
150
|
+
|
|
151
|
+
"quotes": "off",
|
|
152
|
+
"@typescript-eslint/quotes": "off"
|
|
153
|
+
// [
|
|
154
|
+
// "error",
|
|
155
|
+
// "single",
|
|
156
|
+
// {
|
|
157
|
+
// "avoidEscape": true,
|
|
158
|
+
// "allowTemplateLiterals": false
|
|
159
|
+
// }
|
|
160
|
+
// ]
|
|
161
|
+
}
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"files": "*.@(jsx|tsx|mdx)",
|
|
165
|
+
"rules": {
|
|
166
|
+
"react/react-in-jsx-scope": "off",
|
|
167
|
+
// Set up configuration for future sweep
|
|
168
|
+
"react-hooks/exhaustive-deps": [
|
|
169
|
+
"off",
|
|
170
|
+
{
|
|
171
|
+
"additionalHooks": "useAfterInitialEffect"
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"files": "*.@(js|jsx|ts|tsx|mdx)",
|
|
178
|
+
"rules": {}
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
"files": ".storybook/*.js",
|
|
182
|
+
"extends": ["@pega/eslint-config/script"]
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
"files": "*/**/mocks/**.@(mocks|styles).@(tsx|ts)",
|
|
186
|
+
"rules": {
|
|
187
|
+
"import/prefer-default-export": ["off"]
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
]
|
|
10
191
|
}
|