@nizza/devkit 0.1.0-alpha.1 → 0.1.0-alpha.10
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/dist/cjs/executors/deploy/helpers.cjs +26 -0
- package/dist/cjs/executors/deploy/helpers.d.cts +4 -0
- package/dist/cjs/executors/deploy/index.cjs +22 -0
- package/dist/cjs/executors/deploy/index.d.cts +11 -0
- package/dist/cjs/executors/environments/helpers.cjs +62 -0
- package/dist/{src/executors/environments/helpers.d.ts → cjs/executors/environments/helpers.d.cts} +9 -5
- package/dist/cjs/executors/environments/index.cjs +60 -0
- package/dist/{src/executors/environments/executor.d.ts → cjs/executors/environments/index.d.cts} +5 -5
- package/dist/cjs/executors/publish/helpers.cjs +51 -0
- package/dist/{src/executors/publish/helpers.d.ts → cjs/executors/publish/helpers.d.cts} +3 -3
- package/dist/cjs/executors/publish/index.cjs +53 -0
- package/dist/cjs/executors/publish/index.d.cts +12 -0
- package/dist/cjs/executors/shared/utils.cjs +67 -0
- package/dist/cjs/executors/shared/utils.d.cts +27 -0
- package/dist/cjs/executors/update-executors-file/helpers.cjs +64 -0
- package/dist/cjs/executors/update-executors-file/helpers.d.cts +17 -0
- package/dist/cjs/executors/update-executors-file/index.cjs +38 -0
- package/dist/{src/executors/update-executors-file/executor.d.ts → cjs/executors/update-executors-file/index.d.cts} +5 -5
- package/dist/cjs/executors/vtex-link/constants.cjs +9 -0
- package/dist/cjs/executors/vtex-link/constants.d.cts +4 -0
- package/dist/cjs/executors/vtex-link/helpers.cjs +206 -0
- package/dist/{src/executors/vtex-link/helpers.d.ts → cjs/executors/vtex-link/helpers.d.cts} +15 -15
- package/dist/cjs/executors/vtex-link/index.cjs +30 -0
- package/dist/cjs/executors/vtex-link/index.d.cts +5 -0
- package/dist/cjs/index-0ce2daf7.d.ts +2 -0
- package/dist/cjs/index-17143e35.d.ts +2 -0
- package/dist/cjs/index-3080371d.d.ts +3 -0
- package/dist/cjs/index-f6330edc.d.ts +2 -0
- package/dist/cjs/index.cjs +71 -0
- package/dist/cjs/index.d.cts +10 -0
- package/dist/cjs/index.d.cts.map +1 -0
- package/dist/cjs/scripts/changeset-pre-mode.cjs +41 -0
- package/dist/cjs/scripts/changeset-pre-mode.d.cts +2 -0
- package/dist/cjs/scripts/index.cjs +7 -0
- package/dist/cjs/scripts/index.d.cts +1 -0
- package/dist/cjs/shared/logger.cjs +98 -0
- package/dist/{src/logger.d.ts → cjs/shared/logger.d.cts} +5 -6
- package/dist/cjs/shared/utils.cjs +64 -0
- package/dist/cjs/shared/utils.d.cts +19 -0
- package/dist/{src/executors/vtex-link/types.d.ts → cjs/types-1282e639.d.ts} +3 -3
- package/dist/cjs/types-7377dcc9.d.ts +4 -0
- package/dist/cjs/types-763439e4.d.ts +14 -0
- package/dist/cjs/vite/config-builder/configs/app.cjs +13 -0
- package/dist/cjs/vite/config-builder/configs/app.d.cts +4 -0
- package/dist/cjs/vite/config-builder/configs/base.cjs +58 -0
- package/dist/cjs/vite/config-builder/configs/base.d.cts +4 -0
- package/dist/cjs/vite/config-builder/configs/index.cjs +36 -0
- package/dist/cjs/vite/config-builder/configs/index.d.cts +7 -0
- package/dist/cjs/vite/config-builder/configs/lib.cjs +57 -0
- package/dist/cjs/vite/config-builder/configs/lib.d.cts +4 -0
- package/dist/cjs/vite/config-builder/configs/script.cjs +46 -0
- package/dist/cjs/vite/config-builder/configs/script.d.cts +4 -0
- package/dist/cjs/vite/config-builder/main.cjs +42 -0
- package/dist/cjs/vite/config-builder/main.d.cts +10 -0
- package/dist/cjs/vite/config-builder/plugins.cjs +93 -0
- package/dist/{src/vite/config-builder/plugins.d.ts → cjs/vite/config-builder/plugins.d.cts} +7 -7
- package/dist/cjs/vite/config-builder/shared/types.cjs +33 -0
- package/dist/{src/vite/config-builder/shared/types.d.ts → cjs/vite/config-builder/shared/types.d.cts} +17 -17
- package/dist/cjs/vite/config-builder/shared/utils/helpers.cjs +115 -0
- package/dist/{src/vite/config-builder/shared/utils/helpers.d.ts → cjs/vite/config-builder/shared/utils/helpers.d.cts} +9 -19
- package/dist/cjs/vite/config-builder/shared/utils/projectConfig.cjs +114 -0
- package/dist/{src/vite/config-builder/shared/utils/projectConfig.d.ts → cjs/vite/config-builder/shared/utils/projectConfig.d.cts} +8 -8
- package/dist/cjs/vite/config-builder/shared/utils/viteCommand.cjs +59 -0
- package/dist/{src/vite/config-builder/shared/utils/viteCommand.d.ts → cjs/vite/config-builder/shared/utils/viteCommand.d.cts} +4 -4
- package/dist/{src/vite/plugins/shadow-dom-inject-css/index.js → cjs/vite/plugins/shadow-dom-inject-css/index.cjs} +4 -19
- package/dist/cjs/vite/plugins/shadow-dom-inject-css/index.d.cts +7 -0
- package/dist/{src/vite/plugins/third-party-css-inject/main.js → cjs/vite/plugins/third-party-css-inject/main.cjs} +13 -14
- package/dist/cjs/vite/plugins/third-party-css-inject/main.d.cts +17 -0
- package/dist/{src/vite/plugins/third-party-css-inject/utils.js → cjs/vite/plugins/third-party-css-inject/utils.cjs} +8 -20
- package/dist/cjs/vite/plugins/third-party-css-inject/utils.d.cts +5 -0
- package/dist/esm/executors/deploy/helpers.d.mts +4 -0
- package/dist/esm/executors/deploy/helpers.mjs +22 -0
- package/dist/esm/executors/deploy/index.d.mts +11 -0
- package/dist/esm/executors/deploy/index.mjs +20 -0
- package/dist/esm/executors/deploy/schema.json +41 -0
- package/dist/esm/executors/environments/helpers.d.mts +25 -0
- package/dist/esm/executors/environments/helpers.mjs +58 -0
- package/dist/esm/executors/environments/index.d.mts +16 -0
- package/dist/esm/executors/environments/index.mjs +58 -0
- package/dist/esm/executors/environments/schema.json +9 -0
- package/dist/esm/executors/publish/helpers.d.mts +19 -0
- package/dist/esm/executors/publish/helpers.mjs +48 -0
- package/dist/esm/executors/publish/index.d.mts +12 -0
- package/dist/esm/executors/publish/index.mjs +51 -0
- package/dist/esm/executors/publish/schema.json +19 -0
- package/dist/esm/executors/shared/utils.d.mts +27 -0
- package/dist/esm/executors/shared/utils.mjs +62 -0
- package/dist/esm/executors/update-executors-file/helpers.d.mts +17 -0
- package/dist/esm/executors/update-executors-file/helpers.mjs +59 -0
- package/dist/esm/executors/update-executors-file/index.d.mts +12 -0
- package/dist/esm/executors/update-executors-file/index.mjs +36 -0
- package/dist/esm/executors/update-executors-file/schema.json +9 -0
- package/dist/esm/executors/vtex-link/constants.d.mts +4 -0
- package/dist/esm/executors/vtex-link/constants.mjs +5 -0
- package/dist/esm/executors/vtex-link/helpers.d.mts +77 -0
- package/dist/esm/executors/vtex-link/helpers.mjs +192 -0
- package/dist/esm/executors/vtex-link/index.d.mts +5 -0
- package/dist/esm/executors/vtex-link/index.mjs +28 -0
- package/dist/esm/executors/vtex-link/schema.json +25 -0
- package/dist/esm/index-0ce2daf7.d.ts +2 -0
- package/dist/esm/index-17143e35.d.ts +2 -0
- package/dist/esm/index-3080371d.d.ts +3 -0
- package/dist/esm/index-f6330edc.d.ts +2 -0
- package/dist/esm/index.d.mts +10 -0
- package/dist/esm/index.d.mts.map +1 -0
- package/dist/esm/index.mjs +14 -0
- package/dist/esm/scripts/changeset-pre-mode.d.mts +2 -0
- package/dist/esm/scripts/changeset-pre-mode.mjs +39 -0
- package/dist/esm/scripts/index.d.mts +1 -0
- package/dist/esm/scripts/index.mjs +1 -0
- package/dist/esm/shared/logger.d.mts +33 -0
- package/dist/{src/logger.js → esm/shared/logger.mjs} +28 -39
- package/dist/esm/shared/utils.d.mts +19 -0
- package/dist/esm/shared/utils.mjs +60 -0
- package/dist/esm/types-1282e639.d.ts +12 -0
- package/dist/esm/types-7377dcc9.d.ts +4 -0
- package/dist/esm/types-763439e4.d.ts +14 -0
- package/dist/esm/vite/config-builder/configs/app.d.mts +4 -0
- package/dist/esm/vite/config-builder/configs/app.mjs +11 -0
- package/dist/esm/vite/config-builder/configs/base.d.mts +4 -0
- package/dist/{src/vite/config-builder/configs/base.js → esm/vite/config-builder/configs/base.mjs} +23 -22
- package/dist/esm/vite/config-builder/configs/index.d.mts +7 -0
- package/dist/esm/vite/config-builder/configs/index.mjs +30 -0
- package/dist/esm/vite/config-builder/configs/lib.d.mts +4 -0
- package/dist/{src/vite/config-builder/configs/lib.js → esm/vite/config-builder/configs/lib.mjs} +16 -18
- package/dist/esm/vite/config-builder/configs/script.d.mts +4 -0
- package/dist/esm/vite/config-builder/configs/script.mjs +44 -0
- package/dist/esm/vite/config-builder/main.d.mts +10 -0
- package/dist/esm/vite/config-builder/main.mjs +40 -0
- package/dist/esm/vite/config-builder/plugins.d.mts +30 -0
- package/dist/esm/vite/config-builder/plugins.mjs +87 -0
- package/dist/esm/vite/config-builder/shared/types.d.mts +155 -0
- package/dist/{src/vite/config-builder/shared/types.js → esm/vite/config-builder/shared/types.mjs} +2 -27
- package/dist/esm/vite/config-builder/shared/utils/helpers.d.mts +71 -0
- package/dist/esm/vite/config-builder/shared/utils/helpers.mjs +90 -0
- package/dist/esm/vite/config-builder/shared/utils/projectConfig.d.mts +60 -0
- package/dist/esm/vite/config-builder/shared/utils/projectConfig.mjs +109 -0
- package/dist/esm/vite/config-builder/shared/utils/viteCommand.d.mts +24 -0
- package/dist/esm/vite/config-builder/shared/utils/viteCommand.mjs +56 -0
- package/dist/esm/vite/plugins/shadow-dom-inject-css/index.d.mts +7 -0
- package/dist/esm/vite/plugins/shadow-dom-inject-css/index.mjs +27 -0
- package/dist/esm/vite/plugins/third-party-css-inject/main.d.mts +17 -0
- package/dist/esm/vite/plugins/third-party-css-inject/main.mjs +45 -0
- package/dist/esm/vite/plugins/third-party-css-inject/utils.d.mts +5 -0
- package/dist/esm/vite/plugins/third-party-css-inject/utils.mjs +97 -0
- package/dist/executors.json +29 -0
- package/executors.json +29 -0
- package/package.json +52 -6
- package/dist/package.json +0 -13
- package/dist/src/executors/deploy/executor.d.ts +0 -11
- package/dist/src/executors/deploy/executor.d.ts.map +0 -1
- package/dist/src/executors/deploy/executor.js +0 -27
- package/dist/src/executors/deploy/helpers.d.ts +0 -4
- package/dist/src/executors/deploy/helpers.d.ts.map +0 -1
- package/dist/src/executors/deploy/helpers.js +0 -40
- package/dist/src/executors/environments/executor.d.ts.map +0 -1
- package/dist/src/executors/environments/executor.js +0 -59
- package/dist/src/executors/environments/helpers.d.ts.map +0 -1
- package/dist/src/executors/environments/helpers.js +0 -63
- package/dist/src/executors/publish/executor.d.ts +0 -12
- package/dist/src/executors/publish/executor.d.ts.map +0 -1
- package/dist/src/executors/publish/executor.js +0 -58
- package/dist/src/executors/publish/helpers.d.ts.map +0 -1
- package/dist/src/executors/publish/helpers.js +0 -52
- package/dist/src/executors/shared/index.d.ts +0 -3
- package/dist/src/executors/shared/index.d.ts.map +0 -1
- package/dist/src/executors/shared/index.js +0 -7
- package/dist/src/executors/shared/types.d.ts +0 -4
- package/dist/src/executors/shared/types.d.ts.map +0 -1
- package/dist/src/executors/shared/types.js +0 -4
- package/dist/src/executors/shared/utils.d.ts +0 -34
- package/dist/src/executors/shared/utils.d.ts.map +0 -1
- package/dist/src/executors/shared/utils.js +0 -74
- package/dist/src/executors/update-executors-file/executor.d.ts.map +0 -1
- package/dist/src/executors/update-executors-file/executor.js +0 -46
- package/dist/src/executors/update-executors-file/helpers.d.ts +0 -24
- package/dist/src/executors/update-executors-file/helpers.d.ts.map +0 -1
- package/dist/src/executors/update-executors-file/helpers.js +0 -70
- package/dist/src/executors/update-executors-file/types.d.ts +0 -14
- package/dist/src/executors/update-executors-file/types.d.ts.map +0 -1
- package/dist/src/executors/update-executors-file/types.js +0 -4
- package/dist/src/executors/vtex-link/constants.d.ts +0 -4
- package/dist/src/executors/vtex-link/constants.d.ts.map +0 -1
- package/dist/src/executors/vtex-link/constants.js +0 -24
- package/dist/src/executors/vtex-link/executor.d.ts +0 -5
- package/dist/src/executors/vtex-link/executor.d.ts.map +0 -1
- package/dist/src/executors/vtex-link/executor.js +0 -35
- package/dist/src/executors/vtex-link/helpers.d.ts.map +0 -1
- package/dist/src/executors/vtex-link/helpers.js +0 -187
- package/dist/src/executors/vtex-link/types.d.ts.map +0 -1
- package/dist/src/executors/vtex-link/types.js +0 -4
- package/dist/src/index.d.ts +0 -2
- package/dist/src/index.d.ts.map +0 -1
- package/dist/src/index.js +0 -6
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/scripts/changeset-pre-mode.d.ts +0 -2
- package/dist/src/scripts/changeset-pre-mode.d.ts.map +0 -1
- package/dist/src/scripts/changeset-pre-mode.js +0 -41
- package/dist/src/shared/index.d.ts +0 -2
- package/dist/src/shared/index.d.ts.map +0 -1
- package/dist/src/shared/index.js +0 -6
- package/dist/src/shared/utils.d.ts +0 -11
- package/dist/src/shared/utils.d.ts.map +0 -1
- package/dist/src/shared/utils.js +0 -22
- package/dist/src/vite/config-builder/configs/app.d.ts +0 -4
- package/dist/src/vite/config-builder/configs/app.d.ts.map +0 -1
- package/dist/src/vite/config-builder/configs/app.js +0 -19
- package/dist/src/vite/config-builder/configs/base.d.ts +0 -4
- package/dist/src/vite/config-builder/configs/base.d.ts.map +0 -1
- package/dist/src/vite/config-builder/configs/index.d.ts +0 -7
- package/dist/src/vite/config-builder/configs/index.d.ts.map +0 -1
- package/dist/src/vite/config-builder/configs/index.js +0 -28
- package/dist/src/vite/config-builder/configs/lib.d.ts +0 -4
- package/dist/src/vite/config-builder/configs/lib.d.ts.map +0 -1
- package/dist/src/vite/config-builder/configs/script.d.ts +0 -4
- package/dist/src/vite/config-builder/configs/script.d.ts.map +0 -1
- package/dist/src/vite/config-builder/configs/script.js +0 -42
- package/dist/src/vite/config-builder/index.d.ts +0 -3
- package/dist/src/vite/config-builder/index.d.ts.map +0 -1
- package/dist/src/vite/config-builder/index.js +0 -7
- package/dist/src/vite/config-builder/main.d.ts +0 -10
- package/dist/src/vite/config-builder/main.d.ts.map +0 -1
- package/dist/src/vite/config-builder/main.js +0 -37
- package/dist/src/vite/config-builder/plugins.d.ts.map +0 -1
- package/dist/src/vite/config-builder/plugins.js +0 -88
- package/dist/src/vite/config-builder/shared/index.d.ts +0 -3
- package/dist/src/vite/config-builder/shared/index.d.ts.map +0 -1
- package/dist/src/vite/config-builder/shared/index.js +0 -7
- package/dist/src/vite/config-builder/shared/types.d.ts.map +0 -1
- package/dist/src/vite/config-builder/shared/utils/helpers.d.ts.map +0 -1
- package/dist/src/vite/config-builder/shared/utils/helpers.js +0 -61
- package/dist/src/vite/config-builder/shared/utils/index.d.ts +0 -4
- package/dist/src/vite/config-builder/shared/utils/index.d.ts.map +0 -1
- package/dist/src/vite/config-builder/shared/utils/index.js +0 -8
- package/dist/src/vite/config-builder/shared/utils/projectConfig.d.ts.map +0 -1
- package/dist/src/vite/config-builder/shared/utils/projectConfig.js +0 -85
- package/dist/src/vite/config-builder/shared/utils/viteCommand.d.ts.map +0 -1
- package/dist/src/vite/config-builder/shared/utils/viteCommand.js +0 -54
- package/dist/src/vite/index.d.ts +0 -3
- package/dist/src/vite/index.d.ts.map +0 -1
- package/dist/src/vite/index.js +0 -7
- package/dist/src/vite/plugins/index.d.ts +0 -3
- package/dist/src/vite/plugins/index.d.ts.map +0 -1
- package/dist/src/vite/plugins/index.js +0 -7
- package/dist/src/vite/plugins/shadow-dom-inject-css/index.d.ts +0 -8
- package/dist/src/vite/plugins/shadow-dom-inject-css/index.d.ts.map +0 -1
- package/dist/src/vite/plugins/third-party-css-inject/index.d.ts +0 -4
- package/dist/src/vite/plugins/third-party-css-inject/index.d.ts.map +0 -1
- package/dist/src/vite/plugins/third-party-css-inject/index.js +0 -13
- package/dist/src/vite/plugins/third-party-css-inject/main.d.ts +0 -17
- package/dist/src/vite/plugins/third-party-css-inject/main.d.ts.map +0 -1
- package/dist/src/vite/plugins/third-party-css-inject/utils.d.ts +0 -5
- package/dist/src/vite/plugins/third-party-css-inject/utils.d.ts.map +0 -1
- /package/dist/{src → cjs}/executors/deploy/schema.json +0 -0
- /package/dist/{src → cjs}/executors/environments/schema.json +0 -0
- /package/dist/{src → cjs}/executors/publish/schema.json +0 -0
- /package/dist/{src → cjs}/executors/update-executors-file/schema.json +0 -0
- /package/dist/{src → cjs}/executors/vtex-link/schema.json +0 -0
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var devkit = require('@nx/devkit');
|
|
4
|
+
var child_process = require('child_process');
|
|
5
|
+
var fs = require('fs');
|
|
6
|
+
var path = require('path');
|
|
7
|
+
var util = require('util');
|
|
8
|
+
require('../../shared/logger.cjs');
|
|
9
|
+
var utils$1 = require('../../shared/utils.cjs');
|
|
10
|
+
var utils = require('../shared/utils.cjs');
|
|
11
|
+
var constants = require('./constants.cjs');
|
|
12
|
+
|
|
13
|
+
const execAsync = util.promisify(child_process.exec);
|
|
14
|
+
const getPkgJsonPath = (vtexProjectPath)=>path.resolve(vtexProjectPath, 'package.json');
|
|
15
|
+
/**
|
|
16
|
+
* Links the local package to the VTEX environment.
|
|
17
|
+
*
|
|
18
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
19
|
+
* @returns {Promise<void>} A promise that resolves when the package is linked or rejects on error.
|
|
20
|
+
*/ function vtexLink(ctx) {
|
|
21
|
+
const { vtexProjectPath } = ctx;
|
|
22
|
+
return new Promise((resolve, reject)=>{
|
|
23
|
+
devkit.logger.info('🔗 Linking package to VTEX...');
|
|
24
|
+
const link = child_process.spawn('vtex', [
|
|
25
|
+
'link',
|
|
26
|
+
'-u'
|
|
27
|
+
], {
|
|
28
|
+
cwd: vtexProjectPath,
|
|
29
|
+
detached: true
|
|
30
|
+
});
|
|
31
|
+
link.stdout.on('data', (chunk)=>{
|
|
32
|
+
const data = chunk.toString('utf8');
|
|
33
|
+
if (data.includes(constants.ERROR_LINKING_FLAG)) {
|
|
34
|
+
reject('could not link package in VTEX');
|
|
35
|
+
}
|
|
36
|
+
if (data.includes(constants.SUCCESS_LINKING_FLAG)) {
|
|
37
|
+
link.pid && process.kill(-link.pid);
|
|
38
|
+
setTimeout(()=>{
|
|
39
|
+
link.kill();
|
|
40
|
+
devkit.logger.info('✅ Successfully linked package to VTEX.');
|
|
41
|
+
}, 200);
|
|
42
|
+
resolve();
|
|
43
|
+
}
|
|
44
|
+
devkit.logger.info(data);
|
|
45
|
+
});
|
|
46
|
+
link.on('error', (error)=>reject(error.message));
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Updates the package.json file within the VTEX project to use the local version of the package.
|
|
51
|
+
*
|
|
52
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
53
|
+
* @param {string} packageName - The name of the package to link.
|
|
54
|
+
* @returns {Promise<void>} A promise that resolves when the package.json is updated.
|
|
55
|
+
*/ async function changePackageJsonFromVtexProject(ctx, packageName) {
|
|
56
|
+
const { vtexProjectPath, projectName, packageOrg } = ctx;
|
|
57
|
+
const pkgJsonPath = getPkgJsonPath(vtexProjectPath);
|
|
58
|
+
// Make backup of package.json
|
|
59
|
+
await fs.promises.copyFile(pkgJsonPath, path.join(vtexProjectPath, 'package.json.nxback'));
|
|
60
|
+
devkit.logger.info('🔃 Created package.json backup.');
|
|
61
|
+
// Find and edit value "@${packageOrg}/${projectName}" dependency
|
|
62
|
+
const packageJson = utils$1.getPkgJson(vtexProjectPath);
|
|
63
|
+
const newPackageJson = {
|
|
64
|
+
...packageJson,
|
|
65
|
+
dependencies: {
|
|
66
|
+
...packageJson.dependencies,
|
|
67
|
+
[`@${packageOrg}/${projectName}`]: `file:./${packageName}`
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
await fs.promises.unlink(pkgJsonPath);
|
|
71
|
+
await fs.promises.writeFile(pkgJsonPath, JSON.stringify(newPackageJson, null, 2));
|
|
72
|
+
devkit.logger.info('📝 Updated package.json in VTEX project.');
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* Restores the original package.json from the backup created before modifications.
|
|
76
|
+
*
|
|
77
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
78
|
+
* @returns {Promise<void>} A promise that resolves when the package.json is restored.
|
|
79
|
+
*/ async function restorePackageJsonFromVtexProject(ctx) {
|
|
80
|
+
const { vtexProjectPath } = ctx;
|
|
81
|
+
const pkgJsonPath = getPkgJsonPath(vtexProjectPath);
|
|
82
|
+
const backupFile = path.resolve(vtexProjectPath, 'package.json.nxback');
|
|
83
|
+
if (!fs.existsSync(backupFile)) return;
|
|
84
|
+
await fs.promises.unlink(pkgJsonPath);
|
|
85
|
+
await fs.promises.copyFile(backupFile, pkgJsonPath);
|
|
86
|
+
await fs.promises.unlink(backupFile);
|
|
87
|
+
devkit.logger.info('🔄 Restored package.json in VTEX project.');
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Renames the generated package file with a unique identifier.
|
|
91
|
+
*
|
|
92
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
93
|
+
* @returns {Promise<string>} A promise that resolves with the new name of the package.
|
|
94
|
+
*/ async function renamePackage(ctx) {
|
|
95
|
+
const { projectRoot, projectName, packageOrg } = ctx;
|
|
96
|
+
const packageJson = utils$1.getPkgJson('./');
|
|
97
|
+
const oldName = `${packageOrg}-${projectName}-${packageJson.version}.tgz`;
|
|
98
|
+
const oldPath = path.join(projectRoot, oldName);
|
|
99
|
+
const newName = `${packageOrg}-${projectName}-${packageJson.version}-${utils$1.shortId(8)}.tgz`;
|
|
100
|
+
const newPath = path.join(projectRoot, newName);
|
|
101
|
+
await fs.promises.rename(oldPath, newPath);
|
|
102
|
+
devkit.logger.info(`🏷️ New package name: ${newName}`);
|
|
103
|
+
return newName;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Creates a pnpm package for uploading to VTEX.
|
|
107
|
+
*
|
|
108
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
109
|
+
* @returns {Promise<string>} A promise that resolves with the name of the created package.
|
|
110
|
+
*/ async function createPackage(ctx) {
|
|
111
|
+
const command = 'pnpm pack';
|
|
112
|
+
const { stderr } = await execAsync(command);
|
|
113
|
+
if (stderr) devkit.logger.error(stderr);
|
|
114
|
+
devkit.logger.info('📦 Package generated successfully.');
|
|
115
|
+
return renamePackage(ctx);
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Searches for and lists all outdated packages in the VTEX project directory.
|
|
119
|
+
*
|
|
120
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
121
|
+
* @returns {Promise<string[]>} A promise that resolves with a list of deprecated package names.
|
|
122
|
+
*/ async function findLastPackages(ctx) {
|
|
123
|
+
const { vtexProjectPath, projectName, packageOrg } = ctx;
|
|
124
|
+
const matchedFiles = [];
|
|
125
|
+
const files = await fs.promises.readdir(vtexProjectPath);
|
|
126
|
+
for (const file of files){
|
|
127
|
+
const regex = new RegExp(`^${packageOrg}-${projectName}-.*$`);
|
|
128
|
+
if (regex.test(file)) {
|
|
129
|
+
matchedFiles.push(file);
|
|
130
|
+
devkit.logger.info(`🔍 Found deprecated package: ${file}`);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
return matchedFiles;
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Removes all outdated packages in the VTEX project directory.
|
|
137
|
+
*
|
|
138
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
139
|
+
* @returns {Promise<void>} A promise that resolves when the old packages are removed.
|
|
140
|
+
*/ async function removeOldPackages(ctx) {
|
|
141
|
+
const { vtexProjectPath } = ctx;
|
|
142
|
+
const files = await findLastPackages(ctx);
|
|
143
|
+
const toRemove = files.map((x)=>fs.promises.unlink(path.resolve(vtexProjectPath, x)));
|
|
144
|
+
await Promise.all(toRemove);
|
|
145
|
+
devkit.logger.info('🗑️ Removed old packages in VTEX project.');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Moves a package to the VTEX project directory.
|
|
149
|
+
*
|
|
150
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
151
|
+
* @param {string} packageName - The name of the package to move.
|
|
152
|
+
* @returns {Promise<void>} A promise that resolves when the package is moved successfully.
|
|
153
|
+
*/ async function movePackage(ctx, packageName) {
|
|
154
|
+
const { vtexProjectPath } = ctx;
|
|
155
|
+
await fs.promises.rename(path.resolve(packageName), path.join(vtexProjectPath, packageName));
|
|
156
|
+
devkit.logger.info(`🚚 Moved package "${packageName}" to VTEX project.`);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Builds the package, moves it to the VTEX project, and updates the project's package.json.
|
|
160
|
+
*
|
|
161
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
162
|
+
* @returns {Promise<void>} A promise that resolves when the build is complete.
|
|
163
|
+
*/ async function buildPackage(ctx) {
|
|
164
|
+
const packageName = await createPackage(ctx);
|
|
165
|
+
await Promise.all([
|
|
166
|
+
movePackage(ctx, packageName),
|
|
167
|
+
changePackageJsonFromVtexProject(ctx, packageName)
|
|
168
|
+
]);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Cleans the VTEX project by removing old packages and restoring the original package.json.
|
|
172
|
+
*
|
|
173
|
+
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
174
|
+
* @returns {Promise<void>} A promise that resolves when the clean-up is complete.
|
|
175
|
+
*/ async function clean(ctx) {
|
|
176
|
+
await Promise.all([
|
|
177
|
+
removeOldPackages(ctx),
|
|
178
|
+
restorePackageJsonFromVtexProject(ctx)
|
|
179
|
+
]);
|
|
180
|
+
}
|
|
181
|
+
function validateEnvironment() {
|
|
182
|
+
if (!constants.VTEX_PROJECT_PATH) throw new Error('The NZ_VTEX_PROJECT environment variable is missing. Set it in the project root in a .env.local file.');
|
|
183
|
+
}
|
|
184
|
+
async function performRollback(sharedContext) {
|
|
185
|
+
await clean(sharedContext);
|
|
186
|
+
return utils.ok();
|
|
187
|
+
}
|
|
188
|
+
async function buildAndLink(sharedContext, skipLink = false) {
|
|
189
|
+
await clean(sharedContext);
|
|
190
|
+
await buildPackage(sharedContext);
|
|
191
|
+
if (!skipLink) await vtexLink(sharedContext);
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
exports.buildAndLink = buildAndLink;
|
|
195
|
+
exports.buildPackage = buildPackage;
|
|
196
|
+
exports.changePackageJsonFromVtexProject = changePackageJsonFromVtexProject;
|
|
197
|
+
exports.clean = clean;
|
|
198
|
+
exports.createPackage = createPackage;
|
|
199
|
+
exports.findLastPackages = findLastPackages;
|
|
200
|
+
exports.movePackage = movePackage;
|
|
201
|
+
exports.performRollback = performRollback;
|
|
202
|
+
exports.removeOldPackages = removeOldPackages;
|
|
203
|
+
exports.renamePackage = renamePackage;
|
|
204
|
+
exports.restorePackageJsonFromVtexProject = restorePackageJsonFromVtexProject;
|
|
205
|
+
exports.validateEnvironment = validateEnvironment;
|
|
206
|
+
exports.vtexLink = vtexLink;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { SharedContext } from "../../types-1282e639.js";
|
|
2
2
|
/**
|
|
3
3
|
* Links the local package to the VTEX environment.
|
|
4
4
|
*
|
|
5
5
|
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
6
6
|
* @returns {Promise<void>} A promise that resolves when the package is linked or rejects on error.
|
|
7
7
|
*/
|
|
8
|
-
|
|
8
|
+
declare function vtexLink(ctx: SharedContext): Promise<void>;
|
|
9
9
|
/**
|
|
10
10
|
* Updates the package.json file within the VTEX project to use the local version of the package.
|
|
11
11
|
*
|
|
@@ -13,42 +13,42 @@ export declare function vtexLink(ctx: SharedContext): Promise<void>;
|
|
|
13
13
|
* @param {string} packageName - The name of the package to link.
|
|
14
14
|
* @returns {Promise<void>} A promise that resolves when the package.json is updated.
|
|
15
15
|
*/
|
|
16
|
-
|
|
16
|
+
declare function changePackageJsonFromVtexProject(ctx: SharedContext, packageName: string): Promise<void>;
|
|
17
17
|
/**
|
|
18
18
|
* Restores the original package.json from the backup created before modifications.
|
|
19
19
|
*
|
|
20
20
|
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
21
21
|
* @returns {Promise<void>} A promise that resolves when the package.json is restored.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
declare function restorePackageJsonFromVtexProject(ctx: SharedContext): Promise<void>;
|
|
24
24
|
/**
|
|
25
25
|
* Renames the generated package file with a unique identifier.
|
|
26
26
|
*
|
|
27
27
|
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
28
28
|
* @returns {Promise<string>} A promise that resolves with the new name of the package.
|
|
29
29
|
*/
|
|
30
|
-
|
|
30
|
+
declare function renamePackage(ctx: SharedContext): Promise<string>;
|
|
31
31
|
/**
|
|
32
32
|
* Creates a pnpm package for uploading to VTEX.
|
|
33
33
|
*
|
|
34
34
|
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
35
35
|
* @returns {Promise<string>} A promise that resolves with the name of the created package.
|
|
36
36
|
*/
|
|
37
|
-
|
|
37
|
+
declare function createPackage(ctx: SharedContext): Promise<string>;
|
|
38
38
|
/**
|
|
39
39
|
* Searches for and lists all outdated packages in the VTEX project directory.
|
|
40
40
|
*
|
|
41
41
|
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
42
42
|
* @returns {Promise<string[]>} A promise that resolves with a list of deprecated package names.
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
declare function findLastPackages(ctx: SharedContext): Promise<string[]>;
|
|
45
45
|
/**
|
|
46
46
|
* Removes all outdated packages in the VTEX project directory.
|
|
47
47
|
*
|
|
48
48
|
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
49
49
|
* @returns {Promise<void>} A promise that resolves when the old packages are removed.
|
|
50
50
|
*/
|
|
51
|
-
|
|
51
|
+
declare function removeOldPackages(ctx: SharedContext): Promise<void>;
|
|
52
52
|
/**
|
|
53
53
|
* Moves a package to the VTEX project directory.
|
|
54
54
|
*
|
|
@@ -56,22 +56,22 @@ export declare function removeOldPackages(ctx: SharedContext): Promise<void>;
|
|
|
56
56
|
* @param {string} packageName - The name of the package to move.
|
|
57
57
|
* @returns {Promise<void>} A promise that resolves when the package is moved successfully.
|
|
58
58
|
*/
|
|
59
|
-
|
|
59
|
+
declare function movePackage(ctx: SharedContext, packageName: string): Promise<void>;
|
|
60
60
|
/**
|
|
61
61
|
* Builds the package, moves it to the VTEX project, and updates the project's package.json.
|
|
62
62
|
*
|
|
63
63
|
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
64
64
|
* @returns {Promise<void>} A promise that resolves when the build is complete.
|
|
65
65
|
*/
|
|
66
|
-
|
|
66
|
+
declare function buildPackage(ctx: SharedContext): Promise<void>;
|
|
67
67
|
/**
|
|
68
68
|
* Cleans the VTEX project by removing old packages and restoring the original package.json.
|
|
69
69
|
*
|
|
70
70
|
* @param {SharedContext} ctx - The shared context containing paths and configurations.
|
|
71
71
|
* @returns {Promise<void>} A promise that resolves when the clean-up is complete.
|
|
72
72
|
*/
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
73
|
+
declare function clean(ctx: SharedContext): Promise<void>;
|
|
74
|
+
declare function validateEnvironment(): void;
|
|
75
|
+
declare function performRollback(sharedContext: SharedContext): Promise<import("../../index-f6330edc.js").ExecutorResponse>;
|
|
76
|
+
declare function buildAndLink(sharedContext: SharedContext, skipLink?: boolean): Promise<void>;
|
|
77
|
+
export { vtexLink, changePackageJsonFromVtexProject, restorePackageJsonFromVtexProject, renamePackage, createPackage, findLastPackages, removeOldPackages, movePackage, buildPackage, clean, validateEnvironment, performRollback, buildAndLink };
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var path = require('path');
|
|
4
|
+
var utils = require('../shared/utils.cjs');
|
|
5
|
+
var helpers = require('./helpers.cjs');
|
|
6
|
+
|
|
7
|
+
const VTEX_PROJECT_PATH = process.env.NZ_VTEX_PROJECT;
|
|
8
|
+
async function runExecutor(opts, ctx) {
|
|
9
|
+
try {
|
|
10
|
+
const { rollback, skipLink, packageOrg } = opts;
|
|
11
|
+
const projectName = ctx.projectName || '';
|
|
12
|
+
helpers.validateEnvironment();
|
|
13
|
+
const projectConfig = utils.getProjectConfig(ctx);
|
|
14
|
+
const projectRoot = projectConfig.root;
|
|
15
|
+
const vtexProjectPath = path.resolve(VTEX_PROJECT_PATH, 'react');
|
|
16
|
+
const sharedContext = {
|
|
17
|
+
packageOrg,
|
|
18
|
+
projectRoot,
|
|
19
|
+
projectName,
|
|
20
|
+
vtexProjectPath
|
|
21
|
+
};
|
|
22
|
+
if (rollback) return await helpers.performRollback(sharedContext);
|
|
23
|
+
await helpers.buildAndLink(sharedContext, skipLink);
|
|
24
|
+
return utils.ok();
|
|
25
|
+
} catch (error) {
|
|
26
|
+
return utils.err(error);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
module.exports = runExecutor;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ExecutorContext } from '@nx/devkit';
|
|
2
|
+
import { ExecutorResponse } from "../../index-f6330edc.js";
|
|
3
|
+
import { ExecutorOptions } from "../../types-1282e639.js";
|
|
4
|
+
declare function runExecutor(opts: ExecutorOptions, ctx: ExecutorContext): Promise<ExecutorResponse>;
|
|
5
|
+
export { runExecutor as default };
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var index = require('./executors/deploy/index.cjs');
|
|
4
|
+
var index$1 = require('./executors/environments/index.cjs');
|
|
5
|
+
var index$2 = require('./executors/publish/index.cjs');
|
|
6
|
+
var index$3 = require('./executors/update-executors-file/index.cjs');
|
|
7
|
+
var index$4 = require('./executors/vtex-link/index.cjs');
|
|
8
|
+
var logger = require('./shared/logger.cjs');
|
|
9
|
+
var utils = require('./shared/utils.cjs');
|
|
10
|
+
var main = require('./vite/config-builder/main.cjs');
|
|
11
|
+
var types = require('./vite/config-builder/shared/types.cjs');
|
|
12
|
+
var helpers = require('./vite/config-builder/shared/utils/helpers.cjs');
|
|
13
|
+
var projectConfig = require('./vite/config-builder/shared/utils/projectConfig.cjs');
|
|
14
|
+
var viteCommand = require('./vite/config-builder/shared/utils/viteCommand.cjs');
|
|
15
|
+
var main$1 = require('./vite/plugins/third-party-css-inject/main.cjs');
|
|
16
|
+
var index$5 = require('./vite/plugins/shadow-dom-inject-css/index.cjs');
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
exports.deployExecutor = index;
|
|
21
|
+
exports.environmentsExecutor = index$1;
|
|
22
|
+
exports.publishExecutor = index$2;
|
|
23
|
+
exports.updateExecutorsFileExecutor = index$3;
|
|
24
|
+
exports.vtexLinkExecutor = index$4;
|
|
25
|
+
Object.defineProperty(exports, 'LogLevel', {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return logger.LogLevel; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, 'currentLogLevel', {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return logger.currentLogLevel; }
|
|
32
|
+
});
|
|
33
|
+
exports.logger = logger.logger;
|
|
34
|
+
exports.setLogLevel = logger.setLogLevel;
|
|
35
|
+
exports.combineGlobStyles = utils.combineGlobStyles;
|
|
36
|
+
exports.getPkgJson = utils.getPkgJson;
|
|
37
|
+
exports.shortId = utils.shortId;
|
|
38
|
+
exports.createConfigBuilder = main.createConfigBuilder;
|
|
39
|
+
Object.defineProperty(exports, 'Flag', {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () { return types.Flag; }
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, 'ProjectType', {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () { return types.ProjectType; }
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(exports, 'Stage', {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function () { return types.Stage; }
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(exports, 'Target', {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function () { return types.Target; }
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, 'ViteMode', {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () { return types.ViteMode; }
|
|
58
|
+
});
|
|
59
|
+
exports.chunkName = helpers.chunkName;
|
|
60
|
+
exports.deepMerge = helpers.deepMerge;
|
|
61
|
+
exports.getNxTsConfigPaths = helpers.getNxTsConfigPaths;
|
|
62
|
+
exports.getPlugins = helpers.getPlugins;
|
|
63
|
+
exports.when = helpers.when;
|
|
64
|
+
exports.getExternalDependencies = projectConfig.getExternalDependencies;
|
|
65
|
+
exports.getInitials = projectConfig.getInitials;
|
|
66
|
+
exports.initializeConfig = projectConfig.initializeConfig;
|
|
67
|
+
exports.mergeConfigs = projectConfig.mergeConfigs;
|
|
68
|
+
exports.getViteCmdFlags = viteCommand.getViteCmdFlags;
|
|
69
|
+
exports.getViteCommand = viteCommand.getViteCommand;
|
|
70
|
+
exports.thirdPartyCssInjectPlugin = main$1.thirdPartyCssInjectPlugin;
|
|
71
|
+
exports.injectCssIntoShadowDom = index$5.injectCssIntoShadowDom;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { default as deployExecutor } from "./executors/deploy/index.js";
|
|
2
|
+
export { default as environmentsExecutor } from "./executors/environments/index.js";
|
|
3
|
+
export { default as publishExecutor } from "./executors/publish/index.js";
|
|
4
|
+
export { default as updateExecutorsFileExecutor } from "./executors/update-executors-file/index.js";
|
|
5
|
+
export { default as vtexLinkExecutor } from "./executors/vtex-link/index.js";
|
|
6
|
+
export * from "./index-17143e35.js";
|
|
7
|
+
export * from "./vite/config-builder/main.js";
|
|
8
|
+
export * from "./index-f6330edc.js";
|
|
9
|
+
export * from "./index-0ce2daf7.js";
|
|
10
|
+
//# sourceMappingURL=index.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.cts","sourceRoot":"","sources":["../../src/index.ts","../../src/executors/index.ts","../../src/vite/config-builder/index.ts","../../src/vite/index.ts"],"names":[],"mappings":";;;;;AACA,oCAAyB"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var devkit = require('@nx/devkit');
|
|
4
|
+
var child_process = require('child_process');
|
|
5
|
+
var promises = require('fs/promises');
|
|
6
|
+
var path = require('path');
|
|
7
|
+
var util = require('util');
|
|
8
|
+
|
|
9
|
+
const execAsync = util.promisify(child_process.exec);
|
|
10
|
+
const changesetDir = path.resolve('.changeset');
|
|
11
|
+
const preJsonPath = path.resolve(changesetDir, 'pre.json');
|
|
12
|
+
let preJson;
|
|
13
|
+
async function main() {
|
|
14
|
+
try {
|
|
15
|
+
const data = await promises.readFile(preJsonPath, 'utf8');
|
|
16
|
+
preJson = JSON.parse(data);
|
|
17
|
+
} catch {
|
|
18
|
+
preJson = {
|
|
19
|
+
mode: 'exit'
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
// Execute "version" command using @changeset/cli
|
|
23
|
+
try {
|
|
24
|
+
const { mode } = preJson;
|
|
25
|
+
if (mode === 'exit') {
|
|
26
|
+
const command = `pnpm changeset pre enter beta`;
|
|
27
|
+
const { stdout, stderr } = await execAsync(command);
|
|
28
|
+
devkit.logger.info(stdout);
|
|
29
|
+
devkit.logger.info(stderr);
|
|
30
|
+
devkit.logger.info(`🚀 Successfully enter prerelease mode`);
|
|
31
|
+
} else {
|
|
32
|
+
devkit.logger.info(`🚀 Prerelease mode has been previously entered`);
|
|
33
|
+
}
|
|
34
|
+
} catch (error) {
|
|
35
|
+
devkit.logger.error('❌ An error occurred!');
|
|
36
|
+
throw error;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
main();
|
|
40
|
+
|
|
41
|
+
exports.main = main;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./changeset-pre-mode.js";
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chalk = require('chalk');
|
|
4
|
+
var R = require('ramda');
|
|
5
|
+
|
|
6
|
+
exports.LogLevel = void 0;
|
|
7
|
+
(function(LogLevel) {
|
|
8
|
+
LogLevel[LogLevel["ERROR"] = 0] = "ERROR";
|
|
9
|
+
LogLevel[LogLevel["WARN"] = 1] = "WARN";
|
|
10
|
+
LogLevel[LogLevel["INFO"] = 2] = "INFO";
|
|
11
|
+
LogLevel[LogLevel["DEBUG"] = 3] = "DEBUG";
|
|
12
|
+
})(exports.LogLevel || (exports.LogLevel = {}));
|
|
13
|
+
// Default log level
|
|
14
|
+
exports.currentLogLevel = 2;
|
|
15
|
+
/**
|
|
16
|
+
* Object mapping log levels to console log functions.
|
|
17
|
+
*
|
|
18
|
+
* @constant {Object} logFunctions
|
|
19
|
+
*/ const logFunctions = {
|
|
20
|
+
[0]: console.error,
|
|
21
|
+
[1]: console.warn,
|
|
22
|
+
[2]: console.info,
|
|
23
|
+
[3]: console.debug
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Object mapping log levels to chalk color functions.
|
|
27
|
+
*
|
|
28
|
+
* @constant {Object} colorFunctions
|
|
29
|
+
*/ const colorFunctions = {
|
|
30
|
+
[0]: chalk.red,
|
|
31
|
+
[1]: chalk.yellow,
|
|
32
|
+
[2]: chalk.blue,
|
|
33
|
+
[3]: chalk.magenta
|
|
34
|
+
};
|
|
35
|
+
const getLogLevelKey = (value)=>{
|
|
36
|
+
return Object.keys(exports.LogLevel).find((key)=>exports.LogLevel[key] === value);
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Sets the log level for the logger.
|
|
40
|
+
* Only logs at this level and above will be displayed.
|
|
41
|
+
*
|
|
42
|
+
* @param {LogLevel} level - The log level to set.
|
|
43
|
+
* @example
|
|
44
|
+
* // Set log level to WARN
|
|
45
|
+
* setLogLevel(LogLevel.WARN);
|
|
46
|
+
*
|
|
47
|
+
* // Now only WARN and ERROR logs will be displayed
|
|
48
|
+
* logger.debug('Debug message'); // Will not be logged
|
|
49
|
+
* logger.info('Info message'); // Will not be logged
|
|
50
|
+
* logger.warn('Warn message'); // Will be logged
|
|
51
|
+
* logger.error('Error message'); // Will be logged
|
|
52
|
+
*/ const setLogLevel = (level)=>{
|
|
53
|
+
exports.currentLogLevel = level;
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Takes a list of arguments, stringifies each argument, and joins
|
|
57
|
+
* them with a newline character.
|
|
58
|
+
*
|
|
59
|
+
* @param {any[]} args - The arguments to process.
|
|
60
|
+
* @returns {string} - The processed string.
|
|
61
|
+
*/ const processArgs = R.pipe(R.map((arg)=>JSON.stringify(arg, null, 2)), R.join('\n'));
|
|
62
|
+
/**
|
|
63
|
+
* Formats the log message with a timestamp, log level, and any additional variables.
|
|
64
|
+
*
|
|
65
|
+
* @param {LogLevel} level - The log level.
|
|
66
|
+
* @param {string} message - The message to log.
|
|
67
|
+
* @param {any[]} rest - Any additional variables to log.
|
|
68
|
+
* @returns {string} - The formatted log message.
|
|
69
|
+
*/ const formatMessage = (level, message, ...rest)=>{
|
|
70
|
+
const levelKey = getLogLevelKey(level);
|
|
71
|
+
const timestamp = `${new Date().toLocaleTimeString()}`;
|
|
72
|
+
const formattedRest = rest.length ? `\n${processArgs(rest)}` : '';
|
|
73
|
+
return `${timestamp} [${levelKey}] ${message}${formattedRest}`;
|
|
74
|
+
};
|
|
75
|
+
/**
|
|
76
|
+
* Generates a log function for a specific log level.
|
|
77
|
+
*
|
|
78
|
+
* @param {LogLevel} level - The log level.
|
|
79
|
+
* @returns - The log function.
|
|
80
|
+
*/ const log = (level)=>(message, ...rest)=>{
|
|
81
|
+
if (level > exports.currentLogLevel) return; // Skip logging if level is below the current log level
|
|
82
|
+
const pipeline = R.pipe(()=>formatMessage(level, message, ...rest), colorFunctions[level], logFunctions[level]);
|
|
83
|
+
const errPipeline = R.pipe((err)=>`Failed to log message: ${err.message}`, colorFunctions[0], logFunctions[0]);
|
|
84
|
+
try {
|
|
85
|
+
pipeline();
|
|
86
|
+
} catch (err) {
|
|
87
|
+
errPipeline(err);
|
|
88
|
+
}
|
|
89
|
+
};
|
|
90
|
+
const logger = {
|
|
91
|
+
error: log(0),
|
|
92
|
+
warn: log(1),
|
|
93
|
+
info: log(2),
|
|
94
|
+
debug: log(3)
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
exports.logger = logger;
|
|
98
|
+
exports.setLogLevel = setLogLevel;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Enum representing the different log levels.
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
declare enum LogLevel {
|
|
5
5
|
ERROR = 0,
|
|
6
6
|
WARN = 1,
|
|
7
7
|
INFO = 2,
|
|
8
8
|
DEBUG = 3
|
|
9
9
|
}
|
|
10
|
-
|
|
10
|
+
declare let currentLogLevel: LogLevel;
|
|
11
11
|
/**
|
|
12
12
|
* Sets the log level for the logger.
|
|
13
13
|
* Only logs at this level and above will be displayed.
|
|
@@ -23,12 +23,11 @@ export declare let currentLogLevel: LogLevel;
|
|
|
23
23
|
* logger.warn('Warn message'); // Will be logged
|
|
24
24
|
* logger.error('Error message'); // Will be logged
|
|
25
25
|
*/
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
declare const setLogLevel: (level: LogLevel) => void;
|
|
27
|
+
declare const logger: {
|
|
28
28
|
error: (message: string, ...rest: any[]) => void;
|
|
29
29
|
warn: (message: string, ...rest: any[]) => void;
|
|
30
30
|
info: (message: string, ...rest: any[]) => void;
|
|
31
31
|
debug: (message: string, ...rest: any[]) => void;
|
|
32
32
|
};
|
|
33
|
-
export
|
|
34
|
-
//# sourceMappingURL=logger.d.ts.map
|
|
33
|
+
export { LogLevel, currentLogLevel, setLogLevel, logger };
|