node-tao 0.0.1
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 +230 -0
- package/checks.d.ts +8 -0
- package/checks.d.ts.map +1 -0
- package/checks.js +37 -0
- package/checks.js.map +1 -0
- package/const.d.ts +24 -0
- package/const.d.ts.map +1 -0
- package/const.js +51 -0
- package/const.js.map +1 -0
- package/default-config.d.ts +4 -0
- package/default-config.d.ts.map +1 -0
- package/default-config.js +25 -0
- package/default-config.js.map +1 -0
- package/error/error.html +259 -0
- package/error-utils.d.ts +21 -0
- package/error-utils.d.ts.map +1 -0
- package/error-utils.js +163 -0
- package/error-utils.js.map +1 -0
- package/index.d.ts +3 -0
- package/index.d.ts.map +1 -0
- package/index.js +6 -0
- package/index.js.map +1 -0
- package/init.d.ts +12 -0
- package/init.d.ts.map +1 -0
- package/init.js +31 -0
- package/init.js.map +1 -0
- package/interfaces.d.ts +170 -0
- package/interfaces.d.ts.map +1 -0
- package/interfaces.js +3 -0
- package/interfaces.js.map +1 -0
- package/metrics.d.ts +16 -0
- package/metrics.d.ts.map +1 -0
- package/metrics.js +80 -0
- package/metrics.js.map +1 -0
- package/package.json +45 -0
- package/parsing-helpers.d.ts +8 -0
- package/parsing-helpers.d.ts.map +1 -0
- package/parsing-helpers.js +60 -0
- package/parsing-helpers.js.map +1 -0
- package/store.d.ts +29 -0
- package/store.d.ts.map +1 -0
- package/store.js +52 -0
- package/store.js.map +1 -0
- package/tao.d.ts +81 -0
- package/tao.d.ts.map +1 -0
- package/tao.js +533 -0
- package/tao.js.map +1 -0
- package/templates-access.d.ts +15 -0
- package/templates-access.d.ts.map +1 -0
- package/templates-access.js +38 -0
- package/templates-access.js.map +1 -0
- package/utils.d.ts +45 -0
- package/utils.d.ts.map +1 -0
- package/utils.js +227 -0
- package/utils.js.map +1 -0
package/utils.d.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { AstObject, ChildTemplateFunction, Data, DefinitiveOptions, ErrorData, FileResolution, HelperFunction, Helpers, Parse, TagType, TemplateFunction } from './interfaces';
|
|
2
|
+
import { Store } from './store';
|
|
3
|
+
declare function initVariablesAndHelpers(dataOrHelpers: Data | Helpers): string;
|
|
4
|
+
declare function valueIsAFunction(value: Function): boolean;
|
|
5
|
+
declare function includeFn(): string;
|
|
6
|
+
declare function isAChildError(error: any): error is ErrorData;
|
|
7
|
+
/**
|
|
8
|
+
* Example: I'm using \ today → I\'m using \\ today
|
|
9
|
+
*/
|
|
10
|
+
declare function escapeJSLiteral(value: string): string;
|
|
11
|
+
declare function getCurrentPrefixType(prefix: string, parse: DefinitiveOptions['parse']): TagType;
|
|
12
|
+
declare function compileBody(templateValues: AstObject[], config: DefinitiveOptions): string;
|
|
13
|
+
declare function compileContent(type: TagType, content: string, config: DefinitiveOptions): string | undefined;
|
|
14
|
+
declare function getPathWithExtension(filePath: string, extension: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Inject data and helpers at every template execution.
|
|
17
|
+
* Always keep placeholders.
|
|
18
|
+
*/
|
|
19
|
+
declare function injectDataAndHelpersInTemplate(data: Data, helpers: Helpers, helpersStore: Store<HelperFunction>, executableContent: string): string;
|
|
20
|
+
declare function compileChildToFunction(contentReplaced: string): ChildTemplateFunction;
|
|
21
|
+
declare function compileToFunction(contentReplaced: string): TemplateFunction;
|
|
22
|
+
/**
|
|
23
|
+
* If path resolution is set to "flexible", do not return the full path, it's usefull for providing only unique end path.
|
|
24
|
+
*/
|
|
25
|
+
declare function getFullPath(views: string, pathWithExtension: string, fileResolution: FileResolution): string;
|
|
26
|
+
/**
|
|
27
|
+
* Normalize file path on windows.
|
|
28
|
+
*/
|
|
29
|
+
declare function normalizeFilesPath(file: string): string;
|
|
30
|
+
declare function getFileName(filename: string): string;
|
|
31
|
+
declare function buildPrefixRegex(parseOptions: Parse): string;
|
|
32
|
+
/**
|
|
33
|
+
* Escape special regular expression characters inside a string
|
|
34
|
+
* MDN
|
|
35
|
+
*/
|
|
36
|
+
declare function escapeRegExp(string: string): string;
|
|
37
|
+
/**
|
|
38
|
+
* XML-escapes an input value after converting it to a string.
|
|
39
|
+
* Defaulted to empty string to not render "null" or "undefined" in the template.
|
|
40
|
+
* @param value - Input value
|
|
41
|
+
* @returns XML-escaped string
|
|
42
|
+
*/
|
|
43
|
+
declare function XMLEscape(input: unknown): string;
|
|
44
|
+
export { XMLEscape, escapeJSLiteral, getCurrentPrefixType, compileContent, buildPrefixRegex, compileBody, includeFn, initVariablesAndHelpers, getFullPath, escapeRegExp, getPathWithExtension, normalizeFilesPath, getFileName, valueIsAFunction, injectDataAndHelpersInTemplate, compileToFunction, compileChildToFunction, isAChildError, };
|
|
45
|
+
//# sourceMappingURL=utils.d.ts.map
|
package/utils.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AASA,OAAO,EACL,SAAS,EACT,qBAAqB,EACrB,IAAI,EACJ,iBAAiB,EACjB,SAAS,EAET,cAAc,EACd,cAAc,EACd,OAAO,EACP,KAAK,EACL,OAAO,EACP,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC,iBAAS,uBAAuB,CAAC,aAAa,EAAE,IAAI,GAAG,OAAO,UAS7D;AAiCD,iBAAS,gBAAgB,CAAC,KAAK,EAAE,QAAQ,WAExC;AAMD,iBAAS,SAAS,WAQjB;AAED,iBAAS,aAAa,CAAC,KAAK,EAAE,GAAG,GAAG,KAAK,IAAI,SAAS,CAErD;AAED;;GAEG;AACH,iBAAS,eAAe,CAAC,KAAK,EAAE,MAAM,UAErC;AAED,iBAAS,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,CAAC,OAAO,CAAC,WAS9E;AAED,iBAAS,WAAW,CAAC,cAAc,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,iBAAiB,UAe1E;AAED,iBAAS,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB,sBAmBhF;AAED,iBAAS,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAOhE;AAED;;;GAGG;AACH,iBAAS,8BAA8B,CACrC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,KAAK,CAAC,cAAc,CAAC,EACnC,iBAAiB,EAAE,MAAM,UAkB1B;AAED,iBAAS,sBAAsB,CAAC,eAAe,EAAE,MAAM,yBAQtD;AAED,iBAAS,iBAAiB,CAAC,eAAe,EAAE,MAAM,oBAcjD;AAED;;GAEG;AACH,iBAAS,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,cAAc,EAAE,cAAc,UAQ5F;AAED;;GAEG;AACH,iBAAS,kBAAkB,CAAC,IAAI,EAAE,MAAM,UAEvC;AAED,iBAAS,WAAW,CAAC,QAAQ,EAAE,MAAM,UAEpC;AAED,iBAAS,gBAAgB,CAAC,YAAY,EAAE,KAAK,UAW5C;AAMD;;;GAGG;AACH,iBAAS,YAAY,CAAC,MAAM,EAAE,MAAM,UAGnC;AAED;;;;;GAKG;AACH,iBAAS,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAKzC;AAED,OAAO,EACL,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,gBAAgB,EAChB,WAAW,EACX,SAAS,EACT,uBAAuB,EACvB,WAAW,EACX,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,WAAW,EACX,gBAAgB,EAChB,8BAA8B,EAC9B,iBAAiB,EACjB,sBAAsB,EACtB,aAAa,GACd,CAAC"}
|
package/utils.js
ADDED
|
@@ -0,0 +1,227 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.isAChildError = exports.compileChildToFunction = exports.compileToFunction = exports.injectDataAndHelpersInTemplate = exports.valueIsAFunction = exports.getFileName = exports.normalizeFilesPath = exports.getPathWithExtension = exports.escapeRegExp = exports.getFullPath = exports.initVariablesAndHelpers = exports.includeFn = exports.compileBody = exports.buildPrefixRegex = exports.compileContent = exports.getCurrentPrefixType = exports.escapeJSLiteral = exports.XMLEscape = void 0;
|
|
7
|
+
const checks_1 = require("./checks");
|
|
8
|
+
const const_1 = require("./const");
|
|
9
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
10
|
+
function initVariablesAndHelpers(dataOrHelpers) {
|
|
11
|
+
const dataEntries = Object.entries(dataOrHelpers);
|
|
12
|
+
let variables = '';
|
|
13
|
+
for (const [key, value] of dataEntries) {
|
|
14
|
+
variables += `const ${key} = ${getValueType(value)};`;
|
|
15
|
+
}
|
|
16
|
+
return variables;
|
|
17
|
+
}
|
|
18
|
+
exports.initVariablesAndHelpers = initVariablesAndHelpers;
|
|
19
|
+
function getValueType(value) {
|
|
20
|
+
if (valueIsAFunction(value))
|
|
21
|
+
return value;
|
|
22
|
+
if (valueIsASymbol(value))
|
|
23
|
+
return value;
|
|
24
|
+
if (valueIsABigint(value))
|
|
25
|
+
return value;
|
|
26
|
+
if (valueIsNaN(value))
|
|
27
|
+
return value;
|
|
28
|
+
if (valueIsInfinity(value))
|
|
29
|
+
return value;
|
|
30
|
+
return JSON.stringify(value);
|
|
31
|
+
}
|
|
32
|
+
function valueIsNaN(value) {
|
|
33
|
+
if (typeof value !== 'number')
|
|
34
|
+
return false;
|
|
35
|
+
return isNaN(value);
|
|
36
|
+
}
|
|
37
|
+
function valueIsInfinity(value) {
|
|
38
|
+
if (typeof value !== 'number')
|
|
39
|
+
return false;
|
|
40
|
+
const plusOrMinus = Math.abs(value);
|
|
41
|
+
return plusOrMinus === Infinity;
|
|
42
|
+
}
|
|
43
|
+
function valueIsASymbol(value) {
|
|
44
|
+
return typeof value === 'symbol';
|
|
45
|
+
}
|
|
46
|
+
function valueIsABigint(value) {
|
|
47
|
+
return typeof value === 'bigint';
|
|
48
|
+
}
|
|
49
|
+
function valueIsAFunction(value) {
|
|
50
|
+
return typeof value === 'function';
|
|
51
|
+
}
|
|
52
|
+
exports.valueIsAFunction = valueIsAFunction;
|
|
53
|
+
// il faudra un autre render pour les enfants que le principal
|
|
54
|
+
// le renderChild renverra un objet avec error (réelle) et content
|
|
55
|
+
// si error alors throw new Error(error)
|
|
56
|
+
// sur error toutes les props mises
|
|
57
|
+
function includeFn() {
|
|
58
|
+
return `const include = (templatePath, data, helpers) => {
|
|
59
|
+
data = {...${const_1.TEMPLATE_VARNAME}, ...data};
|
|
60
|
+
helpers = {...${const_1.HELPER_VARNAME}, ...helpers};
|
|
61
|
+
const rendered = this.renderChild(templatePath, data, helpers);
|
|
62
|
+
if (rendered.isAChildError) throw rendered;
|
|
63
|
+
return rendered;
|
|
64
|
+
}`;
|
|
65
|
+
}
|
|
66
|
+
exports.includeFn = includeFn;
|
|
67
|
+
function isAChildError(error) {
|
|
68
|
+
return error.isAChildError;
|
|
69
|
+
}
|
|
70
|
+
exports.isAChildError = isAChildError;
|
|
71
|
+
/**
|
|
72
|
+
* Example: I'm using \ today → I\'m using \\ today
|
|
73
|
+
*/
|
|
74
|
+
function escapeJSLiteral(value) {
|
|
75
|
+
return value.replace(/\\|'/g, '\\$&').replace(/\r\n|\n|\r/g, '\\n');
|
|
76
|
+
}
|
|
77
|
+
exports.escapeJSLiteral = escapeJSLiteral;
|
|
78
|
+
function getCurrentPrefixType(prefix, parse) {
|
|
79
|
+
var _a;
|
|
80
|
+
const parseOptions = {
|
|
81
|
+
[parse.exec]: 'execute',
|
|
82
|
+
[parse.raw]: 'raw',
|
|
83
|
+
[parse.interpolate]: 'interpolate',
|
|
84
|
+
};
|
|
85
|
+
// escaping by default
|
|
86
|
+
return (_a = parseOptions[prefix]) !== null && _a !== void 0 ? _a : parse.interpolate;
|
|
87
|
+
}
|
|
88
|
+
exports.getCurrentPrefixType = getCurrentPrefixType;
|
|
89
|
+
function compileBody(templateValues, config) {
|
|
90
|
+
let result = '';
|
|
91
|
+
for (const value of templateValues) {
|
|
92
|
+
if (typeof value === 'string') {
|
|
93
|
+
// HTML content
|
|
94
|
+
result += `${const_1.TP_VARNAME_WITH_PREFIX}.res+='${value}';\n`;
|
|
95
|
+
continue;
|
|
96
|
+
}
|
|
97
|
+
const { type, content = '' } = value;
|
|
98
|
+
result += compileContent(type, content, config);
|
|
99
|
+
}
|
|
100
|
+
return result;
|
|
101
|
+
}
|
|
102
|
+
exports.compileBody = compileBody;
|
|
103
|
+
function compileContent(type, content, config) {
|
|
104
|
+
const { autoEscape } = config;
|
|
105
|
+
const prefix = const_1.TP_VARNAME_WITH_PREFIX;
|
|
106
|
+
if (type === 'raw') {
|
|
107
|
+
return `${prefix}.res+=${content}\n`;
|
|
108
|
+
}
|
|
109
|
+
if (type === 'interpolate') {
|
|
110
|
+
if (autoEscape) {
|
|
111
|
+
content = `${prefix}.e(${content})`;
|
|
112
|
+
}
|
|
113
|
+
return `${prefix}.res+=${content};\n`;
|
|
114
|
+
}
|
|
115
|
+
if (type === 'execute') {
|
|
116
|
+
return `${content}\n`;
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
exports.compileContent = compileContent;
|
|
120
|
+
function getPathWithExtension(filePath, extension) {
|
|
121
|
+
if ((0, checks_1.isTemplateDynamicallyDefined)(filePath))
|
|
122
|
+
return filePath;
|
|
123
|
+
const pathContainsExtension = node_path_1.default.extname(filePath);
|
|
124
|
+
if (pathContainsExtension)
|
|
125
|
+
return filePath;
|
|
126
|
+
return `${filePath}.${extension}`;
|
|
127
|
+
}
|
|
128
|
+
exports.getPathWithExtension = getPathWithExtension;
|
|
129
|
+
/**
|
|
130
|
+
* Inject data and helpers at every template execution.
|
|
131
|
+
* Always keep placeholders.
|
|
132
|
+
*/
|
|
133
|
+
function injectDataAndHelpersInTemplate(data, helpers, helpersStore, executableContent) {
|
|
134
|
+
let newVariables = const_1.PLACEHOLDER_VAR_START;
|
|
135
|
+
newVariables += initVariablesAndHelpers(data);
|
|
136
|
+
newVariables += initVariablesAndHelpers(helpers);
|
|
137
|
+
newVariables += initVariablesAndHelpers(helpersStore.getAll());
|
|
138
|
+
newVariables += const_1.PLACEHOLDER_VAR_END;
|
|
139
|
+
const startIndex = executableContent.indexOf(const_1.PLACEHOLDER_VAR_START);
|
|
140
|
+
const endIndex = executableContent.indexOf(const_1.PLACEHOLDER_VAR_END);
|
|
141
|
+
const oldVariables = executableContent.substring(startIndex, endIndex + const_1.PLACEHOLDER_VAR_END.length);
|
|
142
|
+
const contentReplaced = executableContent.replace(oldVariables, newVariables);
|
|
143
|
+
return contentReplaced;
|
|
144
|
+
}
|
|
145
|
+
exports.injectDataAndHelpersInTemplate = injectDataAndHelpersInTemplate;
|
|
146
|
+
function compileChildToFunction(contentReplaced) {
|
|
147
|
+
try {
|
|
148
|
+
return new Function(const_1.TEMPLATE_VARNAME, const_1.HELPER_VARNAME, contentReplaced);
|
|
149
|
+
}
|
|
150
|
+
catch (error) {
|
|
151
|
+
const type = 'Compilation Error';
|
|
152
|
+
error.type = type;
|
|
153
|
+
throw error;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
exports.compileChildToFunction = compileChildToFunction;
|
|
157
|
+
function compileToFunction(contentReplaced) {
|
|
158
|
+
try {
|
|
159
|
+
return new Function(const_1.TEMPLATE_VARNAME, const_1.HELPER_VARNAME, 'ɵɵstart', 'ɵɵcacheHit', contentReplaced);
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
const type = 'Compilation Error';
|
|
163
|
+
error.type = type;
|
|
164
|
+
throw error;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
exports.compileToFunction = compileToFunction;
|
|
168
|
+
/**
|
|
169
|
+
* If path resolution is set to "flexible", do not return the full path, it's usefull for providing only unique end path.
|
|
170
|
+
*/
|
|
171
|
+
function getFullPath(views, pathWithExtension, fileResolution) {
|
|
172
|
+
if (fileResolution === 'flexible')
|
|
173
|
+
return pathWithExtension;
|
|
174
|
+
const isAbsolutePath = node_path_1.default.isAbsolute(pathWithExtension);
|
|
175
|
+
if (isAbsolutePath)
|
|
176
|
+
return pathWithExtension;
|
|
177
|
+
const fullPath = node_path_1.default.join(views, pathWithExtension);
|
|
178
|
+
return normalizeFilesPath(fullPath);
|
|
179
|
+
}
|
|
180
|
+
exports.getFullPath = getFullPath;
|
|
181
|
+
/**
|
|
182
|
+
* Normalize file path on windows.
|
|
183
|
+
*/
|
|
184
|
+
function normalizeFilesPath(file) {
|
|
185
|
+
return file.replace(/\\/g, '/');
|
|
186
|
+
}
|
|
187
|
+
exports.normalizeFilesPath = normalizeFilesPath;
|
|
188
|
+
function getFileName(filename) {
|
|
189
|
+
return filename.split('/').at(-1);
|
|
190
|
+
}
|
|
191
|
+
exports.getFileName = getFileName;
|
|
192
|
+
function buildPrefixRegex(parseOptions) {
|
|
193
|
+
const options = [];
|
|
194
|
+
for (const prefix of Object.values(parseOptions)) {
|
|
195
|
+
if (!prefix)
|
|
196
|
+
continue;
|
|
197
|
+
const prefixEscaped = escapeRegExp(prefix);
|
|
198
|
+
options.push(prefixEscaped);
|
|
199
|
+
}
|
|
200
|
+
return options.join('|');
|
|
201
|
+
}
|
|
202
|
+
exports.buildPrefixRegex = buildPrefixRegex;
|
|
203
|
+
function replaceChar(input) {
|
|
204
|
+
return const_1.ESC_MAP[input];
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* Escape special regular expression characters inside a string
|
|
208
|
+
* MDN
|
|
209
|
+
*/
|
|
210
|
+
function escapeRegExp(string) {
|
|
211
|
+
// $& means the whole matched string
|
|
212
|
+
return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&');
|
|
213
|
+
}
|
|
214
|
+
exports.escapeRegExp = escapeRegExp;
|
|
215
|
+
/**
|
|
216
|
+
* XML-escapes an input value after converting it to a string.
|
|
217
|
+
* Defaulted to empty string to not render "null" or "undefined" in the template.
|
|
218
|
+
* @param value - Input value
|
|
219
|
+
* @returns XML-escaped string
|
|
220
|
+
*/
|
|
221
|
+
function XMLEscape(input) {
|
|
222
|
+
const defaultedToEmptyString = input !== null && input !== void 0 ? input : '';
|
|
223
|
+
const newStr = String(defaultedToEmptyString);
|
|
224
|
+
return newStr.replace(/[&<>"']/g, replaceChar);
|
|
225
|
+
}
|
|
226
|
+
exports.XMLEscape = XMLEscape;
|
|
227
|
+
//# sourceMappingURL=utils.js.map
|
package/utils.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"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"}
|