@salesforce/webapp-template-cli-experimental 1.33.6 → 1.34.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/README.md +153 -0
- package/dist/nx-plugin/executors/apply-patches/executor.d.ts +20 -0
- package/dist/nx-plugin/executors/apply-patches/executor.d.ts.map +1 -0
- package/dist/nx-plugin/executors/apply-patches/executor.js +73 -0
- package/dist/nx-plugin/executors/apply-patches/executor.js.map +1 -0
- package/dist/nx-plugin/executors/build-dist-app/executor.d.ts +19 -0
- package/dist/nx-plugin/executors/build-dist-app/executor.d.ts.map +1 -0
- package/dist/nx-plugin/executors/build-dist-app/executor.js +63 -0
- package/dist/nx-plugin/executors/build-dist-app/executor.js.map +1 -0
- package/executors.json +14 -0
- package/package.json +7 -3
package/README.md
CHANGED
|
@@ -1453,6 +1453,159 @@ it("should merge routes correctly", () => {
|
|
|
1453
1453
|
});
|
|
1454
1454
|
```
|
|
1455
1455
|
|
|
1456
|
+
## Nx Plugin Executors
|
|
1457
|
+
|
|
1458
|
+
This package provides Nx executors for integrating the template CLI with Nx workspaces. The executors automate applying patches and building feature apps within the monorepo.
|
|
1459
|
+
|
|
1460
|
+
### Available Executors
|
|
1461
|
+
|
|
1462
|
+
#### `apply-patches`
|
|
1463
|
+
|
|
1464
|
+
Applies template patches to create feature apps. This executor wraps the `apply-patches` CLI command and automatically determines paths based on the Nx project configuration.
|
|
1465
|
+
|
|
1466
|
+
**Usage in `package.json`:**
|
|
1467
|
+
|
|
1468
|
+
```json
|
|
1469
|
+
{
|
|
1470
|
+
"nx": {
|
|
1471
|
+
"targets": {
|
|
1472
|
+
"build": {
|
|
1473
|
+
"executor": "@salesforce/webapp-template-cli-experimental:apply-patches"
|
|
1474
|
+
}
|
|
1475
|
+
}
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1478
|
+
```
|
|
1479
|
+
|
|
1480
|
+
**Options:**
|
|
1481
|
+
|
|
1482
|
+
- `baseAppPath` (string, optional): Path to the base app directory (relative to workspace root)
|
|
1483
|
+
- Default: `"packages/template/base-app/base-react-app"`
|
|
1484
|
+
- `reset` (boolean, optional): Reset target directory to base app state before applying patches
|
|
1485
|
+
- Default: `true`
|
|
1486
|
+
- `skipDependencyChanges` (boolean, optional): Skip installing dependencies from package.json
|
|
1487
|
+
- Default: `false`
|
|
1488
|
+
- `outputDir` (string, optional): Output directory name (relative to project root)
|
|
1489
|
+
- Default: `"dist"`
|
|
1490
|
+
|
|
1491
|
+
**Example with options:**
|
|
1492
|
+
|
|
1493
|
+
```json
|
|
1494
|
+
{
|
|
1495
|
+
"nx": {
|
|
1496
|
+
"targets": {
|
|
1497
|
+
"build": {
|
|
1498
|
+
"executor": "@salesforce/webapp-template-cli-experimental:apply-patches",
|
|
1499
|
+
"options": {
|
|
1500
|
+
"reset": true,
|
|
1501
|
+
"skipDependencyChanges": false,
|
|
1502
|
+
"outputDir": "dist"
|
|
1503
|
+
}
|
|
1504
|
+
}
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
}
|
|
1508
|
+
```
|
|
1509
|
+
|
|
1510
|
+
**Workspace-level configuration (`nx.json`):**
|
|
1511
|
+
|
|
1512
|
+
You can set default options for all projects in `nx.json`:
|
|
1513
|
+
|
|
1514
|
+
```json
|
|
1515
|
+
{
|
|
1516
|
+
"targetDefaults": {
|
|
1517
|
+
"@salesforce/webapp-template-cli-experimental:apply-patches": {
|
|
1518
|
+
"cache": true,
|
|
1519
|
+
"inputs": [
|
|
1520
|
+
"{projectRoot}/src/**/*",
|
|
1521
|
+
"{projectRoot}/feature.ts",
|
|
1522
|
+
"{projectRoot}/package.json",
|
|
1523
|
+
"{workspaceRoot}/packages/template/base-app/base-react-app/**/*"
|
|
1524
|
+
],
|
|
1525
|
+
"outputs": ["{projectRoot}/dist"],
|
|
1526
|
+
"options": {
|
|
1527
|
+
"reset": true,
|
|
1528
|
+
"skipDependencyChanges": false
|
|
1529
|
+
}
|
|
1530
|
+
}
|
|
1531
|
+
}
|
|
1532
|
+
}
|
|
1533
|
+
```
|
|
1534
|
+
|
|
1535
|
+
#### `build-dist-app`
|
|
1536
|
+
|
|
1537
|
+
Builds the application in the dist folder by running `npm ci` and `npm run build`. This executor is useful for building feature apps after patches have been applied.
|
|
1538
|
+
|
|
1539
|
+
**Usage in `package.json`:**
|
|
1540
|
+
|
|
1541
|
+
```json
|
|
1542
|
+
{
|
|
1543
|
+
"nx": {
|
|
1544
|
+
"targets": {
|
|
1545
|
+
"test": {
|
|
1546
|
+
"executor": "@salesforce/webapp-template-cli-experimental:build-dist-app"
|
|
1547
|
+
}
|
|
1548
|
+
}
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1551
|
+
```
|
|
1552
|
+
|
|
1553
|
+
**Options:**
|
|
1554
|
+
|
|
1555
|
+
This executor has no configurable options. It automatically determines the build path based on the project structure.
|
|
1556
|
+
|
|
1557
|
+
**Workspace-level configuration (`nx.json`):**
|
|
1558
|
+
|
|
1559
|
+
```json
|
|
1560
|
+
{
|
|
1561
|
+
"targetDefaults": {
|
|
1562
|
+
"@salesforce/webapp-template-cli-experimental:build-dist-app": {
|
|
1563
|
+
"cache": true,
|
|
1564
|
+
"inputs": ["{projectRoot}/dist/**/*"],
|
|
1565
|
+
"outputs": ["{projectRoot}/dist"],
|
|
1566
|
+
"dependsOn": ["build"]
|
|
1567
|
+
}
|
|
1568
|
+
}
|
|
1569
|
+
}
|
|
1570
|
+
```
|
|
1571
|
+
|
|
1572
|
+
### Running Executors
|
|
1573
|
+
|
|
1574
|
+
Once configured, you can run the executors using Nx:
|
|
1575
|
+
|
|
1576
|
+
```bash
|
|
1577
|
+
# Apply patches to a feature project
|
|
1578
|
+
nx build feature-react-global-search
|
|
1579
|
+
|
|
1580
|
+
# Build the dist app
|
|
1581
|
+
nx test feature-react-global-search
|
|
1582
|
+
|
|
1583
|
+
# Run both in sequence (test depends on build)
|
|
1584
|
+
nx run-many -t build test
|
|
1585
|
+
```
|
|
1586
|
+
|
|
1587
|
+
### How It Works
|
|
1588
|
+
|
|
1589
|
+
1. **apply-patches executor**:
|
|
1590
|
+
- Reads project configuration from Nx workspace
|
|
1591
|
+
- Determines feature path and base app path
|
|
1592
|
+
- Calls the CLI's `applyPatchesCommand` function
|
|
1593
|
+
- Creates the dist directory with merged feature and base app files
|
|
1594
|
+
|
|
1595
|
+
2. **build-dist-app executor**:
|
|
1596
|
+
- Locates the built application in `dist/force-app/main/default/webapplications/<project-name>/`
|
|
1597
|
+
- Runs `npm ci` to install dependencies
|
|
1598
|
+
- Runs `npm run build` to build the application
|
|
1599
|
+
- Suitable for CI/CD pipelines and automated testing
|
|
1600
|
+
|
|
1601
|
+
### Benefits
|
|
1602
|
+
|
|
1603
|
+
- **Nx Caching**: Both executors support Nx caching for faster builds
|
|
1604
|
+
- **Dependency Graph**: Nx understands dependencies between features and builds them in correct order
|
|
1605
|
+
- **Workspace Integration**: Seamlessly integrates with Nx workspace commands
|
|
1606
|
+
- **Type Safety**: Full TypeScript support with schema validation
|
|
1607
|
+
- **Incremental Builds**: Only rebuilds projects when inputs change
|
|
1608
|
+
|
|
1456
1609
|
## Development
|
|
1457
1610
|
|
|
1458
1611
|
```bash
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ExecutorContext } from "@nx/devkit";
|
|
2
|
+
import type { ApplyPatchesExecutorOptions } from "./schema";
|
|
3
|
+
/**
|
|
4
|
+
* Result of the executor
|
|
5
|
+
*/
|
|
6
|
+
export interface ApplyPatchesExecutorResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Nx executor for applying template patches
|
|
11
|
+
*
|
|
12
|
+
* This executor wraps the apply-patches CLI command and automatically determines paths
|
|
13
|
+
* based on the Nx project configuration.
|
|
14
|
+
*
|
|
15
|
+
* @param options - Executor options
|
|
16
|
+
* @param context - Nx executor context
|
|
17
|
+
* @returns Executor result with success status
|
|
18
|
+
*/
|
|
19
|
+
export default function runExecutor(options: ApplyPatchesExecutorOptions, context: ExecutorContext): Promise<ApplyPatchesExecutorResult>;
|
|
20
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../src/nx-plugin/executors/apply-patches/executor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,eAAe,EAAU,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;;GASG;AACH,wBAA8B,WAAW,CACxC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,0BAA0B,CAAC,CAgErC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026, Salesforce, Inc.,
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* For full license text, see the LICENSE.txt file
|
|
5
|
+
*/
|
|
6
|
+
import { execSync } from "child_process";
|
|
7
|
+
import { join } from "path";
|
|
8
|
+
import { logger } from "@nx/devkit";
|
|
9
|
+
/**
|
|
10
|
+
* Nx executor for applying template patches
|
|
11
|
+
*
|
|
12
|
+
* This executor wraps the apply-patches CLI command and automatically determines paths
|
|
13
|
+
* based on the Nx project configuration.
|
|
14
|
+
*
|
|
15
|
+
* @param options - Executor options
|
|
16
|
+
* @param context - Nx executor context
|
|
17
|
+
* @returns Executor result with success status
|
|
18
|
+
*/
|
|
19
|
+
export default async function runExecutor(options, context) {
|
|
20
|
+
try {
|
|
21
|
+
// Validate that we have a project name
|
|
22
|
+
if (!context.projectName) {
|
|
23
|
+
logger.error("Project name is required");
|
|
24
|
+
return { success: false };
|
|
25
|
+
}
|
|
26
|
+
// Get project configuration
|
|
27
|
+
const project = context.projectGraph?.nodes[context.projectName];
|
|
28
|
+
if (!project) {
|
|
29
|
+
logger.error(`Project ${context.projectName} not found in project graph`);
|
|
30
|
+
return { success: false };
|
|
31
|
+
}
|
|
32
|
+
// Get workspace root (absolute path)
|
|
33
|
+
const workspaceRoot = context.root;
|
|
34
|
+
// Get project root (relative to workspace root)
|
|
35
|
+
const projectRoot = project.data.root;
|
|
36
|
+
// Build paths for CLI command
|
|
37
|
+
const baseAppPath = options.baseAppPath || "packages/template/base-app/base-react-app";
|
|
38
|
+
const outputDir = options.outputDir || "dist";
|
|
39
|
+
logger.info(`Applying patches for ${context.projectName}...`);
|
|
40
|
+
logger.info(` Feature path: ${projectRoot}`);
|
|
41
|
+
logger.info(` Base app: ${baseAppPath}`);
|
|
42
|
+
logger.info(` Output: ${join(projectRoot, outputDir)}`);
|
|
43
|
+
// Execute the CLI command via npx tsx
|
|
44
|
+
const cliPath = "packages/template/cli/src/index.ts";
|
|
45
|
+
const outputPath = join(projectRoot, outputDir);
|
|
46
|
+
/*
|
|
47
|
+
* Unfortunately using applyPatchesCommand directly encounters module import errors
|
|
48
|
+
* when it comes to `feature.ts`
|
|
49
|
+
*/
|
|
50
|
+
// Build command with arguments
|
|
51
|
+
let command = `npx tsx ${cliPath} apply-patches ${projectRoot} ${baseAppPath} ${outputPath}`;
|
|
52
|
+
// Add flags
|
|
53
|
+
if (options.reset !== false) {
|
|
54
|
+
command += " --reset";
|
|
55
|
+
}
|
|
56
|
+
if (options.skipDependencyChanges) {
|
|
57
|
+
command += " --skip-dependency-changes";
|
|
58
|
+
}
|
|
59
|
+
logger.info(` Executing: ${command}`);
|
|
60
|
+
execSync(command, {
|
|
61
|
+
cwd: workspaceRoot,
|
|
62
|
+
stdio: "inherit",
|
|
63
|
+
env: process.env,
|
|
64
|
+
});
|
|
65
|
+
return { success: true };
|
|
66
|
+
}
|
|
67
|
+
catch (error) {
|
|
68
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
69
|
+
logger.error(`Failed to apply patches: ${errorMessage}`);
|
|
70
|
+
return { success: false };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/nx-plugin/executors/apply-patches/executor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAwB,MAAM,EAAE,MAAM,YAAY,CAAC;AAU1D;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACxC,OAAoC,EACpC,OAAwB;IAExB,IAAI,CAAC;QACJ,uCAAuC;QACvC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,4BAA4B;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,WAAW,6BAA6B,CAAC,CAAC;YAC1E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,qCAAqC;QACrC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;QAEnC,gDAAgD;QAChD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAEtC,8BAA8B;QAC9B,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,2CAA2C,CAAC;QACvF,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC;QAE9C,MAAM,CAAC,IAAI,CAAC,wBAAwB,OAAO,CAAC,WAAW,KAAK,CAAC,CAAC;QAC9D,MAAM,CAAC,IAAI,CAAC,mBAAmB,WAAW,EAAE,CAAC,CAAC;QAC9C,MAAM,CAAC,IAAI,CAAC,eAAe,WAAW,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAEzD,sCAAsC;QACtC,MAAM,OAAO,GAAG,oCAAoC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAEhD;;;WAGG;QAEH,+BAA+B;QAC/B,IAAI,OAAO,GAAG,WAAW,OAAO,kBAAkB,WAAW,IAAI,WAAW,IAAI,UAAU,EAAE,CAAC;QAE7F,YAAY;QACZ,IAAI,OAAO,CAAC,KAAK,KAAK,KAAK,EAAE,CAAC;YAC7B,OAAO,IAAI,UAAU,CAAC;QACvB,CAAC;QACD,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACnC,OAAO,IAAI,4BAA4B,CAAC;QACzC,CAAC;QAED,MAAM,CAAC,IAAI,CAAC,gBAAgB,OAAO,EAAE,CAAC,CAAC;QAEvC,QAAQ,CAAC,OAAO,EAAE;YACjB,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QAEH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QACzD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;AACF,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type ExecutorContext } from "@nx/devkit";
|
|
2
|
+
import type { BuildDistAppExecutorOptions } from "./schema";
|
|
3
|
+
/**
|
|
4
|
+
* Result of the executor
|
|
5
|
+
*/
|
|
6
|
+
export interface BuildDistAppExecutorResult {
|
|
7
|
+
success: boolean;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Nx executor for building the application in the dist folder
|
|
11
|
+
*
|
|
12
|
+
* This executor navigates to the project's dist folder and runs npm ci followed by npm run build.
|
|
13
|
+
*
|
|
14
|
+
* @param options - Executor options
|
|
15
|
+
* @param context - Nx executor context
|
|
16
|
+
* @returns Executor result with success status
|
|
17
|
+
*/
|
|
18
|
+
export default function runExecutor(options: BuildDistAppExecutorOptions, context: ExecutorContext): Promise<BuildDistAppExecutorResult>;
|
|
19
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../../../../src/nx-plugin/executors/build-dist-app/executor.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,eAAe,EAAU,MAAM,YAAY,CAAC;AAC1D,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,UAAU,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,0BAA0B;IAC1C,OAAO,EAAE,OAAO,CAAC;CACjB;AAED;;;;;;;;GAQG;AACH,wBAA8B,WAAW,CACxC,OAAO,EAAE,2BAA2B,EACpC,OAAO,EAAE,eAAe,GACtB,OAAO,CAAC,0BAA0B,CAAC,CAyDrC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2026, Salesforce, Inc.,
|
|
3
|
+
* All rights reserved.
|
|
4
|
+
* For full license text, see the LICENSE.txt file
|
|
5
|
+
*/
|
|
6
|
+
import { execSync } from "child_process";
|
|
7
|
+
import { join, basename } from "path";
|
|
8
|
+
import { logger } from "@nx/devkit";
|
|
9
|
+
/**
|
|
10
|
+
* Nx executor for building the application in the dist folder
|
|
11
|
+
*
|
|
12
|
+
* This executor navigates to the project's dist folder and runs npm ci followed by npm run build.
|
|
13
|
+
*
|
|
14
|
+
* @param options - Executor options
|
|
15
|
+
* @param context - Nx executor context
|
|
16
|
+
* @returns Executor result with success status
|
|
17
|
+
*/
|
|
18
|
+
export default async function runExecutor(options, context) {
|
|
19
|
+
try {
|
|
20
|
+
// Validate that we have a project name
|
|
21
|
+
if (!context.projectName) {
|
|
22
|
+
logger.error("Project name is required");
|
|
23
|
+
return { success: false };
|
|
24
|
+
}
|
|
25
|
+
// Get project configuration
|
|
26
|
+
const project = context.projectGraph?.nodes[context.projectName];
|
|
27
|
+
if (!project) {
|
|
28
|
+
logger.error(`Project ${context.projectName} not found in project graph`);
|
|
29
|
+
return { success: false };
|
|
30
|
+
}
|
|
31
|
+
// Get workspace root (absolute path)
|
|
32
|
+
const workspaceRoot = context.root;
|
|
33
|
+
// Get project root (relative to workspace root)
|
|
34
|
+
const projectRoot = project.data.root;
|
|
35
|
+
// Get the folder name from the project root path
|
|
36
|
+
const projectFolderName = basename(projectRoot);
|
|
37
|
+
// Build the path to the dist folder (static path)
|
|
38
|
+
const targetPath = join(workspaceRoot, projectRoot, "dist/force-app/main/default/webapplications", projectFolderName);
|
|
39
|
+
logger.info(`Building application in ${targetPath}...`);
|
|
40
|
+
// Execute npm ci
|
|
41
|
+
logger.info("Running npm ci...");
|
|
42
|
+
execSync("npm ci", {
|
|
43
|
+
cwd: targetPath,
|
|
44
|
+
stdio: "inherit",
|
|
45
|
+
env: process.env,
|
|
46
|
+
});
|
|
47
|
+
// Execute npm run build
|
|
48
|
+
logger.info("Running npm run build...");
|
|
49
|
+
execSync("npm run build", {
|
|
50
|
+
cwd: targetPath,
|
|
51
|
+
stdio: "inherit",
|
|
52
|
+
env: process.env,
|
|
53
|
+
});
|
|
54
|
+
logger.info("Build completed successfully");
|
|
55
|
+
return { success: true };
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
59
|
+
logger.error(`Failed to build dist app: ${errorMessage}`);
|
|
60
|
+
return { success: false };
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=executor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../../src/nx-plugin/executors/build-dist-app/executor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AACtC,OAAO,EAAwB,MAAM,EAAE,MAAM,YAAY,CAAC;AAU1D;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,WAAW,CACxC,OAAoC,EACpC,OAAwB;IAExB,IAAI,CAAC;QACJ,uCAAuC;QACvC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAC1B,MAAM,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;YACzC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,4BAA4B;QAC5B,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QACjE,IAAI,CAAC,OAAO,EAAE,CAAC;YACd,MAAM,CAAC,KAAK,CAAC,WAAW,OAAO,CAAC,WAAW,6BAA6B,CAAC,CAAC;YAC1E,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC3B,CAAC;QAED,qCAAqC;QACrC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;QAEnC,gDAAgD;QAChD,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;QAEtC,iDAAiD;QACjD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;QAEhD,kDAAkD;QAClD,MAAM,UAAU,GAAG,IAAI,CACtB,aAAa,EACb,WAAW,EACX,6CAA6C,EAC7C,iBAAiB,CACjB,CAAC;QAEF,MAAM,CAAC,IAAI,CAAC,2BAA2B,UAAU,KAAK,CAAC,CAAC;QAExD,iBAAiB;QACjB,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,QAAQ,CAAC,QAAQ,EAAE;YAClB,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QAEH,wBAAwB;QACxB,MAAM,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QACxC,QAAQ,CAAC,eAAe,EAAE;YACzB,GAAG,EAAE,UAAU;YACf,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;QAC5C,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC1B,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,MAAM,YAAY,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5E,MAAM,CAAC,KAAK,CAAC,6BAA6B,YAAY,EAAE,CAAC,CAAC;QAC1D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC;AACF,CAAC"}
|
package/executors.json
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"executors": {
|
|
3
|
+
"apply-patches": {
|
|
4
|
+
"implementation": "./src/nx-plugin/executors/apply-patches/executor.ts",
|
|
5
|
+
"schema": "./src/nx-plugin/executors/apply-patches/schema.json",
|
|
6
|
+
"description": "Applies template patches to create feature apps"
|
|
7
|
+
},
|
|
8
|
+
"build-dist-app": {
|
|
9
|
+
"implementation": "./src/nx-plugin/executors/build-dist-app/executor.ts",
|
|
10
|
+
"schema": "./src/nx-plugin/executors/build-dist-app/schema.json",
|
|
11
|
+
"description": "Builds the application in the dist folder by running npm ci and npm run build"
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
package/package.json
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salesforce/webapp-template-cli-experimental",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"description": "CLI tool for applying feature patches to base apps",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"files": [
|
|
8
|
-
"dist"
|
|
8
|
+
"dist",
|
|
9
|
+
"executors.json"
|
|
9
10
|
],
|
|
10
11
|
"publishConfig": {
|
|
11
12
|
"access": "public"
|
|
@@ -13,6 +14,7 @@
|
|
|
13
14
|
"bin": {
|
|
14
15
|
"apply-patches": "./dist/index.js"
|
|
15
16
|
},
|
|
17
|
+
"executors": "./executors.json",
|
|
16
18
|
"scripts": {
|
|
17
19
|
"build": "tsc",
|
|
18
20
|
"clean": "rm -rf dist",
|
|
@@ -24,10 +26,12 @@
|
|
|
24
26
|
"test:coverage": "vitest run --coverage"
|
|
25
27
|
},
|
|
26
28
|
"dependencies": {
|
|
29
|
+
"@nx/devkit": "^20.8.4",
|
|
27
30
|
"chalk": "^5.3.0",
|
|
28
31
|
"commander": "^12.0.0",
|
|
29
32
|
"fs-extra": "^11.2.0",
|
|
30
33
|
"ts-morph": "^27.0.2",
|
|
34
|
+
"tslib": "^2.8.1",
|
|
31
35
|
"turbowatch": "^2.29.4"
|
|
32
36
|
},
|
|
33
37
|
"devDependencies": {
|
|
@@ -41,5 +45,5 @@
|
|
|
41
45
|
"typescript": "~5.9.3",
|
|
42
46
|
"vitest": "^4.0.17"
|
|
43
47
|
},
|
|
44
|
-
"gitHead": "
|
|
48
|
+
"gitHead": "78cd04e09a42d965201f46edd5850465f7eda353"
|
|
45
49
|
}
|