contensis-cli 1.0.0-beta.57 → 1.0.0-beta.59
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 +159 -69
- package/dist/localisation/en-GB.js +1 -1
- package/dist/localisation/en-GB.js.map +1 -1
- package/dist/services/ContensisCliService.js +25 -55
- package/dist/services/ContensisCliService.js.map +2 -2
- package/dist/util/console.printer.js +4 -6
- package/dist/util/console.printer.js.map +2 -2
- package/dist/util/logger.js +2 -3
- package/dist/util/logger.js.map +2 -2
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +2 -2
- package/src/localisation/en-GB.ts +1 -1
- package/src/services/ContensisCliService.ts +24 -56
- package/src/util/console.printer.ts +10 -20
- package/src/util/logger.ts +3 -3
- package/src/version.ts +1 -1
package/dist/util/logger.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/util/logger.ts"],
|
|
4
|
-
"sourcesContent": ["/* eslint-disable no-console */\nimport chalk from 'chalk';\nimport dateFormat from 'dateformat';\nimport deepCleaner from 'deep-cleaner';\nimport ProgressBar from 'progress';\nimport { tryStringify } from '.';\n\ntype LogMethod = (content: string) => void;\ntype LogErrorMethod = (content: string, err?: any) => void;\ntype LogJsonMethod = (content: any, depth?: number, indent?: string) => void;\ntype LogJsonDepthMethod = (content: any, depth: number) => void;\ntype LogArrayMethod = (contentArray: string[]) => void;\ntype LogErrorFunc = (\n err: any,\n msg?: string,\n level?: 'error' | 'critical'\n) => void;\n\nexport class Logger {\n static isUserTerminal = !!process.stdout.columns;\n static getPrefix = () => {\n return Logger.isUserTerminal\n ? Logger.infoText(`[cli]`)\n : `[${dateFormat(new Date(), 'dd/mm HH:MM:ss')}]`;\n };\n static errorText = chalk.bold.red;\n static warningText = chalk.keyword('orange');\n static successText = chalk.keyword('green');\n static helpText = chalk.blue;\n static highlightText = chalk.yellow;\n static infoText = chalk.keyword('grey');\n static standardText = chalk.keyword('white');\n static boldText = chalk.bold;\n static critical: LogMethod = content => {\n const message = `${Logger.getPrefix()} ${Logger.errorText(\n '[CRITICAL]'\n )} ${content}`;\n console.log(message);\n };\n static error: LogErrorMethod = (content, err) => {\n const message = `${Logger.getPrefix()} ${Logger.errorText(\n `${Logger.isUserTerminal ? '\u274C' : '[ERROR]'} ${content}${\n err ? `\\n\\n${JSON.stringify(err, null, 2)}` : ''\n }`\n )}
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAkB;AAClB,wBAAuB;AACvB,0BAAwB;AACxB,sBAAwB;AACxB,eAA6B;AAatB,MAAM,OAAO;AAAA,EAClB,OAAO,iBAAiB,CAAC,CAAC,QAAQ,OAAO;AAAA,EACzC,OAAO,YAAY,MAAM;AACvB,WAAO,OAAO,iBACV,OAAO,SAAS,OAAO,IACvB,QAAI,kBAAAA,SAAW,IAAI,KAAK,GAAG,gBAAgB;AAAA,EACjD;AAAA,EACA,OAAO,YAAY,aAAAC,QAAM,KAAK;AAAA,EAC9B,OAAO,cAAc,aAAAA,QAAM,QAAQ,QAAQ;AAAA,EAC3C,OAAO,cAAc,aAAAA,QAAM,QAAQ,OAAO;AAAA,EAC1C,OAAO,WAAW,aAAAA,QAAM;AAAA,EACxB,OAAO,gBAAgB,aAAAA,QAAM;AAAA,EAC7B,OAAO,WAAW,aAAAA,QAAM,QAAQ,MAAM;AAAA,EACtC,OAAO,eAAe,aAAAA,QAAM,QAAQ,OAAO;AAAA,EAC3C,OAAO,WAAW,aAAAA,QAAM;AAAA,EACxB,OAAO,WAAsB,aAAW;AACtC,UAAM,UAAU,GAAG,OAAO,UAAU,MAAM,OAAO;AAAA,MAC/C;AAAA,IACF,KAAK;AACL,YAAQ,IAAI,OAAO;AAAA,EACrB;AAAA,EACA,OAAO,QAAwB,CAAC,SAAS,
|
|
4
|
+
"sourcesContent": ["/* eslint-disable no-console */\nimport chalk from 'chalk';\nimport dateFormat from 'dateformat';\nimport deepCleaner from 'deep-cleaner';\nimport ProgressBar from 'progress';\nimport { tryStringify } from '.';\n\ntype LogMethod = (content: string) => void;\ntype LogErrorMethod = (content: string, err?: any, newline?: string) => void;\ntype LogJsonMethod = (content: any, depth?: number, indent?: string) => void;\ntype LogJsonDepthMethod = (content: any, depth: number) => void;\ntype LogArrayMethod = (contentArray: string[]) => void;\ntype LogErrorFunc = (\n err: any,\n msg?: string,\n level?: 'error' | 'critical'\n) => void;\n\nexport class Logger {\n static isUserTerminal = !!process.stdout.columns;\n static getPrefix = () => {\n return Logger.isUserTerminal\n ? Logger.infoText(`[cli]`)\n : `[${dateFormat(new Date(), 'dd/mm HH:MM:ss')}]`;\n };\n static errorText = chalk.bold.red;\n static warningText = chalk.keyword('orange');\n static successText = chalk.keyword('green');\n static helpText = chalk.blue;\n static highlightText = chalk.yellow;\n static infoText = chalk.keyword('grey');\n static standardText = chalk.keyword('white');\n static boldText = chalk.bold;\n static critical: LogMethod = content => {\n const message = `${Logger.getPrefix()} ${Logger.errorText(\n '[CRITICAL]'\n )} ${content}`;\n console.log(message);\n };\n static error: LogErrorMethod = (content, err, newline = '\\n') => {\n const message = `${Logger.getPrefix()} ${Logger.errorText(\n `${Logger.isUserTerminal ? '\u274C' : '[ERROR]'} ${content}${\n err ? `\\n\\n${JSON.stringify(err, null, 2)}` : ''\n }`\n )}${newline}`;\n if (progress.active) progress.current.interrupt(message);\n else console.log(message);\n };\n static warning: LogMethod = content => {\n // if (process.env.DEBUG === 'true') {\n const message = `${Logger.getPrefix()} ${Logger.warningText(\n `${Logger.isUserTerminal ? '\u26A0\uFE0F ' : '[WARN]'} ${content}`\n )}\\n`;\n if (progress.active) progress.current.interrupt(message);\n else console.log(message);\n // }\n };\n static success: LogMethod = content => {\n const message = `${Logger.getPrefix()} ${Logger.successText(\n `${Logger.isUserTerminal ? '\u2705' : '[OK]'} ${content}`\n )}`;\n if (progress.active) progress.current.interrupt(message);\n else console.log(message);\n };\n static info: LogMethod = content => {\n const message = `${Logger.getPrefix()} ${\n Logger.isUserTerminal ? chalk.bgCyan(' \u2139 ') : '[INFO]'\n } ${Logger.infoText(content)}`;\n if (progress.active) progress.current.interrupt(message);\n else console.log(message);\n };\n static help: LogMethod = content => {\n const message = `${Logger.getPrefix()} ${chalk.blue(\n `${Logger.isUserTerminal ? '\u23E9' : '[HELP]'} ${content}`\n )}\\n`;\n if (progress.active) progress.current.interrupt(message);\n else console.log(message);\n };\n static standard: LogMethod = content => {\n const message = `${Logger.getPrefix()} ${\n Logger.isUserTerminal ? '\u25FB\uFE0F' : '[STD]'\n } \\n${Logger.standardText(content)}`;\n if (progress.active) progress.current.interrupt(message);\n else console.log(message);\n progress.current.interrupt(message);\n };\n static json: LogJsonDepthMethod = (content, depth = 9) =>\n console.dir(deepCleaner(content), { colors: true, depth });\n static mixed: LogArrayMethod = contentArray =>\n console.log(`${Logger.getPrefix()} ${contentArray.join(' ')}`);\n static line = () =>\n Logger.raw(` ${Logger.infoText(`-------------------------------------`)}`);\n\n static object: LogJsonMethod = content => {\n for (const [key, value] of Object.entries(content)) {\n if (value && typeof value === 'object') {\n Logger.raw(` ${chalk.bold.grey(key)}:`);\n if (key === 'fields' && Array.isArray(value)) {\n for (const field of value || []) {\n Logger.raw(\n ` ${chalk.bold(field.id)}${\n field.id === content.entryTitleField\n ? '**'\n : field.validations.minCount?.value ||\n typeof field.validations.required?.message !== 'undefined'\n ? '*'\n : ''\n }: ${chalk.grey(\n `${field.dataType}${\n field.dataFormat\n ? `<${\n Array.isArray(\n field.validations.allowedFieldTypes?.fields\n )\n ? `composer[${field.validations.allowedFieldTypes.fields\n .map((f: any) => f.id)\n .join(' | ')}]`\n : field.dataFormat\n }${\n field.dataFormat === 'entry'\n ? `, ${field.validations.allowedContentTypes.contentTypes.join(\n ' | '\n )}`\n : ''\n }>`\n : ''\n }${\n field.validations.maxLength?.value\n ? `(${field.validations.maxLength.value})`\n : ''\n }`\n )}`\n );\n }\n } else if (key === 'groups' && Array.isArray(value)) {\n for (const group of value || []) {\n const description =\n Object.keys(group.description).length &&\n Object.values(group.description)?.[0];\n Logger.raw(\n ` ${chalk.bold(group.id)}${\n description\n ? `: ${chalk.grey(Object.values(group.description)?.[0])}`\n : ''\n }`\n );\n }\n } else {\n Logger.objectRecurse(value, 3, ' ');\n // for (const [innerkey, innervalue] of Object.entries(value)) {\n // if (innervalue && typeof innervalue === 'object') {\n // Logger.raw(` ${chalk.bold.grey(innerkey)}:`);\n // console.table(innervalue);\n // } else if (\n // typeof innervalue !== 'undefined' &&\n // innervalue !== null\n // ) {\n // Logger.raw(` ${chalk.bold.grey(innerkey)}: ${innervalue}`);\n // }\n // }\n }\n } else if (typeof value !== 'undefined' && value !== null) {\n const valueText =\n key === 'id' && typeof value === 'string'\n ? Logger.highlightText(value)\n : value;\n Logger.raw(` ${chalk.bold.grey(key)}: ${valueText}`);\n }\n }\n };\n\n static objectRecurse: LogJsonMethod = (content, depth = 3, indent = '') => {\n if (Array.isArray(content)) {\n for (const item of content) {\n if (item && typeof item === 'object') {\n if (Array.isArray(item) && depth > 3)\n Logger.raw(chalk.grey(`${indent} [${item.join(', ')}]`));\n else Logger.objectRecurse(item, depth + 1, `${indent} `);\n } else Logger.raw(`${indent}${item}`);\n }\n } else\n for (const [key, value] of Object.entries(content)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n if (item && typeof item === 'object') {\n if (Array.isArray(item) && depth > 3)\n Logger.raw(chalk.grey(`${indent} [${item.join(', ')}]`));\n else Logger.objectRecurse(item, depth + 1, `${indent}`);\n } else {\n Logger.raw(`${indent} ${item}`);\n }\n }\n } else if (value && typeof value === 'object') {\n Logger.raw(`${indent}${chalk.bold.grey(key)}:`);\n\n Logger.objectRecurse(value, depth + 1, `${indent} `);\n // console.table(value);\n } else if (typeof value !== 'undefined' && value !== null) {\n Logger.raw(`${indent}${chalk.bold.grey(key)}: ${value}`);\n }\n }\n };\n static raw: LogMethod = (content: string) => {\n if (progress.active) progress.current.interrupt(content);\n else console.log(content);\n };\n}\n\nexport const logError: LogErrorFunc = (\n err = new Error('Undefined error'),\n msg,\n level = 'error'\n) => {\n Logger[level](msg || err.message || err?.data?.message || err.Message);\n (Array.isArray(err) ? err : [err]).map((error: AppError) => {\n if ('stack' in error) Logger.raw(` ${Logger.infoText(error.stack)}`);\n if ('data' in error)\n Logger.raw(` ${Logger.infoText(tryStringify(error.data))}`);\n });\n //Logger.line();\n return null;\n};\n\nexport const progress = {\n active: false,\n done: () => new ProgressBar('', 0),\n colours: { green: '\\u001b[42m \\u001b[0m', red: '\\u001b[41m \\u001b[0m' },\n current: new ProgressBar(`:bar`, {\n complete: '=',\n incomplete: ' ',\n width: 20,\n total: 100,\n }),\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["dateFormat", "chalk", "deepCleaner", "ProgressBar"]
|
|
7
7
|
}
|
package/dist/version.js
CHANGED
|
@@ -21,7 +21,7 @@ __export(version_exports, {
|
|
|
21
21
|
LIB_VERSION: () => LIB_VERSION
|
|
22
22
|
});
|
|
23
23
|
module.exports = __toCommonJS(version_exports);
|
|
24
|
-
const LIB_VERSION = "1.0.0-beta.
|
|
24
|
+
const LIB_VERSION = "1.0.0-beta.59";
|
|
25
25
|
// Annotate the CommonJS export names for ESM import in node:
|
|
26
26
|
0 && (module.exports = {
|
|
27
27
|
LIB_VERSION
|
package/dist/version.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/version.ts"],
|
|
4
|
-
"sourcesContent": ["export const LIB_VERSION = \"1.0.0-beta.
|
|
4
|
+
"sourcesContent": ["export const LIB_VERSION = \"1.0.0-beta.59\";\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,MAAM,cAAc;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "contensis-cli",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.59",
|
|
4
4
|
"description": "A fully featured Contensis command line interface with a shell UI provides simple and intuitive ways to manage or profile your content in any NodeJS terminal.",
|
|
5
5
|
"repository": "https://github.com/contensis/node-cli",
|
|
6
6
|
"homepage": "https://github.com/contensis/node-cli/tree/main/packages/contensis-cli#readme",
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
"jsonpath-mapper": "^1.1.0",
|
|
36
36
|
"keytar": "^7.9.0",
|
|
37
37
|
"lodash": "^4.17.21",
|
|
38
|
-
"migratortron": "^1.0.0-beta.
|
|
38
|
+
"migratortron": "^1.0.0-beta.22",
|
|
39
39
|
"node-fetch": "^2.6.7",
|
|
40
40
|
"patch-package": "^6.4.7",
|
|
41
41
|
"xml2js": "^0.4.23"
|
|
@@ -194,7 +194,7 @@ export const LogMessages = {
|
|
|
194
194
|
entries: {
|
|
195
195
|
imported: (env: string, commit: boolean, count: number) =>
|
|
196
196
|
`[${env}] ${commit ? `Imported` : `Will import`} ${count} entries`,
|
|
197
|
-
failedImport: (env: string) => `[${env}] Unable to
|
|
197
|
+
failedImport: (env: string) => `[${env}] Unable to import entries`,
|
|
198
198
|
removed: (env: string, commit: boolean) =>
|
|
199
199
|
`[${env}] ${commit ? `Deleted` : `Will delete`} entries`,
|
|
200
200
|
failedRemove: (env: string) => `[${env}] Unable to delete entries`,
|
|
@@ -126,17 +126,6 @@ class ContensisCli {
|
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
128
|
|
|
129
|
-
get contentTypes() {
|
|
130
|
-
return this.contensis?.models.contentTypes();
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
get components() {
|
|
134
|
-
return this.contensis?.models.components();
|
|
135
|
-
}
|
|
136
|
-
get models(): Model[] | undefined {
|
|
137
|
-
return this.contensis?.models.contentModels();
|
|
138
|
-
}
|
|
139
|
-
|
|
140
129
|
constructor(
|
|
141
130
|
args: string[],
|
|
142
131
|
outputOpts?: OutputOptions & IConnectOptions & IImportOptions,
|
|
@@ -715,23 +704,6 @@ class ContensisCli {
|
|
|
715
704
|
}
|
|
716
705
|
};
|
|
717
706
|
|
|
718
|
-
HydrateContensis = async () => {
|
|
719
|
-
const { log } = this;
|
|
720
|
-
const contensis = await this.ConnectContensis();
|
|
721
|
-
|
|
722
|
-
if (contensis) {
|
|
723
|
-
// Retrieve content types list for env
|
|
724
|
-
const [contensisErr, models] = await to(
|
|
725
|
-
contensis.models.HydrateContensisRepositories()
|
|
726
|
-
);
|
|
727
|
-
|
|
728
|
-
if (contensisErr) {
|
|
729
|
-
log.error(contensisErr.message);
|
|
730
|
-
return contensisErr;
|
|
731
|
-
}
|
|
732
|
-
}
|
|
733
|
-
};
|
|
734
|
-
|
|
735
707
|
PrintApiKeys = async () => {
|
|
736
708
|
const { currentEnv, log, messages } = this;
|
|
737
709
|
const contensis = await this.ConnectContensis();
|
|
@@ -864,23 +836,14 @@ class ContensisCli {
|
|
|
864
836
|
}
|
|
865
837
|
};
|
|
866
838
|
|
|
867
|
-
GetContentTypes = async () => {
|
|
868
|
-
const { currentProject, log, messages } = this;
|
|
869
|
-
let err;
|
|
870
|
-
if (!this.contensis) err = await this.HydrateContensis();
|
|
871
|
-
|
|
872
|
-
if (err) log.error(messages.models.noList(currentProject));
|
|
873
|
-
if (!this.contensis) log.warning(messages.models.noList(currentProject));
|
|
874
|
-
|
|
875
|
-
return this.contensis;
|
|
876
|
-
};
|
|
877
|
-
|
|
878
839
|
PrintContentModels = async (modelIds: string[] = []) => {
|
|
879
840
|
const { currentProject, log, messages } = this;
|
|
880
|
-
const contensis = await this.
|
|
841
|
+
const contensis = await this.ConnectContensis();
|
|
881
842
|
if (contensis) {
|
|
882
843
|
// Retrieve models list for env
|
|
883
|
-
const
|
|
844
|
+
const models = await contensis.models.contentModels();
|
|
845
|
+
const contentTypes = await contensis.models.contentTypes();
|
|
846
|
+
const components = await contensis.models.components();
|
|
884
847
|
|
|
885
848
|
// Models to output to console
|
|
886
849
|
const returnModels = modelIds?.length
|
|
@@ -910,8 +873,12 @@ class ContensisCli {
|
|
|
910
873
|
// Create an array of all the content types and component definitions
|
|
911
874
|
// we will use this when outputting to a file
|
|
912
875
|
const contentModelBackup = [
|
|
913
|
-
...contentTypes.filter(c =>
|
|
914
|
-
|
|
876
|
+
...contentTypes.filter(c =>
|
|
877
|
+
contentTypeIds.map(i => i.toLowerCase()).includes(c.id.toLowerCase())
|
|
878
|
+
),
|
|
879
|
+
...components.filter(c =>
|
|
880
|
+
componentIds.map(i => i.toLowerCase()).includes(c.id.toLowerCase())
|
|
881
|
+
),
|
|
915
882
|
];
|
|
916
883
|
|
|
917
884
|
if (Array.isArray(returnModels)) {
|
|
@@ -931,7 +898,7 @@ class ContensisCli {
|
|
|
931
898
|
log.raw('');
|
|
932
899
|
if (models?.length) {
|
|
933
900
|
this.HandleFormattingAndOutput(contentModelBackup, () => {
|
|
934
|
-
// print the content models
|
|
901
|
+
// print the content models to console
|
|
935
902
|
for (const model of models) {
|
|
936
903
|
const components = model.components?.length || 0;
|
|
937
904
|
const contentTypes = model.contentTypes?.length || 0;
|
|
@@ -1033,10 +1000,10 @@ class ContensisCli {
|
|
|
1033
1000
|
|
|
1034
1001
|
PrintContentTypes = async () => {
|
|
1035
1002
|
const { currentProject, log, messages } = this;
|
|
1036
|
-
await this.
|
|
1037
|
-
if (
|
|
1003
|
+
const contensis = await this.ConnectContensis();
|
|
1004
|
+
if (contensis) {
|
|
1038
1005
|
// Retrieve content types list for env
|
|
1039
|
-
const
|
|
1006
|
+
const contentTypes = await contensis.models.contentTypes();
|
|
1040
1007
|
|
|
1041
1008
|
if (Array.isArray(contentTypes)) {
|
|
1042
1009
|
log.success(messages.contenttypes.list(currentProject));
|
|
@@ -1057,10 +1024,10 @@ class ContensisCli {
|
|
|
1057
1024
|
|
|
1058
1025
|
PrintContentType = async (contentTypeId: string) => {
|
|
1059
1026
|
const { currentProject, log, messages } = this;
|
|
1060
|
-
await this.
|
|
1061
|
-
if (
|
|
1027
|
+
const contensis = await this.ConnectContensis();
|
|
1028
|
+
if (contensis) {
|
|
1062
1029
|
// Retrieve content types list for env
|
|
1063
|
-
const
|
|
1030
|
+
const contentTypes = await contensis.models.contentTypes();
|
|
1064
1031
|
|
|
1065
1032
|
if (Array.isArray(contentTypes)) {
|
|
1066
1033
|
const contentType = contentTypes.find(
|
|
@@ -1213,10 +1180,10 @@ class ContensisCli {
|
|
|
1213
1180
|
|
|
1214
1181
|
PrintComponents = async () => {
|
|
1215
1182
|
const { currentProject, log, messages } = this;
|
|
1216
|
-
await this.
|
|
1217
|
-
if (
|
|
1183
|
+
const contensis = await this.ConnectContensis();
|
|
1184
|
+
if (contensis) {
|
|
1218
1185
|
// Retrieve components list for env
|
|
1219
|
-
const
|
|
1186
|
+
const components = await contensis.models.components();
|
|
1220
1187
|
|
|
1221
1188
|
if (Array.isArray(components)) {
|
|
1222
1189
|
log.success(messages.components.list(currentProject));
|
|
@@ -1238,10 +1205,10 @@ class ContensisCli {
|
|
|
1238
1205
|
|
|
1239
1206
|
PrintComponent = async (componentId: string) => {
|
|
1240
1207
|
const { currentProject, log, messages } = this;
|
|
1241
|
-
await this.
|
|
1242
|
-
if (
|
|
1208
|
+
const contensis = await this.ConnectContensis();
|
|
1209
|
+
if (contensis) {
|
|
1243
1210
|
// Retrieve content types list for env
|
|
1244
|
-
const
|
|
1211
|
+
const components = await contensis.models.components();
|
|
1245
1212
|
|
|
1246
1213
|
if (Array.isArray(components)) {
|
|
1247
1214
|
const component = components.find(
|
|
@@ -1448,6 +1415,7 @@ class ContensisCli {
|
|
|
1448
1415
|
|
|
1449
1416
|
if (
|
|
1450
1417
|
!err &&
|
|
1418
|
+
!result.errors?.length &&
|
|
1451
1419
|
((!commit && result.entriesToMigrate[currentProject].totalCount) ||
|
|
1452
1420
|
(commit &&
|
|
1453
1421
|
(result.migrateResult?.created || result.migrateResult?.updated)))
|
|
@@ -119,7 +119,6 @@ export const printMigrateResult = (
|
|
|
119
119
|
showChangedEntries?: boolean;
|
|
120
120
|
} = {}
|
|
121
121
|
) => {
|
|
122
|
-
// if (Object.keys(migrateResult.entriesToMigrate.entryIds).length)
|
|
123
122
|
console.log(``);
|
|
124
123
|
|
|
125
124
|
for (const [contentTypeId, entryRes] of Object.entries(
|
|
@@ -129,7 +128,6 @@ export const printMigrateResult = (
|
|
|
129
128
|
string,
|
|
130
129
|
any
|
|
131
130
|
][]) {
|
|
132
|
-
// console.log(`${log.helpText(contentTypeId)} ${entryStatus.entryTitle}`);
|
|
133
131
|
if (
|
|
134
132
|
showAllEntries ||
|
|
135
133
|
(showChangedEntries &&
|
|
@@ -176,13 +174,6 @@ export const printMigrateResult = (
|
|
|
176
174
|
}
|
|
177
175
|
}
|
|
178
176
|
if (showAllEntries || showChangedEntries) console.log(``);
|
|
179
|
-
// if (
|
|
180
|
-
// contensis?.isPreview &&
|
|
181
|
-
// migrateResult.entriesToMigrate?.[currentProject]?.totalCount > 0 &&
|
|
182
|
-
// !migrateResult.errors
|
|
183
|
-
// ) {
|
|
184
|
-
// log.help(messages.entries.commitTip());
|
|
185
|
-
// }
|
|
186
177
|
|
|
187
178
|
for (const [projectId, contentTypeCounts] of Object.entries(
|
|
188
179
|
migrateResult.entries || {}
|
|
@@ -200,6 +191,7 @@ export const printMigrateResult = (
|
|
|
200
191
|
string,
|
|
201
192
|
number
|
|
202
193
|
][]) {
|
|
194
|
+
const isTotalCountRow = contentTypeId === 'totalCount';
|
|
203
195
|
const migrateStatusAndCount =
|
|
204
196
|
migrateResult.entriesToMigrate[currentProject][contentTypeId];
|
|
205
197
|
const existingCount =
|
|
@@ -210,15 +202,16 @@ export const printMigrateResult = (
|
|
|
210
202
|
? migrateStatusAndCount?.['no change'] || 0
|
|
211
203
|
: migrateStatusAndCount;
|
|
212
204
|
|
|
213
|
-
const isTotalCountRow = contentTypeId === 'totalCount';
|
|
214
|
-
|
|
215
205
|
const changedPercentage = (
|
|
216
206
|
(noChangeOrTotalEntriesCount / count) *
|
|
217
207
|
100
|
|
218
208
|
).toFixed(0);
|
|
219
209
|
|
|
220
210
|
const existingColor =
|
|
221
|
-
existingPercent === '0'
|
|
211
|
+
existingPercent === '0' || action === 'delete'
|
|
212
|
+
? log.warningText
|
|
213
|
+
: log.infoText;
|
|
214
|
+
|
|
222
215
|
const changedColor = isTotalCountRow
|
|
223
216
|
? log.helpText
|
|
224
217
|
: changedPercentage === '100'
|
|
@@ -233,15 +226,11 @@ export const printMigrateResult = (
|
|
|
233
226
|
)
|
|
234
227
|
: `${contentTypeId}: ${log.helpText(count)}`
|
|
235
228
|
}${
|
|
236
|
-
changedPercentage === '100' ||
|
|
229
|
+
changedPercentage === '100' || isTotalCountRow
|
|
237
230
|
? ''
|
|
238
|
-
: existingColor(
|
|
239
|
-
` [existing: ${
|
|
240
|
-
isTotalCountRow ? existingCount : `${existingPercent}%`
|
|
241
|
-
}]`
|
|
242
|
-
)
|
|
231
|
+
: existingColor(` [existing: ${`${existingPercent}%`}]`)
|
|
243
232
|
}${
|
|
244
|
-
existingPercent === '0'
|
|
233
|
+
existingPercent === '0' || (action === 'import' && isTotalCountRow)
|
|
245
234
|
? ''
|
|
246
235
|
: changedColor(
|
|
247
236
|
` ${
|
|
@@ -260,7 +249,8 @@ export const printMigrateResult = (
|
|
|
260
249
|
console.log(
|
|
261
250
|
` - ${log.errorText(`errors: ${migrateResult.errors.length}`)}\n`
|
|
262
251
|
);
|
|
263
|
-
for (const error of migrateResult.errors)
|
|
252
|
+
for (const error of migrateResult.errors)
|
|
253
|
+
log.error(error.message || error, null, '');
|
|
264
254
|
}
|
|
265
255
|
};
|
|
266
256
|
|
package/src/util/logger.ts
CHANGED
|
@@ -6,7 +6,7 @@ import ProgressBar from 'progress';
|
|
|
6
6
|
import { tryStringify } from '.';
|
|
7
7
|
|
|
8
8
|
type LogMethod = (content: string) => void;
|
|
9
|
-
type LogErrorMethod = (content: string, err?: any) => void;
|
|
9
|
+
type LogErrorMethod = (content: string, err?: any, newline?: string) => void;
|
|
10
10
|
type LogJsonMethod = (content: any, depth?: number, indent?: string) => void;
|
|
11
11
|
type LogJsonDepthMethod = (content: any, depth: number) => void;
|
|
12
12
|
type LogArrayMethod = (contentArray: string[]) => void;
|
|
@@ -37,12 +37,12 @@ export class Logger {
|
|
|
37
37
|
)} ${content}`;
|
|
38
38
|
console.log(message);
|
|
39
39
|
};
|
|
40
|
-
static error: LogErrorMethod = (content, err) => {
|
|
40
|
+
static error: LogErrorMethod = (content, err, newline = '\n') => {
|
|
41
41
|
const message = `${Logger.getPrefix()} ${Logger.errorText(
|
|
42
42
|
`${Logger.isUserTerminal ? '❌' : '[ERROR]'} ${content}${
|
|
43
43
|
err ? `\n\n${JSON.stringify(err, null, 2)}` : ''
|
|
44
44
|
}`
|
|
45
|
-
)}
|
|
45
|
+
)}${newline}`;
|
|
46
46
|
if (progress.active) progress.current.interrupt(message);
|
|
47
47
|
else console.log(message);
|
|
48
48
|
};
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION = "1.0.0-beta.
|
|
1
|
+
export const LIB_VERSION = "1.0.0-beta.59";
|