@makano/rew 1.2.91 → 1.2.93
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.
@@ -59,26 +59,27 @@ function typef(fn, returnType) {
|
|
59
59
|
return result;
|
60
60
|
}
|
61
61
|
wrappedFn.returnType = returnType;
|
62
|
+
wrappedFn.type = returnType;
|
62
63
|
return wrappedFn;
|
63
64
|
}
|
64
65
|
typef.is = function(func, returnType){
|
65
66
|
return typeis(func.returnType.defaultValue, returnType);
|
66
67
|
}
|
67
68
|
|
68
|
-
function typeis(obj, typeDef) {
|
69
|
+
function typeis(obj, typeDef, missingObjects = false) {
|
69
70
|
// Resolve Type
|
70
71
|
if (typeof typeDef == 'function' && typeDef.type instanceof Type) typeDef = typeDef.type;
|
71
72
|
|
72
73
|
if (typeDef.isConstucted && typeDef.class && !(obj instanceof typeDef.class)) {
|
73
|
-
return false;
|
74
|
+
return missingObjects ? [false] : false;
|
74
75
|
}
|
75
76
|
|
76
77
|
if (getType(obj) == 'object' && typeDef.type == 'function') {
|
77
|
-
return obj instanceof typeDef.class;
|
78
|
+
return missingObjects ? [obj instanceof typeDef.class] : obj instanceof typeDef.class;
|
78
79
|
}
|
79
80
|
|
80
81
|
if (getType(obj) !== typeDef.type) {
|
81
|
-
return false;
|
82
|
+
return missingObjects ? [false] : false;
|
82
83
|
}
|
83
84
|
|
84
85
|
if (!typeDef.isEmpty) {
|
@@ -90,14 +91,28 @@ function typeis(obj, typeDef) {
|
|
90
91
|
|
91
92
|
if (typeof propTypeDef === 'object') {
|
92
93
|
if (!typeis(obj[key], propTypeDef)) {
|
93
|
-
return false
|
94
|
+
return missingObjects ? [false, {
|
95
|
+
[key]: {
|
96
|
+
type_mismatch: propTypeDef,
|
97
|
+
given: obj[gen_key]
|
98
|
+
}
|
99
|
+
}] : false;
|
94
100
|
}
|
95
|
-
} else if (typeof obj[key] !== propTypeDef) {
|
96
|
-
return false
|
101
|
+
} else if (typeof obj[key] !== typeof propTypeDef) {
|
102
|
+
return missingObjects ? [false, {
|
103
|
+
[key]: obj[key] ? {
|
104
|
+
type_mismatch: typeof propTypeDef,
|
105
|
+
given: typeof obj[key]
|
106
|
+
} : {
|
107
|
+
not_found: true
|
108
|
+
}
|
109
|
+
}] : false;
|
97
110
|
}
|
98
111
|
}
|
99
112
|
if (typeDef.strict) {
|
100
|
-
if (Object.keys(obj).some((key) => !Object.keys(typeDef.defaultValue).includes(key))) return
|
113
|
+
if (Object.keys(obj).some((key) => !Object.keys(typeDef.defaultValue).includes(key))) return missingObjects ?
|
114
|
+
[false, Object.fromEntries(Object.keys(obj).filter((key) => !Object.keys(typeDef.defaultValue).includes(key)).map((key) => [key, { is_extra: true }]))]
|
115
|
+
: false;
|
101
116
|
}
|
102
117
|
} else if (typeDef.type == 'string') {
|
103
118
|
return typeDef.defaultValue == obj;
|
@@ -106,7 +121,7 @@ function typeis(obj, typeDef) {
|
|
106
121
|
}
|
107
122
|
}
|
108
123
|
|
109
|
-
return true;
|
124
|
+
return missingObjects ? [true] : true;
|
110
125
|
}
|
111
126
|
|
112
127
|
function typex(child, parent) {
|
@@ -86,6 +86,15 @@ function tokenizeCoffeeScript(code) {
|
|
86
86
|
}
|
87
87
|
tokens.push({ type: 'IDENTIFIER', value: identifier });
|
88
88
|
i--; // Move back one character to recheck
|
89
|
+
} else if (/[a-f0-9.n]/.test(char)) {
|
90
|
+
let num = char;
|
91
|
+
i++;
|
92
|
+
while (i < code.length && /[a-f0-9.n]/.test(code[i])) {
|
93
|
+
num += code[i];
|
94
|
+
i++;
|
95
|
+
}
|
96
|
+
tokens.push({ type: 'NUMBER', value: num });
|
97
|
+
i--; // Move back one character to recheck
|
89
98
|
} else {
|
90
99
|
// Other characters
|
91
100
|
tokens.push({ type: 'OTHER', value: char });
|
@@ -172,7 +181,7 @@ function declareAlias(aliases, token) {
|
|
172
181
|
let nextToken = gnextToken(index, offset+1, tokens);
|
173
182
|
const args = nextToken.token.value;
|
174
183
|
setIndex(ti + offset);
|
175
|
-
return `${nextToken2.value} = ${token.value} ${args && args !== '(' ? `${args},` : ''} ${params.trim()
|
184
|
+
return `${nextToken2.value} = ${token.value} ${args && args !== '(' && args !== '{' && args !== '[' && args !== '-' && args !== '=' ? `${args},` : ''} ${params.trim() ? params.trim() + ', ' : ''}${args == '(' || args == '[' || args == '{' || args == '=' || args == '-' ? args : ''}`.replace(/,(| )$/, '');
|
176
185
|
} else if(nextToken?.value == ' ' && (isDecOnly || nextToken2?.token.value == '=' || nextToken2?.token.value == ':')){
|
177
186
|
nextToken.value = '';
|
178
187
|
if(isDecOnly){
|
@@ -573,6 +582,8 @@ const compileCivetStuff = (file, options) => {
|
|
573
582
|
straceLog('OPTION_PREPARE() for CURRENTFILE as', preCompileOptions);
|
574
583
|
const prepared = compileRewStuff(file.content, preCompileOptions);
|
575
584
|
|
585
|
+
// console.log(prepared);
|
586
|
+
|
576
587
|
const compileOptions = {
|
577
588
|
...preCompileOptions,
|
578
589
|
bare: true,
|