Skip to content

Commit 9e6e4cc

Browse files
Merge pull request #116 from node-red-hitachi/fix-urltemplate
Eliminate dependency on CLDR and minor fix for WoT code generation
2 parents 4fc0117 + 735d061 commit 9e6e4cc

File tree

3 files changed

+29
-18
lines changed

3 files changed

+29
-18
lines changed

lib/webofthings/wotutils.js

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ const Ajv = require('ajv');
1818
const url = require('url');
1919
const fs = require('fs');
2020
const path = require('path');
21-
const cldr = require('cldr');
2221

2322
function validateTd(td) {
2423
const TDSchema =
@@ -40,21 +39,32 @@ function isOpInForms(op, forms) {
4039
.some(e=>e === op);
4140
}
4241

43-
function textDirection(lang) {
44-
let dir = 'auto';
45-
try {
46-
const ori = cldr.extractLayout(lang);
47-
if (ori.characterOrder === 'left-to-right') {
48-
dir = 'ltr'
49-
} else if (ori.characterOrder === 'right-to-left') {
50-
dir = 'rtl'
51-
}
52-
} catch (e) {
53-
if (lang === "az-Arab") {
54-
dir = 'rtl'
55-
}
42+
function textDirection(langid) {
43+
// based on CLDR and other sources.
44+
const rtlLangs = [
45+
"ar-AE","ar-BH","ar-DJ","ar-DZ","ar-EG","ar-EH","ar-ER","ar-IL","ar-IQ",
46+
"ar-JO","ar-KM","ar-KW","ar-LB","ar-LY","ar-MA","ar-MR","ar-OM","ar-PS",
47+
"ar-QA","ar-SA","ar-SD","ar-SO","ar-SS","ar-SY","ar-TD","ar-TN","ar-YE","ar",
48+
"az-Arab",
49+
"ckb-IR","ckb",
50+
"fa-AF","fa",
51+
"he",
52+
"ks",
53+
"lrc-IQ","lrc",
54+
"mzn",
55+
"pa-Arab",
56+
"ps-PK","ps",
57+
"sd",
58+
"ug",
59+
"ur-IN","ur",
60+
"uz-Arab",
61+
"yi",
62+
];
63+
if (langid === undefined || langid === "") {
64+
return 'auto';
65+
} else {
66+
return (rtlLangs.includes(langid) ? 'rtl' : 'ltr');
5667
}
57-
return dir;
5868
}
5969

6070
function normalizeTd(td) {
@@ -63,7 +73,9 @@ function normalizeTd(td) {
6373

6474
function formconv(intr, f, affordance) {
6575
if (f.hasOwnProperty("href")) {
66-
f.href = url.resolve(baseUrl, f.href); // decodeURIComponent(url.resolve(baseUrl, f.href));
76+
f.href = url.resolve(baseUrl, f.href)
77+
.replace(/%7B/gi,'{')
78+
.replace(/%7D/gi,'}');
6779
}
6880
if (f.hasOwnProperty("security") && typeof f.security === 'string') {
6981
f.security = [f.security];

package.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,6 @@
4545
"ajv": "6.12.0",
4646
"api-spec-converter": "2.11.0",
4747
"axios": "0.20.0",
48-
"cldr": "5.5.4",
4948
"colors": "1.4.0",
5049
"csv-string": "3.1.8",
5150
"javascript-obfuscator": "0.28.1",

templates/webofthings/node.js.mustache

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ module.exports = function (RED) {
431431
const urivars = prop.hasOwnProperty("uriVariables") ? msg.payload : {};
432432
if (prop.uriVariables) {
433433
const ajv = new Ajv({allErrors: true});
434-
if (!ajv.validate(prop.uriVariables, urlvars)) {
434+
if (!ajv.validate(prop.uriVariables, urivars)) {
435435
node.warn(`input schema validation error: ${ajv.errorsText()}`, msg);
436436
}
437437
}

0 commit comments

Comments
 (0)