@equinor/echo-cli 1.0.0-beta-31 → 1.0.0-beta-33
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/lib/config/common/buildAndCopyEchoHostForProd.js +2 -2
- package/lib/config/common/buildAndCopyEchoHostForProd.js.map +1 -1
- package/lib/config/common/copyFile.d.ts +1 -15
- package/lib/config/common/copyFile.js +7 -24
- package/lib/config/common/copyFile.js.map +1 -1
- package/lib/const/common.d.ts +1 -0
- package/lib/const/common.js +1 -0
- package/lib/const/common.js.map +1 -1
- package/lib/echo-build-dev-host.js +2 -2
- package/lib/echo-build-dev-host.js.map +1 -1
- package/lib/echo-dev-host/src/components/dummySearchPanel/DummySearchPanel.tsx +28 -28
- package/lib/echo-dev-host/src/components/dummySearchPanel/dummySearchPanel.module.css +13 -13
- package/lib/echo-update-dev-host-deps.js +40 -5
- package/lib/echo-update-dev-host-deps.js.map +1 -1
- package/lib/tools/buildScripts/buildAndCopyDevHost.d.ts +1 -3
- package/lib/tools/buildScripts/buildAndCopyDevHost.js +12 -33
- package/lib/tools/buildScripts/buildAndCopyDevHost.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import chalk from 'chalk';
|
|
2
2
|
import path from 'path';
|
|
3
|
+
import { ECHO_HOST_TEMP_BUILD_FOLDER } from '../../const/common.js';
|
|
3
4
|
import { buildAndCopyDevHost } from '../../tools/buildScripts/buildAndCopyDevHost.js';
|
|
4
5
|
import { findTopNodeModulesWithEchoCli } from '../../utils/findTopLevelNodeModulesWithCli.js';
|
|
5
6
|
/**
|
|
@@ -29,9 +30,8 @@ export async function buildAndCopyEchoHostForProd(options) {
|
|
|
29
30
|
const cliNodeModules = path.resolve(topMostNodeModulesPathWithEchoCli, '@equinor', 'echo-cli');
|
|
30
31
|
await buildAndCopyDevHost({
|
|
31
32
|
cliNodeModules,
|
|
32
|
-
tmpDevHostFolder: path.resolve(options.currentDir,
|
|
33
|
+
tmpDevHostFolder: path.resolve(options.currentDir, ECHO_HOST_TEMP_BUILD_FOLDER),
|
|
33
34
|
finalOutputDir,
|
|
34
|
-
reuseTmpFolder: false,
|
|
35
35
|
skipFetchingLatestVersions: true,
|
|
36
36
|
installAndBuild: true
|
|
37
37
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildAndCopyEchoHostForProd.js","sourceRoot":"","sources":["../../../src/config/common/buildAndCopyEchoHostForProd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAG9F;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAA2B;IACzE,kCAAkC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACrE,MAAM,iCAAiC,GAAG,6BAA6B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5F,IAAI,CAAC,iCAAiC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CACT,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,kFAAkF,CAAC;YAC9F,KAAK,CAAC,MAAM,CACR,8GAA8G,CACjH,CACR,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/F,MAAM,mBAAmB,CAAC;QACtB,cAAc;QACd,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"buildAndCopyEchoHostForProd.js","sourceRoot":"","sources":["../../../src/config/common/buildAndCopyEchoHostForProd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACpE,OAAO,EAAE,mBAAmB,EAAE,MAAM,iDAAiD,CAAC;AACtF,OAAO,EAAE,6BAA6B,EAAE,MAAM,+CAA+C,CAAC;AAG9F;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAA2B;IACzE,kCAAkC;IAClC,MAAM,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACvF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IACrE,MAAM,iCAAiC,GAAG,6BAA6B,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;IAE5F,IAAI,CAAC,iCAAiC,EAAE,CAAC;QACrC,OAAO,CAAC,KAAK,CACT,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,kFAAkF,CAAC;YAC9F,KAAK,CAAC,MAAM,CACR,8GAA8G,CACjH,CACR,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,iCAAiC,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;IAE/F,MAAM,mBAAmB,CAAC;QACtB,cAAc;QACd,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,UAAU,EAAE,2BAA2B,CAAC;QAC/E,cAAc;QACd,0BAA0B,EAAE,IAAI;QAChC,eAAe,EAAE,IAAI;KACxB,CAAC,CAAC;AACP,CAAC"}
|
|
@@ -1,16 +1,2 @@
|
|
|
1
1
|
import { EchoWebpackOptions } from './initOptions.js';
|
|
2
|
-
|
|
3
|
-
* Builds and copies the echo-dev-host application for production use.
|
|
4
|
-
*
|
|
5
|
-
* This function resolves the output directory based on the provided options,
|
|
6
|
-
* removes any leading slashes from the content base path, and then invokes
|
|
7
|
-
* the development host build and copy process with production settings.
|
|
8
|
-
*
|
|
9
|
-
* @param options - The configuration options for the Echo Webpack build process.
|
|
10
|
-
* - `echoModuleConfig.server.contentBase`: The build directory for the given echo module / app. Usually `dist`.
|
|
11
|
-
* Usually defined in echoModule.config.json for the given ehco module / app.
|
|
12
|
-
* - `currentDir`: The current working directory.
|
|
13
|
-
*
|
|
14
|
-
* @returns A promise that resolves when the build and copy process is complete.
|
|
15
|
-
*/
|
|
16
|
-
export declare function buildAndCopyEchoHostForProd(options: EchoWebpackOptions): Promise<void>;
|
|
2
|
+
export declare function copyClientFiles(options: EchoWebpackOptions): Promise<boolean>;
|
|
@@ -1,27 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
* removes any leading slashes from the content base path, and then invokes
|
|
8
|
-
* the development host build and copy process with production settings.
|
|
9
|
-
*
|
|
10
|
-
* @param options - The configuration options for the Echo Webpack build process.
|
|
11
|
-
* - `echoModuleConfig.server.contentBase`: The build directory for the given echo module / app. Usually `dist`.
|
|
12
|
-
* Usually defined in echoModule.config.json for the given ehco module / app.
|
|
13
|
-
* - `currentDir`: The current working directory.
|
|
14
|
-
*
|
|
15
|
-
* @returns A promise that resolves when the build and copy process is complete.
|
|
16
|
-
*/
|
|
17
|
-
export async function buildAndCopyEchoHostForProd(options) {
|
|
18
|
-
// Remove leading slash if present
|
|
19
|
-
const contentBase = options.echoModuleConfig.server.contentBase.replace(/^[/\\]+/, '');
|
|
20
|
-
const finalOutputDir = path.resolve(options.currentDir, contentBase);
|
|
21
|
-
await buildAndCopyDevHost({
|
|
22
|
-
consumerRoot: options.currentDir,
|
|
23
|
-
finalOutputDir,
|
|
24
|
-
installAndBuild: true
|
|
1
|
+
import ncp from 'ncp';
|
|
2
|
+
import { promisify } from 'util';
|
|
3
|
+
const copy = promisify(ncp);
|
|
4
|
+
export async function copyClientFiles(options) {
|
|
5
|
+
const success = await copy(options.wwwRoot, options.currentDir + options.echoModuleConfig.server.contentBase, {
|
|
6
|
+
clobber: false
|
|
25
7
|
});
|
|
8
|
+
return success;
|
|
26
9
|
}
|
|
27
10
|
//# sourceMappingURL=copyFile.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copyFile.js","sourceRoot":"","sources":["../../../src/config/common/copyFile.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"copyFile.js","sourceRoot":"","sources":["../../../src/config/common/copyFile.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAGjC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,CAAC,CAAC;AAE5B,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA2B;IAC7D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,UAAU,GAAG,OAAO,CAAC,gBAAgB,CAAC,MAAM,CAAC,WAAW,EAAE;QAC1G,OAAO,EAAE,KAAK;KACjB,CAAC,CAAC;IACH,OAAO,OAAO,CAAC;AACnB,CAAC"}
|
package/lib/const/common.d.ts
CHANGED
|
@@ -2,3 +2,4 @@ export declare const REQUIRED_REF = "echoDepLoader";
|
|
|
2
2
|
export declare const ECHO_MODULE_ID_PATH = "/echoModuleId.json";
|
|
3
3
|
export declare const ECHO_MODULE_CONFIG_PATH = "/echoModule.config.json";
|
|
4
4
|
export declare const ECHO_HOST_BUILD_OUTPUT_FOLDER = "echo-dev-host-build";
|
|
5
|
+
export declare const ECHO_HOST_TEMP_BUILD_FOLDER = "echo-dev-host-tmp";
|
package/lib/const/common.js
CHANGED
|
@@ -2,4 +2,5 @@ export const REQUIRED_REF = 'echoDepLoader';
|
|
|
2
2
|
export const ECHO_MODULE_ID_PATH = '/echoModuleId.json';
|
|
3
3
|
export const ECHO_MODULE_CONFIG_PATH = '/echoModule.config.json';
|
|
4
4
|
export const ECHO_HOST_BUILD_OUTPUT_FOLDER = 'echo-dev-host-build';
|
|
5
|
+
export const ECHO_HOST_TEMP_BUILD_FOLDER = 'echo-dev-host-tmp';
|
|
5
6
|
//# sourceMappingURL=common.js.map
|
package/lib/const/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/const/common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../src/const/common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC;AAE5C,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC;AACxD,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AACjE,MAAM,CAAC,MAAM,6BAA6B,GAAG,qBAAqB,CAAC;AACnE,MAAM,CAAC,MAAM,2BAA2B,GAAG,mBAAmB,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from '@oclif/core';
|
|
3
3
|
import path from 'path';
|
|
4
|
-
import { ECHO_HOST_BUILD_OUTPUT_FOLDER } from './const/common.js';
|
|
4
|
+
import { ECHO_HOST_BUILD_OUTPUT_FOLDER, ECHO_HOST_TEMP_BUILD_FOLDER } from './const/common.js';
|
|
5
5
|
import { buildAndCopyDevHost } from './tools/buildScripts/buildAndCopyDevHost.js';
|
|
6
6
|
export default class BuildDevHost extends Command {
|
|
7
7
|
static description = 'Build echo-dev-host locally with current echo lib versions';
|
|
@@ -10,7 +10,7 @@ export default class BuildDevHost extends Command {
|
|
|
10
10
|
const finalOutput = path.join(cliNodeModules, ECHO_HOST_BUILD_OUTPUT_FOLDER);
|
|
11
11
|
await buildAndCopyDevHost({
|
|
12
12
|
cliNodeModules,
|
|
13
|
-
tmpDevHostFolder: path.resolve(process.cwd(),
|
|
13
|
+
tmpDevHostFolder: path.resolve(process.cwd(), ECHO_HOST_TEMP_BUILD_FOLDER),
|
|
14
14
|
finalOutputDir: finalOutput
|
|
15
15
|
});
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echo-build-dev-host.js","sourceRoot":"","sources":["../src/echo-build-dev-host.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"echo-build-dev-host.js","sourceRoot":"","sources":["../src/echo-build-dev-host.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,2BAA2B,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,EAAE,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAElF,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,OAAO;IAC7C,MAAM,CAAC,WAAW,GAAG,4DAA4D,CAAC;IAElF,KAAK,CAAC,GAAG;QACL,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;QAC3F,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE,6BAA6B,CAAC,CAAC;QAE7E,MAAM,mBAAmB,CAAC;YACtB,cAAc;YACd,gBAAgB,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,2BAA2B,CAAC;YAC1E,cAAc,EAAE,WAAW;SAC9B,CAAC,CAAC;IACP,CAAC;;AAGL,YAAY,CAAC,GAAG,EAAE,CAAC"}
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
import { ECHO_CORE_SEARCH, Panel, PanelType } from '@equinor/echo-core';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import style from './dummySearchPanel.module.css';
|
|
4
|
-
|
|
5
|
-
const DummySearchMenu: React.FC = () => {
|
|
6
|
-
return (
|
|
7
|
-
<div className={style.wrapper}>
|
|
8
|
-
<div className={style.panel}>
|
|
9
|
-
<h3>SearchMenu</h3>
|
|
10
|
-
<p>
|
|
11
|
-
You're running your echo app in <b>echo-dev-host</b>, a host application for echo apps / modules.
|
|
12
|
-
</p>
|
|
13
|
-
<p>
|
|
14
|
-
<b>echo-dev-host</b> is a bare-bones version of the original app, echopediaWeb. The purpose of it is
|
|
15
|
-
to help echo teams to develop their app independently from echopediaWeb itself.
|
|
16
|
-
</p>
|
|
17
|
-
</div>
|
|
18
|
-
</div>
|
|
19
|
-
);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
export const dummySearchPanel: Panel = {
|
|
23
|
-
component: DummySearchMenu,
|
|
24
|
-
panelType: PanelType.left,
|
|
25
|
-
key: ECHO_CORE_SEARCH,
|
|
26
|
-
icon: 'search',
|
|
27
|
-
label: 'Search'
|
|
28
|
-
};
|
|
1
|
+
import { ECHO_CORE_SEARCH, Panel, PanelType } from '@equinor/echo-core';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import style from './dummySearchPanel.module.css';
|
|
4
|
+
|
|
5
|
+
const DummySearchMenu: React.FC = () => {
|
|
6
|
+
return (
|
|
7
|
+
<div className={style.wrapper}>
|
|
8
|
+
<div className={style.panel}>
|
|
9
|
+
<h3>SearchMenu</h3>
|
|
10
|
+
<p>
|
|
11
|
+
You're running your echo app in <b>echo-dev-host</b>, a host application for echo apps / modules.
|
|
12
|
+
</p>
|
|
13
|
+
<p>
|
|
14
|
+
<b>echo-dev-host</b> is a bare-bones version of the original app, echopediaWeb. The purpose of it is
|
|
15
|
+
to help echo teams to develop their app independently from echopediaWeb itself.
|
|
16
|
+
</p>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export const dummySearchPanel: Panel = {
|
|
23
|
+
component: DummySearchMenu,
|
|
24
|
+
panelType: PanelType.left,
|
|
25
|
+
key: ECHO_CORE_SEARCH,
|
|
26
|
+
icon: 'search',
|
|
27
|
+
label: 'Search'
|
|
28
|
+
};
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
.panel {
|
|
2
|
-
padding: var(--small);
|
|
3
|
-
}
|
|
4
|
-
|
|
5
|
-
.wrapper {
|
|
6
|
-
display: flex;
|
|
7
|
-
flex-direction: column;
|
|
8
|
-
margin: 10px;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.close {
|
|
12
|
-
align-self: end;
|
|
13
|
-
}
|
|
1
|
+
.panel {
|
|
2
|
+
padding: var(--small);
|
|
3
|
+
}
|
|
4
|
+
|
|
5
|
+
.wrapper {
|
|
6
|
+
display: flex;
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
margin: 10px;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.close {
|
|
12
|
+
align-self: end;
|
|
13
|
+
}
|
|
@@ -5,7 +5,7 @@ import fs from 'fs-extra';
|
|
|
5
5
|
import inquirer from 'inquirer';
|
|
6
6
|
import ora from 'ora';
|
|
7
7
|
import path from 'path';
|
|
8
|
-
import { ECHO_HOST_BUILD_OUTPUT_FOLDER } from './const/common.js';
|
|
8
|
+
import { ECHO_HOST_BUILD_OUTPUT_FOLDER, ECHO_HOST_TEMP_BUILD_FOLDER } from './const/common.js';
|
|
9
9
|
import { buildAndCopyDevHost } from './tools/buildScripts/buildAndCopyDevHost.js';
|
|
10
10
|
import { getLatestPkgVersion } from './utils/getLatestPkgVersion.js';
|
|
11
11
|
/**
|
|
@@ -119,11 +119,46 @@ export default class UpdateDevHostEchoLibVersions extends Command {
|
|
|
119
119
|
const finalOutput = path.join(cliNodeModules, ECHO_HOST_BUILD_OUTPUT_FOLDER);
|
|
120
120
|
await buildAndCopyDevHost({
|
|
121
121
|
cliNodeModules,
|
|
122
|
-
tmpDevHostFolder: path.resolve(process.cwd(),
|
|
123
|
-
finalOutputDir: finalOutput
|
|
124
|
-
reuseTmpFolder: false
|
|
122
|
+
tmpDevHostFolder: path.resolve(process.cwd(), ECHO_HOST_TEMP_BUILD_FOLDER),
|
|
123
|
+
finalOutputDir: finalOutput
|
|
125
124
|
});
|
|
126
|
-
|
|
125
|
+
// --- Update consumer app's package.json ---
|
|
126
|
+
const consumerPkgPath = path.resolve(process.cwd(), 'package.json');
|
|
127
|
+
let consumerPkg;
|
|
128
|
+
try {
|
|
129
|
+
consumerPkg = fs.readJsonSync(consumerPkgPath);
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
this.error(`Could not read consumer app package.json at ${chalk.yellow(consumerPkgPath)}.`);
|
|
133
|
+
return;
|
|
134
|
+
}
|
|
135
|
+
// Helper to update a section and log changes
|
|
136
|
+
const updateSection = (sectionName) => {
|
|
137
|
+
const section = consumerPkg[sectionName] || {};
|
|
138
|
+
let sectionUpdated = false;
|
|
139
|
+
for (const lib of echoLibs) {
|
|
140
|
+
if (section[lib] && section[lib] !== deps[lib]) {
|
|
141
|
+
section[lib] = deps[lib];
|
|
142
|
+
sectionUpdated = true;
|
|
143
|
+
this.log(chalk.yellow(`Updated ${lib} in consumer app ${sectionName} to ${deps[lib]}`));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
if (sectionUpdated) {
|
|
147
|
+
consumerPkg[sectionName] = section;
|
|
148
|
+
}
|
|
149
|
+
return sectionUpdated;
|
|
150
|
+
};
|
|
151
|
+
const updatedDeps = updateSection('dependencies');
|
|
152
|
+
const updatedDevDeps = updateSection('devDependencies');
|
|
153
|
+
const updatedPeerDeps = updateSection('peerDependencies');
|
|
154
|
+
if (updatedDeps || updatedDevDeps || updatedPeerDeps) {
|
|
155
|
+
fs.writeJsonSync(consumerPkgPath, consumerPkg, { spaces: 2 });
|
|
156
|
+
this.log(chalk.green('\nConsumer app package.json updated with new echo library versions.\n'));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
this.log(chalk.gray('\nNo echo library versions needed updating in consumer app package.json.\n'));
|
|
160
|
+
}
|
|
161
|
+
console.log(`\nDon't forget to run npm install in your consumer app!\n`);
|
|
127
162
|
}
|
|
128
163
|
else {
|
|
129
164
|
console.log(`\nNo changes made to dependencies.\n`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"echo-update-dev-host-deps.js","sourceRoot":"","sources":["../src/echo-update-dev-host-deps.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,QAAQ,MAAM,UAAU,CAAC;AAChC,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"echo-update-dev-host-deps.js","sourceRoot":"","sources":["../src/echo-update-dev-host-deps.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,15 +10,13 @@
|
|
|
10
10
|
* @param params.tmpDevHostFolder - The path to the temporary dev host folder. This is where the dev host source code is copied to, and build output is generated.
|
|
11
11
|
* @param params.finalOutputDir - The directory where the build output should be copied.
|
|
12
12
|
* @param params.installAndBuild - Whether to run `npm install` and `npm run build` in the temporary folder. Defaults to `true`.
|
|
13
|
-
* @param params.reuseTmpFolder - Whether to reuse the existing temporary folder. If undefined and the folder exists, prompts the user.
|
|
14
13
|
*
|
|
15
14
|
* @returns A promise that resolves when the build and copy process is complete.
|
|
16
15
|
*/
|
|
17
|
-
export declare function buildAndCopyDevHost({ cliNodeModules, tmpDevHostFolder, finalOutputDir, installAndBuild, skipFetchingLatestVersions
|
|
16
|
+
export declare function buildAndCopyDevHost({ cliNodeModules, tmpDevHostFolder, finalOutputDir, installAndBuild, skipFetchingLatestVersions }: {
|
|
18
17
|
cliNodeModules: string;
|
|
19
18
|
tmpDevHostFolder: string;
|
|
20
19
|
finalOutputDir: string;
|
|
21
20
|
installAndBuild?: boolean;
|
|
22
21
|
skipFetchingLatestVersions?: boolean;
|
|
23
|
-
reuseTmpFolder?: boolean;
|
|
24
22
|
}): Promise<void>;
|
|
@@ -2,7 +2,6 @@ import chalk from 'chalk';
|
|
|
2
2
|
import { execSync } from 'child_process';
|
|
3
3
|
import figlet from 'figlet';
|
|
4
4
|
import fs from 'fs-extra';
|
|
5
|
-
import inquirer from 'inquirer';
|
|
6
5
|
import path from 'path';
|
|
7
6
|
import { ECHO_HOST_BUILD_OUTPUT_FOLDER } from '../../const/common.js';
|
|
8
7
|
import { printDevHostVersions } from '../../utils/printDevHostVersions.js';
|
|
@@ -18,11 +17,11 @@ import { printDevHostVersions } from '../../utils/printDevHostVersions.js';
|
|
|
18
17
|
* @param params.tmpDevHostFolder - The path to the temporary dev host folder. This is where the dev host source code is copied to, and build output is generated.
|
|
19
18
|
* @param params.finalOutputDir - The directory where the build output should be copied.
|
|
20
19
|
* @param params.installAndBuild - Whether to run `npm install` and `npm run build` in the temporary folder. Defaults to `true`.
|
|
21
|
-
* @param params.reuseTmpFolder - Whether to reuse the existing temporary folder. If undefined and the folder exists, prompts the user.
|
|
22
20
|
*
|
|
23
21
|
* @returns A promise that resolves when the build and copy process is complete.
|
|
24
22
|
*/
|
|
25
|
-
|
|
23
|
+
// ...existing code...
|
|
24
|
+
export async function buildAndCopyDevHost({ cliNodeModules, tmpDevHostFolder, finalOutputDir, installAndBuild = true, skipFetchingLatestVersions = false }) {
|
|
26
25
|
console.log(`${chalk.cyan.bold('echo-dev-host')} - by Echo Core Team`);
|
|
27
26
|
console.log('Minimalistic host application for local development of Echo applications.\n');
|
|
28
27
|
console.log(figlet.textSync('Echo Dev Host', {
|
|
@@ -33,37 +32,13 @@ export async function buildAndCopyDevHost({ cliNodeModules, tmpDevHostFolder, fi
|
|
|
33
32
|
const devHostSrc = path.join(cliNodeModules, 'lib', 'echo-dev-host');
|
|
34
33
|
const buildOutput = path.join(tmpDevHostFolder, ECHO_HOST_BUILD_OUTPUT_FOLDER);
|
|
35
34
|
const srcPkgJson = path.join(devHostSrc, 'package.json');
|
|
36
|
-
|
|
37
|
-
if (fs.existsSync(tmpDevHostFolder)
|
|
38
|
-
console.log(chalk.
|
|
39
|
-
|
|
40
|
-
`If you chose 'No', it will be removed and a new one will be created.\n`));
|
|
41
|
-
const answer = await inquirer.prompt([
|
|
42
|
-
{
|
|
43
|
-
type: 'confirm',
|
|
44
|
-
name: 'reuse',
|
|
45
|
-
message: `Reuse existing folder?`,
|
|
46
|
-
default: true
|
|
47
|
-
}
|
|
48
|
-
]);
|
|
49
|
-
shouldReuse = answer.reuse;
|
|
50
|
-
}
|
|
51
|
-
// 1. Prepare echo-dev-host-tmp
|
|
52
|
-
if (!fs.existsSync(tmpDevHostFolder) || shouldReuse === false) {
|
|
53
|
-
if (fs.existsSync(tmpDevHostFolder) && shouldReuse === false) {
|
|
54
|
-
console.log(chalk.yellowBright.bold(`\n[echo-dev-host] Removing existing temporary folder "${tmpDevHostFolder}"...\n`));
|
|
55
|
-
fs.removeSync(tmpDevHostFolder);
|
|
56
|
-
}
|
|
57
|
-
console.log(chalk.blueBright.bold(`\n[echo-dev-host] Copying echo-dev-host source to ${chalk.yellow(tmpDevHostFolder)}...\n`));
|
|
58
|
-
fs.copySync(devHostSrc, tmpDevHostFolder);
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
console.log(chalk.blueBright.bold(`\n[echo-dev-host] Temporary folder "${tmpDevHostFolder}" exists. Reusing it.\n`));
|
|
62
|
-
// Always copy (overwrite) package.json from source to tmpDevHostFolder
|
|
63
|
-
const srcPkgJson = path.join(devHostSrc, 'package.json');
|
|
64
|
-
const destPkgJson = path.join(tmpDevHostFolder, 'package.json');
|
|
65
|
-
fs.copySync(srcPkgJson, destPkgJson, { overwrite: true });
|
|
35
|
+
// Always remove and recreate the temporary folder
|
|
36
|
+
if (fs.existsSync(tmpDevHostFolder)) {
|
|
37
|
+
console.log(chalk.yellowBright.bold(`\n[echo-dev-host] Removing existing temporary folder "${tmpDevHostFolder}"...\n`));
|
|
38
|
+
fs.removeSync(tmpDevHostFolder);
|
|
66
39
|
}
|
|
40
|
+
console.log(chalk.blueBright.bold(`\n[echo-dev-host] Copying echo-dev-host source to ${chalk.yellow(tmpDevHostFolder)}...\n`));
|
|
41
|
+
fs.copySync(devHostSrc, tmpDevHostFolder);
|
|
67
42
|
// 2. npm install & build
|
|
68
43
|
if (installAndBuild) {
|
|
69
44
|
console.log(chalk.greenBright.bold('[echo-dev-host] Installing dependencies and building echo-dev-host...\n'));
|
|
@@ -75,6 +50,10 @@ export async function buildAndCopyDevHost({ cliNodeModules, tmpDevHostFolder, fi
|
|
|
75
50
|
// 3. Copy build output to final output directory
|
|
76
51
|
console.log(chalk.magentaBright.bold(`\n[echo-dev-host] Copying build output back to ${chalk.yellow(finalOutputDir)}...\n`));
|
|
77
52
|
fs.copySync(buildOutput, finalOutputDir);
|
|
53
|
+
if (fs.existsSync(tmpDevHostFolder)) {
|
|
54
|
+
console.log(chalk.yellowBright.bold(`\n[echo-dev-host] Removing temporary folder "${tmpDevHostFolder}" used for the build...\n`));
|
|
55
|
+
fs.removeSync(tmpDevHostFolder);
|
|
56
|
+
}
|
|
78
57
|
console.log(chalk.green.bold('[echo-dev-host] Build and copy complete! Now you can start your Echo app with "npm start"\n'));
|
|
79
58
|
}
|
|
80
59
|
//# sourceMappingURL=buildAndCopyDevHost.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildAndCopyDevHost.js","sourceRoot":"","sources":["../../../src/tools/buildScripts/buildAndCopyDevHost.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"buildAndCopyDevHost.js","sourceRoot":"","sources":["../../../src/tools/buildScripts/buildAndCopyDevHost.ts"],"names":[],"mappings":"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"}
|