@salesforce/webapp-template-app-react-b2e-experimental 1.35.0
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/LICENSE.txt +82 -0
- package/dist/.a4drules/build-validation.md +81 -0
- package/dist/.a4drules/code-quality.md +150 -0
- package/dist/.a4drules/graphql/tools/knowledge/lds-explore-graphql-schema.md +227 -0
- package/dist/.a4drules/graphql/tools/knowledge/lds-generate-graphql-mutationquery.md +212 -0
- package/dist/.a4drules/graphql/tools/knowledge/lds-generate-graphql-readquery.md +185 -0
- package/dist/.a4drules/graphql/tools/knowledge/lds-guide-graphql.md +205 -0
- package/dist/.a4drules/graphql/tools/schemas/shared.graphqls +1150 -0
- package/dist/.a4drules/graphql.md +408 -0
- package/dist/.a4drules/images.md +13 -0
- package/dist/.a4drules/react.md +361 -0
- package/dist/.a4drules/react_image_processing.md +45 -0
- package/dist/.a4drules/skills/install-feature/SKILL.md +67 -0
- package/dist/.a4drules/skills/install-feature/scripts/copy-feature-assets.sh +36 -0
- package/dist/.a4drules/typescript.md +224 -0
- package/dist/.forceignore +15 -0
- package/dist/.husky/pre-commit +4 -0
- package/dist/.prettierignore +11 -0
- package/dist/.prettierrc +17 -0
- package/dist/CHANGELOG.md +479 -0
- package/dist/README.md +18 -0
- package/dist/config/project-scratch-def.json +13 -0
- package/dist/force-app/main/default/applications/Property_Management.app-meta.xml +26 -0
- package/dist/force-app/main/default/data/Application__c.json +124 -0
- package/dist/force-app/main/default/data/Maintenance_Request__c.json +514 -0
- package/dist/force-app/main/default/data/Maintenance_Worker__c.json +304 -0
- package/dist/force-app/main/default/data/Notification__c.json +214 -0
- package/dist/force-app/main/default/data/Property__c.json +654 -0
- package/dist/force-app/main/default/data/Tenant__c.json +184 -0
- package/dist/force-app/main/default/data/data-plan.json +38 -0
- package/dist/force-app/main/default/objects/Application__c/Application__c.object-meta.xml +67 -0
- package/dist/force-app/main/default/objects/Application__c/fields/Employment__c.field-meta.xml +10 -0
- package/dist/force-app/main/default/objects/Application__c/fields/Property__c.field-meta.xml +15 -0
- package/dist/force-app/main/default/objects/Application__c/fields/References__c.field-meta.xml +10 -0
- package/dist/force-app/main/default/objects/Application__c/fields/Start_Date__c.field-meta.xml +9 -0
- package/dist/force-app/main/default/objects/Application__c/fields/Status__c.field-meta.xml +42 -0
- package/dist/force-app/main/default/objects/Application__c/fields/User__c.field-meta.xml +15 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/Maintenance_Request__c.object-meta.xml +67 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Actual_Cost__c.field-meta.xml +13 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Completed__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Description__c.field-meta.xml +12 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Est_Cost__c.field-meta.xml +13 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Priority__c.field-meta.xml +32 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Property__c.field-meta.xml +15 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Scheduled__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Status__c.field-meta.xml +42 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Tenant_Home__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/Type__c.field-meta.xml +42 -0
- package/dist/force-app/main/default/objects/Maintenance_Request__c/fields/User__c.field-meta.xml +15 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/Maintenance_Worker__c.object-meta.xml +66 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Certifications__c.field-meta.xml +12 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Employment_Type__c.field-meta.xml +32 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Hourly_Rate__c.field-meta.xml +13 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/IsActive__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Location__c.field-meta.xml +13 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Phone__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Rating__c.field-meta.xml +14 -0
- package/dist/force-app/main/default/objects/Maintenance_Worker__c/fields/Type__c.field-meta.xml +57 -0
- package/dist/force-app/main/default/objects/Notification__c/Notification__c.object-meta.xml +67 -0
- package/dist/force-app/main/default/objects/Notification__c/fields/Is_Read__c.field-meta.xml +10 -0
- package/dist/force-app/main/default/objects/Notification__c/fields/Message__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Notification__c/fields/Priority__c.field-meta.xml +36 -0
- package/dist/force-app/main/default/objects/Notification__c/fields/Related_Object_Type__c.field-meta.xml +12 -0
- package/dist/force-app/main/default/objects/Notification__c/fields/Related_Record_Id__c.field-meta.xml +12 -0
- package/dist/force-app/main/default/objects/Notification__c/fields/Title__c.field-meta.xml +12 -0
- package/dist/force-app/main/default/objects/Notification__c/fields/Type__c.field-meta.xml +36 -0
- package/dist/force-app/main/default/objects/Notification__c/fields/User__c.field-meta.xml +14 -0
- package/dist/force-app/main/default/objects/Property__c/Property__c.object-meta.xml +66 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Address__c.field-meta.xml +13 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Agent__c.field-meta.xml +15 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Available_Date__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Bathrooms__c.field-meta.xml +14 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Bedrooms__c.field-meta.xml +14 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Deposit__c.field-meta.xml +13 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Description__c.field-meta.xml +12 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Features__c.field-meta.xml +38 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Hero_Image__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Lease_Term__c.field-meta.xml +14 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Monthly_Rent__c.field-meta.xml +13 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Parking__c.field-meta.xml +14 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Pet_Friendly__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Sq_Ft__c.field-meta.xml +14 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Status__c.field-meta.xml +37 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Tour_URL__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Type__c.field-meta.xml +37 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Utilities__c.field-meta.xml +38 -0
- package/dist/force-app/main/default/objects/Property__c/fields/Year_Built__c.field-meta.xml +14 -0
- package/dist/force-app/main/default/objects/Tenant__c/Tenant__c.object-meta.xml +67 -0
- package/dist/force-app/main/default/objects/Tenant__c/fields/End_Date__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Tenant__c/fields/Property__c.field-meta.xml +15 -0
- package/dist/force-app/main/default/objects/Tenant__c/fields/Start_Date__c.field-meta.xml +11 -0
- package/dist/force-app/main/default/objects/Tenant__c/fields/Status__c.field-meta.xml +37 -0
- package/dist/force-app/main/default/objects/Tenant__c/fields/User_Status__c.field-meta.xml +42 -0
- package/dist/force-app/main/default/objects/Tenant__c/fields/User__c.field-meta.xml +15 -0
- package/dist/force-app/main/default/permissionsets/Property_Management_Access.permissionset-meta.xml +453 -0
- package/dist/force-app/main/default/tabs/Application__c.tab-meta.xml +6 -0
- package/dist/force-app/main/default/tabs/Maintenance_Request__c.tab-meta.xml +7 -0
- package/dist/force-app/main/default/tabs/Maintenance_Worker__c.tab-meta.xml +6 -0
- package/dist/force-app/main/default/tabs/Notification__c.tab-meta.xml +6 -0
- package/dist/force-app/main/default/tabs/Property__c.tab-meta.xml +7 -0
- package/dist/force-app/main/default/tabs/Tenant__c.tab-meta.xml +7 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/.prettierignore +9 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/.prettierrc +11 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/appreactb2e.webapplication-meta.xml +7 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/build/vite.config.d.ts +2 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/build/vite.config.js +76 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/e2e/app.spec.ts +24 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/eslint.config.js +113 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/index.html +13 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/package-lock.json +7157 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/package.json +45 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/playwright.config.ts +24 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/scripts/rewrite-e2e-assets.mjs +23 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/api/graphql-operations-types.ts +127 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/api/utils/query/highRevenueAccountsQuery.graphql +29 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/app.tsx +22 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/appLayout.tsx +29 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/icons/book.svg +3 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/icons/copy.svg +4 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/icons/rocket.svg +3 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/icons/star.svg +3 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/images/codey-1.png +0 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/images/codey-2.png +0 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/images/codey-3.png +0 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/assets/images/vibe-codey.svg +194 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/pages/About.tsx +12 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/pages/Home.tsx +12 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/pages/NotFound.tsx +18 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/routes.tsx +28 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/src/styles/global.css +13 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/tsconfig.json +36 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/tsconfig.node.json +13 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/vite-env.d.ts +1 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/vite.config.ts +85 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/vitest-env.d.ts +2 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/vitest.config.ts +11 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/vitest.setup.ts +1 -0
- package/dist/force-app/main/default/webapplications/appreactb2e/webapplication.json +7 -0
- package/dist/jest.config.js +6 -0
- package/dist/package.json +37 -0
- package/dist/scripts/apex/hello.apex +10 -0
- package/dist/scripts/soql/account.soql +6 -0
- package/dist/sfdx-project.json +12 -0
- package/package.json +34 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# AI Rule: TypeScript Standards
|
|
2
|
+
|
|
3
|
+
Enforces strict TypeScript standards for type-safe React applications.
|
|
4
|
+
|
|
5
|
+
## Targets
|
|
6
|
+
- `**/*.ts`
|
|
7
|
+
- `**/*.tsx`
|
|
8
|
+
|
|
9
|
+
## MANDATORY Configuration
|
|
10
|
+
- `strict: true` - Enable all strict type checking
|
|
11
|
+
- `noUncheckedIndexedAccess: true` - Prevent unsafe array/object access
|
|
12
|
+
- `noUnusedLocals: true` - Report unused variables
|
|
13
|
+
- `noUnusedParameters: true` - Report unused parameters
|
|
14
|
+
|
|
15
|
+
## Function Return Types (REQUIRED)
|
|
16
|
+
```typescript
|
|
17
|
+
// Always specify return types
|
|
18
|
+
function fetchUserData(id: string): Promise<User> {
|
|
19
|
+
return api.get(`/users/${id}`);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const calculateTotal = (items: Item[]): number => {
|
|
23
|
+
return items.reduce((sum, item) => sum + item.price, 0);
|
|
24
|
+
};
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Interface Definitions (REQUIRED)
|
|
28
|
+
```typescript
|
|
29
|
+
// Data structures
|
|
30
|
+
interface User {
|
|
31
|
+
id: string;
|
|
32
|
+
name: string;
|
|
33
|
+
email: string;
|
|
34
|
+
createdAt: Date;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
// React component props
|
|
38
|
+
interface ButtonProps {
|
|
39
|
+
variant: 'primary' | 'secondary';
|
|
40
|
+
onClick: () => void;
|
|
41
|
+
disabled?: boolean;
|
|
42
|
+
children: React.ReactNode;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
export const Button: React.FC<ButtonProps> = ({ variant, onClick, disabled, children }) => {
|
|
46
|
+
// Implementation
|
|
47
|
+
};
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Type Safety Rules
|
|
51
|
+
|
|
52
|
+
### Never Use `any`
|
|
53
|
+
```typescript
|
|
54
|
+
// FORBIDDEN
|
|
55
|
+
const data: any = await fetchData();
|
|
56
|
+
|
|
57
|
+
// REQUIRED: Proper typing
|
|
58
|
+
interface ApiResponse {
|
|
59
|
+
data: User[];
|
|
60
|
+
status: 'success' | 'error';
|
|
61
|
+
}
|
|
62
|
+
const response: ApiResponse = await fetchData();
|
|
63
|
+
|
|
64
|
+
// ACCEPTABLE: Unknown when type is truly unknown
|
|
65
|
+
const parseJson = (input: string): unknown => JSON.parse(input);
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Null Safety
|
|
69
|
+
```typescript
|
|
70
|
+
// Handle null/undefined explicitly
|
|
71
|
+
interface UserProfile {
|
|
72
|
+
user: User | null;
|
|
73
|
+
loading: boolean;
|
|
74
|
+
error: string | null;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Use optional chaining and nullish coalescing
|
|
78
|
+
const displayName = user?.name ?? 'Anonymous';
|
|
79
|
+
const avatarUrl = user?.profile?.avatar ?? '/default-avatar.png';
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## React TypeScript Patterns
|
|
83
|
+
|
|
84
|
+
### Event Handlers
|
|
85
|
+
```typescript
|
|
86
|
+
const handleSubmit = (event: React.FormEvent<HTMLFormElement>): void => {
|
|
87
|
+
event.preventDefault();
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
const handleInputChange = (event: React.ChangeEvent<HTMLInputElement>): void => {
|
|
91
|
+
setInputValue(event.target.value);
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const handleClick = (event: React.MouseEvent<HTMLButtonElement>): void => {
|
|
95
|
+
console.log('Button clicked');
|
|
96
|
+
};
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
### State and Hooks
|
|
100
|
+
```typescript
|
|
101
|
+
// Type useState properly
|
|
102
|
+
const [user, setUser] = useState<User | null>(null);
|
|
103
|
+
const [loading, setLoading] = useState<boolean>(false);
|
|
104
|
+
const [errors, setErrors] = useState<string[]>([]);
|
|
105
|
+
|
|
106
|
+
// Type custom hooks
|
|
107
|
+
interface UseApiResult<T> {
|
|
108
|
+
data: T | null;
|
|
109
|
+
loading: boolean;
|
|
110
|
+
error: string | null;
|
|
111
|
+
refetch: () => Promise<void>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
function useApi<T>(url: string): UseApiResult<T> {
|
|
115
|
+
const [data, setData] = useState<T | null>(null);
|
|
116
|
+
const [loading, setLoading] = useState<boolean>(false);
|
|
117
|
+
const [error, setError] = useState<string | null>(null);
|
|
118
|
+
|
|
119
|
+
return { data, loading, error, refetch };
|
|
120
|
+
}
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
## API Types
|
|
124
|
+
|
|
125
|
+
### Salesforce Records
|
|
126
|
+
```typescript
|
|
127
|
+
interface SalesforceRecord {
|
|
128
|
+
Id: string;
|
|
129
|
+
attributes: { type: string; url: string };
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
interface Account extends SalesforceRecord {
|
|
133
|
+
Name: { value: string };
|
|
134
|
+
Industry?: { value: string | null };
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// Type API functions
|
|
138
|
+
async function fetchAccount(id: string): Promise<Account> {
|
|
139
|
+
const response = await axios.get<Account>(`/services/data/v62.0/ui-api/records/${id}`);
|
|
140
|
+
return response.data;
|
|
141
|
+
}
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### GraphQL
|
|
145
|
+
```typescript
|
|
146
|
+
interface GraphQLResponse<T> {
|
|
147
|
+
data: T;
|
|
148
|
+
errors?: Array<{ message: string; locations?: Array<{ line: number; column: number }> }>;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
async function executeGraphQL<T>(query: string, variables?: Record<string, unknown>): Promise<T> {
|
|
152
|
+
const response = await axios.post<GraphQLResponse<T>>('/services/data/v62.0/graphql', {
|
|
153
|
+
query,
|
|
154
|
+
variables,
|
|
155
|
+
});
|
|
156
|
+
|
|
157
|
+
if (response.data.errors?.length) {
|
|
158
|
+
throw new Error(response.data.errors.map(e => e.message).join('; '));
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
return response.data.data;
|
|
162
|
+
}
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
## Error Handling Types
|
|
166
|
+
```typescript
|
|
167
|
+
interface ApiError {
|
|
168
|
+
message: string;
|
|
169
|
+
status: number;
|
|
170
|
+
code?: string;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
class CustomError extends Error {
|
|
174
|
+
constructor(message: string, public readonly status: number, public readonly code?: string) {
|
|
175
|
+
super(message);
|
|
176
|
+
this.name = 'CustomError';
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
## Anti-Patterns (FORBIDDEN)
|
|
182
|
+
|
|
183
|
+
### Type Assertions
|
|
184
|
+
```typescript
|
|
185
|
+
// FORBIDDEN: Unsafe assertions
|
|
186
|
+
const user = data as User;
|
|
187
|
+
|
|
188
|
+
// REQUIRED: Type guards
|
|
189
|
+
function isUser(obj: unknown): obj is User {
|
|
190
|
+
return typeof obj === 'object' && obj !== null && typeof (obj as User).id === 'string';
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
if (isUser(data)) {
|
|
194
|
+
console.log(data.name); // Now safely typed
|
|
195
|
+
}
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Missing Return Types
|
|
199
|
+
```typescript
|
|
200
|
+
// FORBIDDEN: No return type
|
|
201
|
+
const fetchData = async (id: string) => {
|
|
202
|
+
return await api.get(`/data/${id}`);
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
// REQUIRED: Explicit return type
|
|
206
|
+
const fetchData = async (id: string): Promise<ApiResponse> => {
|
|
207
|
+
return await api.get(`/data/${id}`);
|
|
208
|
+
};
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Quality Checklist
|
|
212
|
+
Before completing TypeScript code:
|
|
213
|
+
1. All functions have explicit return types
|
|
214
|
+
2. All interfaces are properly defined
|
|
215
|
+
3. No `any` types used (use `unknown` if necessary)
|
|
216
|
+
4. Null/undefined handling is explicit
|
|
217
|
+
5. React components are properly typed
|
|
218
|
+
6. API calls have proper type definitions
|
|
219
|
+
7. `tsc -b` compiles without errors
|
|
220
|
+
|
|
221
|
+
## Enforcement
|
|
222
|
+
- TypeScript errors MUST be fixed before any commit
|
|
223
|
+
- NEVER disable TypeScript strict mode
|
|
224
|
+
- Code reviews MUST check for proper typing
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# List files or directories below to ignore them when running force:source:push, force:source:pull, and force:source:status
|
|
2
|
+
# More information: https://developer.salesforce.com/docs/atlas.en-us.sfdx_dev.meta/sfdx_dev/sfdx_dev_exclude_source.htm
|
|
3
|
+
#
|
|
4
|
+
|
|
5
|
+
package.xml
|
|
6
|
+
|
|
7
|
+
# LWC configuration files
|
|
8
|
+
**/jsconfig.json
|
|
9
|
+
**/.eslintrc.json
|
|
10
|
+
|
|
11
|
+
# LWC Jest
|
|
12
|
+
**/__tests__/**
|
|
13
|
+
|
|
14
|
+
node_modules/
|
|
15
|
+
.DS_Store
|
package/dist/.prettierrc
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"trailingComma": "none",
|
|
3
|
+
"plugins": [
|
|
4
|
+
"prettier-plugin-apex",
|
|
5
|
+
"@prettier/plugin-xml"
|
|
6
|
+
],
|
|
7
|
+
"overrides": [
|
|
8
|
+
{
|
|
9
|
+
"files": "**/lwc/**/*.html",
|
|
10
|
+
"options": { "parser": "lwc" }
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"files": "*.{cmp,page,component}",
|
|
14
|
+
"options": { "parser": "html" }
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|