@takeshape/util 11.23.0 → 11.24.0
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/strings.d.ts +3 -0
- package/dist/strings.d.ts.map +1 -1
- package/dist/strings.js +19 -0
- package/dist/templates.d.ts +1 -0
- package/dist/templates.d.ts.map +1 -1
- package/dist/templates.js +24 -0
- package/es/strings.js +16 -0
- package/es/templates.js +23 -0
- package/package.json +3 -2
package/dist/strings.d.ts
CHANGED
|
@@ -13,4 +13,7 @@ export declare function pascalCase(str: string | string[]): string;
|
|
|
13
13
|
export declare function isUuid(str: string): boolean;
|
|
14
14
|
export declare function isEmptyString(str: unknown): boolean;
|
|
15
15
|
export declare function isIntegerLike(value: string | number): boolean;
|
|
16
|
+
export declare function base64Encode(str: string): string;
|
|
17
|
+
export declare function base64Decode(str: string): string;
|
|
18
|
+
export declare function encodePropertyName(value: string): string;
|
|
16
19
|
//# sourceMappingURL=strings.d.ts.map
|
package/dist/strings.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/strings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../src/strings.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,QAAuB,MAAM,GAAG,MAAM,EAAE,KAAK,MAAM,CAAC;AAE1E;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;AACrD,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;IAAC,cAAc,EAAE,MAAM,CAAA;CAAC,GAAG,MAAM,CAAC;AAkC1F;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAEzD;AAED,wBAAgB,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE3C;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAEnD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAM7D;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAMvC;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,UAMvC;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD"}
|
package/dist/strings.js
CHANGED
|
@@ -3,12 +3,16 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
+
exports.base64Decode = base64Decode;
|
|
7
|
+
exports.base64Encode = base64Encode;
|
|
6
8
|
exports.camelCase = void 0;
|
|
9
|
+
exports.encodePropertyName = encodePropertyName;
|
|
7
10
|
exports.formatShapeName = formatShapeName;
|
|
8
11
|
exports.isEmptyString = isEmptyString;
|
|
9
12
|
exports.isIntegerLike = isIntegerLike;
|
|
10
13
|
exports.isUuid = isUuid;
|
|
11
14
|
exports.pascalCase = pascalCase;
|
|
15
|
+
var _browserOrNode = require("browser-or-node");
|
|
12
16
|
var _upperFirst = _interopRequireDefault(require("lodash/upperFirst"));
|
|
13
17
|
var _camelCase2 = _interopRequireDefault(require("lodash/camelCase"));
|
|
14
18
|
var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
|
|
@@ -65,4 +69,19 @@ function isIntegerLike(value) {
|
|
|
65
69
|
return true;
|
|
66
70
|
}
|
|
67
71
|
return /^\d+$/.test(value);
|
|
72
|
+
}
|
|
73
|
+
function base64Encode(str) {
|
|
74
|
+
if (_browserOrNode.isBrowser) {
|
|
75
|
+
return window.btoa(str);
|
|
76
|
+
}
|
|
77
|
+
return Buffer.from(str).toString('base64');
|
|
78
|
+
}
|
|
79
|
+
function base64Decode(str) {
|
|
80
|
+
if (_browserOrNode.isBrowser) {
|
|
81
|
+
return window.atob(str);
|
|
82
|
+
}
|
|
83
|
+
return Buffer.from(str, 'base64').toString();
|
|
84
|
+
}
|
|
85
|
+
function encodePropertyName(value) {
|
|
86
|
+
return value.replace(/[^A-Za-z0-9]/g, c => `%${c.charCodeAt(0).toString(16)}`);
|
|
68
87
|
}
|
package/dist/templates.d.ts
CHANGED
|
@@ -26,5 +26,6 @@ export declare function codeTemplate(applyPrefix: (str: string) => string, data:
|
|
|
26
26
|
text: string;
|
|
27
27
|
lang?: string;
|
|
28
28
|
}): string;
|
|
29
|
+
export declare function jsonTemplate(template: unknown, context: Record<string, string>): unknown;
|
|
29
30
|
export {};
|
|
30
31
|
//# sourceMappingURL=templates.d.ts.map
|
package/dist/templates.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/templates.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,KAAK,WAAW,EAAc,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"templates.d.ts","sourceRoot":"","sources":["../../src/templates.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,KAAK,WAAW,EAAc,MAAM,oBAAoB,CAAC;AAEjE,OAAO,EAAC,KAAK,YAAY,EAAC,MAAM,WAAW,CAAC;AAG5C,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAEtE;AAED,KAAK,QAAQ,GAAG;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAgB,KAAK,CAAC,GAAG,EAAE,QAAQ,UAalC;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,IAAI,CAAC,EAAE;QACL,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,OAAO,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,wBAAgB,aAAa,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE,iBAAiB,UA6B1F;AAaD,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAMlG;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAEhG;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAOnG;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,EAAE,IAAI,EAAE;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAC,UAMrG;AAED,wBAAgB,YAAY,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,OAAO,CA2BxF"}
|
package/dist/templates.js
CHANGED
|
@@ -8,12 +8,14 @@ exports.codeTemplate = codeTemplate;
|
|
|
8
8
|
exports.getApplyPrefix = getApplyPrefix;
|
|
9
9
|
exports.imageTemplate = imageTemplate;
|
|
10
10
|
exports.imageTemplateMdx = imageTemplateMdx;
|
|
11
|
+
exports.jsonTemplate = jsonTemplate;
|
|
11
12
|
exports.oembedTemplate = oembedTemplate;
|
|
12
13
|
exports.oembedTemplateMdx = oembedTemplateMdx;
|
|
13
14
|
var _classnames = _interopRequireDefault(require("classnames"));
|
|
14
15
|
var _escape = _interopRequireDefault(require("lodash/escape"));
|
|
15
16
|
var _routing = require("@takeshape/routing");
|
|
16
17
|
var _highlightCode = require("./highlight-code");
|
|
18
|
+
var _types = require("./types");
|
|
17
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
18
20
|
/*
|
|
19
21
|
* The intention is to move all this to the client package in the end, but right now it's here
|
|
@@ -93,4 +95,26 @@ function codeTemplate(applyPrefix, data) {
|
|
|
93
95
|
const code = (0, _highlightCode.highlightCode)(text, lang);
|
|
94
96
|
const langClass = lang ? ` class="${applyPrefix(`language-${lang}`)}"` : '';
|
|
95
97
|
return `<pre><code${langClass}>${code}</code></pre>`;
|
|
98
|
+
}
|
|
99
|
+
function jsonTemplate(template, context) {
|
|
100
|
+
const renderTemplate = template => {
|
|
101
|
+
return template.replace(/{{(\w+)}}/g, (_, name) => context[name] ?? '');
|
|
102
|
+
};
|
|
103
|
+
const transform = obj => {
|
|
104
|
+
if (Array.isArray(obj)) {
|
|
105
|
+
return obj.map(transform);
|
|
106
|
+
}
|
|
107
|
+
if ((0, _types.isRecord)(obj)) {
|
|
108
|
+
const result = {};
|
|
109
|
+
for (const key of Object.keys(obj)) {
|
|
110
|
+
result[renderTemplate(key)] = transform(obj[key]);
|
|
111
|
+
}
|
|
112
|
+
return result;
|
|
113
|
+
}
|
|
114
|
+
if (typeof obj === 'string') {
|
|
115
|
+
return renderTemplate(obj);
|
|
116
|
+
}
|
|
117
|
+
return obj;
|
|
118
|
+
};
|
|
119
|
+
return transform(template);
|
|
96
120
|
}
|
package/es/strings.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isBrowser } from 'browser-or-node';
|
|
1
2
|
import upperFirst from 'lodash/upperFirst';
|
|
2
3
|
import _camelCase from 'lodash/camelCase';
|
|
3
4
|
import isEmpty from 'lodash/isEmpty';
|
|
@@ -53,4 +54,19 @@ export function isIntegerLike(value) {
|
|
|
53
54
|
return true;
|
|
54
55
|
}
|
|
55
56
|
return /^\d+$/.test(value);
|
|
57
|
+
}
|
|
58
|
+
export function base64Encode(str) {
|
|
59
|
+
if (isBrowser) {
|
|
60
|
+
return window.btoa(str);
|
|
61
|
+
}
|
|
62
|
+
return Buffer.from(str).toString('base64');
|
|
63
|
+
}
|
|
64
|
+
export function base64Decode(str) {
|
|
65
|
+
if (isBrowser) {
|
|
66
|
+
return window.atob(str);
|
|
67
|
+
}
|
|
68
|
+
return Buffer.from(str, 'base64').toString();
|
|
69
|
+
}
|
|
70
|
+
export function encodePropertyName(value) {
|
|
71
|
+
return value.replace(/[^A-Za-z0-9]/g, c => `%${c.charCodeAt(0).toString(16)}`);
|
|
56
72
|
}
|
package/es/templates.js
CHANGED
|
@@ -6,6 +6,7 @@ import classnames from 'classnames';
|
|
|
6
6
|
import escape from 'lodash/escape';
|
|
7
7
|
import { getImageUrl } from '@takeshape/routing';
|
|
8
8
|
import { highlightCode } from './highlight-code';
|
|
9
|
+
import { isRecord } from './types';
|
|
9
10
|
export function getApplyPrefix(prefix) {
|
|
10
11
|
return className => className ? prefix + className : '';
|
|
11
12
|
}
|
|
@@ -79,4 +80,26 @@ export function codeTemplate(applyPrefix, data) {
|
|
|
79
80
|
const code = highlightCode(text, lang);
|
|
80
81
|
const langClass = lang ? ` class="${applyPrefix(`language-${lang}`)}"` : '';
|
|
81
82
|
return `<pre><code${langClass}>${code}</code></pre>`;
|
|
83
|
+
}
|
|
84
|
+
export function jsonTemplate(template, context) {
|
|
85
|
+
const renderTemplate = template => {
|
|
86
|
+
return template.replace(/{{(\w+)}}/g, (_, name) => context[name] ?? '');
|
|
87
|
+
};
|
|
88
|
+
const transform = obj => {
|
|
89
|
+
if (Array.isArray(obj)) {
|
|
90
|
+
return obj.map(transform);
|
|
91
|
+
}
|
|
92
|
+
if (isRecord(obj)) {
|
|
93
|
+
const result = {};
|
|
94
|
+
for (const key of Object.keys(obj)) {
|
|
95
|
+
result[renderTemplate(key)] = transform(obj[key]);
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
99
|
+
if (typeof obj === 'string') {
|
|
100
|
+
return renderTemplate(obj);
|
|
101
|
+
}
|
|
102
|
+
return obj;
|
|
103
|
+
};
|
|
104
|
+
return transform(template);
|
|
82
105
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@takeshape/util",
|
|
3
|
-
"version": "11.
|
|
3
|
+
"version": "11.24.0",
|
|
4
4
|
"description": "Shared utilities",
|
|
5
5
|
"homepage": "https://www.takeshape.io",
|
|
6
6
|
"repository": {
|
|
@@ -20,6 +20,7 @@
|
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
22
|
"@types/url-parse": "^1.4.4",
|
|
23
|
+
"browser-or-node": "^3.0.0",
|
|
23
24
|
"classnames": "^2.2.5",
|
|
24
25
|
"dom-serializer": "0.2.2",
|
|
25
26
|
"draft-js": "^0.11.7",
|
|
@@ -32,7 +33,7 @@
|
|
|
32
33
|
"shortid": "^2.2.16",
|
|
33
34
|
"tiny-invariant": "^1.2.0",
|
|
34
35
|
"url-parse": "^1.5.3",
|
|
35
|
-
"@takeshape/routing": "11.
|
|
36
|
+
"@takeshape/routing": "11.24.0"
|
|
36
37
|
},
|
|
37
38
|
"devDependencies": {
|
|
38
39
|
"@types/classnames": "^2.2.9",
|