ztechno_core 0.0.61 → 0.0.63
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/index.d.ts +1 -1
- package/lib/translate_service.d.ts +2 -1
- package/lib/translate_service.js +17 -10
- package/lib/typings/translate_types.d.ts +14 -11
- package/package.json +2 -2
package/lib/index.d.ts
CHANGED
|
@@ -14,6 +14,6 @@ export {
|
|
|
14
14
|
MailServiceOptions,
|
|
15
15
|
MailResponse,
|
|
16
16
|
} from './typings/mail_types';
|
|
17
|
-
export { TranslateData, ZDom, ZNode, ZNodeText, dbTranslationRow } from './typings/translate_types';
|
|
17
|
+
export { TranslateData, Dom as ZDom, Node as ZNode, ZNodeText, dbTranslationRow } from './typings/translate_types';
|
|
18
18
|
export { ZRequiredUserColumns, ZUser, ZUserCredentials, ZUserSession } from './typings/user_types';
|
|
19
19
|
export { ZCryptoService, ZMailService, ZSqlService, ZTranslateService, ZUserService, ZEngineBase };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TranslateData, dbTranslationRow } from '
|
|
1
|
+
import { TranslateData, dbTranslationRow } from './index';
|
|
2
2
|
import { ATranslateLang, TranslateServiceOptions } from './typings/translate_types';
|
|
3
3
|
export declare class ZTranslateService {
|
|
4
4
|
private opt;
|
|
@@ -16,6 +16,7 @@ export declare class ZTranslateService {
|
|
|
16
16
|
html: string,
|
|
17
17
|
cookies: {
|
|
18
18
|
lang: string;
|
|
19
|
+
} & {
|
|
19
20
|
[key: string]: string;
|
|
20
21
|
},
|
|
21
22
|
): Promise<string>;
|
package/lib/translate_service.js
CHANGED
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
var __importDefault =
|
|
3
|
+
(this && this.__importDefault) ||
|
|
4
|
+
function (mod) {
|
|
5
|
+
return mod && mod.__esModule ? mod : { default: mod };
|
|
6
|
+
};
|
|
2
7
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
3
8
|
exports.ZTranslateService = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const htmlParser = new DomParser();
|
|
9
|
+
const dom_parser_1 = require('dom-parser');
|
|
10
|
+
const translate_1 = __importDefault(require('translate'));
|
|
7
11
|
class ZTranslateService {
|
|
8
12
|
get sql() {
|
|
9
13
|
return this.opt.sqlService;
|
|
@@ -37,7 +41,8 @@ class ZTranslateService {
|
|
|
37
41
|
[`£`]: `£`,
|
|
38
42
|
[`™`]: `™`,
|
|
39
43
|
};
|
|
40
|
-
|
|
44
|
+
translate_1.default.key = opt.googleApiKey;
|
|
45
|
+
this.surpressErrors = opt.surpressErrors ?? true;
|
|
41
46
|
this.getLanguages().map((lang) => (this.localCache[lang.lang] = {}));
|
|
42
47
|
setInterval(() => this.clearLocalCache(), 1000 * 60 * 60); // Every Hour
|
|
43
48
|
}
|
|
@@ -80,7 +85,7 @@ class ZTranslateService {
|
|
|
80
85
|
}
|
|
81
86
|
let result;
|
|
82
87
|
try {
|
|
83
|
-
result = await
|
|
88
|
+
result = await (0, translate_1.default)(text, {
|
|
84
89
|
from: this.getSourceLang(),
|
|
85
90
|
to: lang,
|
|
86
91
|
});
|
|
@@ -93,7 +98,7 @@ class ZTranslateService {
|
|
|
93
98
|
async translateHtml(html, cookies) {
|
|
94
99
|
const lang = this.getLang(cookies);
|
|
95
100
|
const srcLang = this.getSourceLang();
|
|
96
|
-
const dom =
|
|
101
|
+
const dom = (0, dom_parser_1.parseFromString)(html);
|
|
97
102
|
const htmlNodes = dom.getElementsByTagName('html');
|
|
98
103
|
const mainNodes = dom.getElementsByTagName('main');
|
|
99
104
|
const isView = htmlNodes.length === 0;
|
|
@@ -108,6 +113,7 @@ class ZTranslateService {
|
|
|
108
113
|
return output.startsWith(`<!DOCTYPE html>`) ? output : `<!DOCTYPE html>\r\n${output}`;
|
|
109
114
|
}
|
|
110
115
|
translateHtmlRec(lang, node, promises, skipTranslate = false) {
|
|
116
|
+
if (this.opt.verbose) this.opt.verbose(node.nodeName, node);
|
|
111
117
|
if (node.getAttribute('notranslate') != null) {
|
|
112
118
|
skipTranslate = true;
|
|
113
119
|
}
|
|
@@ -130,6 +136,7 @@ class ZTranslateService {
|
|
|
130
136
|
})
|
|
131
137
|
.catch((err) => {
|
|
132
138
|
node.text = text;
|
|
139
|
+
if (this.opt.log) this.opt.log(err, node);
|
|
133
140
|
if (!this.surpressErrors) {
|
|
134
141
|
throw err; // TODO: Find out if surpressing is better
|
|
135
142
|
}
|
|
@@ -171,10 +178,10 @@ class ZTranslateService {
|
|
|
171
178
|
});
|
|
172
179
|
}
|
|
173
180
|
async fetch(key, lang) {
|
|
174
|
-
const results = await this.sql.query(
|
|
175
|
-
lang
|
|
176
|
-
key,
|
|
177
|
-
|
|
181
|
+
const results = await this.sql.query(
|
|
182
|
+
`SELECT \`value\` FROM translations WHERE \`lang\`=? AND \`key\`=CONVERT(? USING utf8mb3)`,
|
|
183
|
+
[lang, key],
|
|
184
|
+
);
|
|
178
185
|
if (results.length > 0) {
|
|
179
186
|
// api.query(`UPDATE translations SET last_used=CURRENT_TIMESTAMP WHERE \`lang\`=? AND \`key\`=?`, [lang, key])
|
|
180
187
|
// .catch(err => console.error(err))
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { ZSqlService } from '../sql_service';
|
|
2
|
-
export type
|
|
3
|
-
export type
|
|
2
|
+
export type Dom = {} & Node;
|
|
3
|
+
export type Node = {
|
|
4
4
|
getAttribute: (attr: string) => string;
|
|
5
|
-
getElementsByTagName: (tag: string) =>
|
|
6
|
-
getElementsByClassName: (cls: string) =>
|
|
7
|
-
getElementById: (id: string) =>
|
|
8
|
-
getElementsByName: (name: string) =>
|
|
5
|
+
getElementsByTagName: (tag: string) => Node[];
|
|
6
|
+
getElementsByClassName: (cls: string) => Node[];
|
|
7
|
+
getElementById: (id: string) => Node;
|
|
8
|
+
getElementsByName: (name: string) => Node[];
|
|
9
9
|
nodeType: string;
|
|
10
10
|
nodeName: string;
|
|
11
|
-
childNodes:
|
|
12
|
-
firstChild:
|
|
13
|
-
lastChild:
|
|
14
|
-
parentNode:
|
|
11
|
+
childNodes: Node[];
|
|
12
|
+
firstChild: Node;
|
|
13
|
+
lastChild: Node;
|
|
14
|
+
parentNode: Node;
|
|
15
15
|
attributes: any[];
|
|
16
16
|
innerHTML: string;
|
|
17
17
|
outerHTML: string;
|
|
@@ -20,7 +20,7 @@ export type ZNode = {
|
|
|
20
20
|
};
|
|
21
21
|
export type ZNodeText = {
|
|
22
22
|
text: string;
|
|
23
|
-
} &
|
|
23
|
+
} & Node;
|
|
24
24
|
export type TranslateData = {
|
|
25
25
|
value: string;
|
|
26
26
|
meta?: {
|
|
@@ -43,4 +43,7 @@ export type TranslateServiceOptions = {
|
|
|
43
43
|
languages?: ATranslateLang[];
|
|
44
44
|
defaultLang?: string;
|
|
45
45
|
sourceLang?: string;
|
|
46
|
+
surpressErrors?: boolean;
|
|
47
|
+
log?: (data: any, context: any) => any;
|
|
48
|
+
verbose?: (data: any, context: any) => any;
|
|
46
49
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ztechno_core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.63",
|
|
4
4
|
"description": "Core files for ztechno framework",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
},
|
|
40
40
|
"dependencies": {
|
|
41
41
|
"@types/express": "^5.0.0",
|
|
42
|
-
"dom-parser": "^
|
|
42
|
+
"dom-parser": "^1.1.5",
|
|
43
43
|
"mysql": "^2.18.1",
|
|
44
44
|
"nodemailer": "^6.8.0",
|
|
45
45
|
"translate": "^1.4.1"
|