@makano/rew 1.2.78 → 1.2.80
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/rew/cli/helpers.js
CHANGED
|
@@ -2,6 +2,7 @@ const { CONFIG_PATH } = require("../const/config_path");
|
|
|
2
2
|
const path = require('path');
|
|
3
3
|
const fs = require('fs');
|
|
4
4
|
const conf = require("../pkgs/conf");
|
|
5
|
+
const { log } = require("./log");
|
|
5
6
|
|
|
6
7
|
const binpath = path.join(conf({}).create('').root, '.bin');
|
|
7
8
|
const logspath = path.join(conf({}).create('').root, '.logs');
|
package/lib/rew/const/opt.js
CHANGED
package/lib/rew/const/usage.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
|
|
2
2
|
|
|
3
3
|
|
|
4
|
+
const JSX_FRAGMENT_SYMBOL = Symbol('fragment');
|
|
4
5
|
module.exports.USING_DEFAULT = {
|
|
5
6
|
JSX: {
|
|
6
|
-
param: (param) => ({ createElement: param }),
|
|
7
|
+
param: (param, fragment) => ({ createElement: param, Fragment: fragment || param(JSX_FRAGMENT_SYMBOL, { isFragment: true }), fragmentSymbol: JSX_FRAGMENT_SYMBOL }),
|
|
7
8
|
use: (options) => options.jsx = true
|
|
8
9
|
},
|
|
9
10
|
TYPES: {
|
|
@@ -53,6 +54,7 @@ class Namespace extends module.exports.Usage {
|
|
|
53
54
|
constructor(ns, cb){
|
|
54
55
|
super('namespace');
|
|
55
56
|
if(ns instanceof Namespace.Group){
|
|
57
|
+
if(ns.onUse) this.onUse = ns.onUse;
|
|
56
58
|
cb = ns.g[1]
|
|
57
59
|
ns = ns.g[0]
|
|
58
60
|
}
|
|
@@ -20,6 +20,7 @@ function tokenizeCoffeeScript(code) {
|
|
|
20
20
|
|
|
21
21
|
while (i < code.length) {
|
|
22
22
|
const char = code[i];
|
|
23
|
+
const prevChar = code[i - 1];
|
|
23
24
|
const nextChar = code[i + 1];
|
|
24
25
|
const nextNextChar = code[i + 2];
|
|
25
26
|
|
|
@@ -56,7 +57,7 @@ function tokenizeCoffeeScript(code) {
|
|
|
56
57
|
}
|
|
57
58
|
string += char; // Include closing quote
|
|
58
59
|
tokens.push({ type: 'STRING', value: string });
|
|
59
|
-
} else if (char === '/' && nextChar !== ' ' && nextChar !== '/' && nextChar !== '*') {
|
|
60
|
+
} else if (char === '/' && nextChar !== ' ' && nextChar !== '/' && nextChar !== '*' && prevChar !== '<') {
|
|
60
61
|
// Regular expression
|
|
61
62
|
let regex = char;
|
|
62
63
|
i++;
|
|
@@ -235,6 +236,9 @@ function compileRewStuff(content, options) {
|
|
|
235
236
|
const { use } = USING_DEFAULT[next];
|
|
236
237
|
use?.(options);
|
|
237
238
|
nextToken.value = `"${nextToken.value}"`
|
|
239
|
+
|
|
240
|
+
const { token: nextNextToken } = gnextToken(i, 3, tokens) || {};
|
|
241
|
+
if(nextNextToken.value == "as") nextNextToken.value = ",";
|
|
238
242
|
}
|
|
239
243
|
}
|
|
240
244
|
|
|
@@ -350,6 +354,7 @@ function compileRewStuff(content, options) {
|
|
|
350
354
|
// token.value = '```'+token.value.slice(3).slice(0, -3).replace(/\#\{/g, '${')+'```';
|
|
351
355
|
// }
|
|
352
356
|
|
|
357
|
+
// process.stdout.write(token.value);
|
|
353
358
|
result += token.value;
|
|
354
359
|
if (hooks.length) {
|
|
355
360
|
hooks.forEach((hook, ind) => {
|
|
@@ -372,27 +377,31 @@ function compileRewStuff(content, options) {
|
|
|
372
377
|
}
|
|
373
378
|
}
|
|
374
379
|
|
|
380
|
+
// console.log(result);
|
|
381
|
+
|
|
375
382
|
return result;
|
|
376
383
|
}
|
|
377
384
|
|
|
378
385
|
const compileCivetStuff = (file, options) => {
|
|
386
|
+
const preCompileOptions = {
|
|
387
|
+
filename: file.path,
|
|
388
|
+
...options
|
|
389
|
+
};
|
|
390
|
+
const prepared = compileRewStuff(file.content, preCompileOptions);
|
|
391
|
+
|
|
379
392
|
const compileOptions = {
|
|
380
|
-
...
|
|
393
|
+
...preCompileOptions,
|
|
381
394
|
bare: true,
|
|
382
395
|
filename: file.path,
|
|
383
396
|
inlineMap: false,
|
|
384
397
|
js: true
|
|
385
398
|
};
|
|
386
399
|
|
|
387
|
-
const prepared = compileRewStuff(file.content, {
|
|
388
|
-
filename: file.path,
|
|
389
|
-
...options
|
|
390
|
-
});
|
|
391
400
|
let compiled = options.async ? compileCivet(prepared, compileOptions) : wait(compileCivet, prepared, compileOptions);
|
|
392
401
|
|
|
393
402
|
return {
|
|
394
403
|
compiled,
|
|
395
|
-
options
|
|
404
|
+
options: preCompileOptions
|
|
396
405
|
};
|
|
397
406
|
}
|
|
398
407
|
|
|
@@ -410,7 +419,7 @@ const cpl = (module.exports.compile = function (file, options = {}) {
|
|
|
410
419
|
|
|
411
420
|
const babelify = (code, options) => babel.transformSync(code, {
|
|
412
421
|
presets: [
|
|
413
|
-
...(doJSX ? [[babelReact, { pragma: options.jsxPragma || execOptions.jsxPragma }]] : [])
|
|
422
|
+
...(doJSX ? [[babelReact, { pragmaFrag: options.jsxPragmaFrag || execOptions.jsxPragmaFrag, pragma: options.jsxPragma || execOptions.jsxPragma }]] : [])
|
|
414
423
|
],
|
|
415
424
|
plugins: [
|
|
416
425
|
...(doDecorators ? [[require('@babel/plugin-proposal-decorators'), { version: '2023-05' }], [require('@babel/plugin-proposal-class-properties'), { loose: true }], [require('@babel/plugin-transform-class-static-block'), {}]] : [])
|
|
@@ -21,6 +21,7 @@ module.exports.prepareContext = function (
|
|
|
21
21
|
runPath = () => {},
|
|
22
22
|
) {
|
|
23
23
|
if (mainFile == "") mainFile = filepath;
|
|
24
|
+
/** @type {Record<string, any>} */
|
|
24
25
|
let context = {
|
|
25
26
|
module: {
|
|
26
27
|
exports: null,
|
|
@@ -126,6 +127,7 @@ module.exports.prepareContext = function (
|
|
|
126
127
|
childContext.currentNamespace = name.namespace;
|
|
127
128
|
childContext.parentNamespace = context;
|
|
128
129
|
const code = `(${trigger.toString()})()`;
|
|
130
|
+
if(name.onUse) name.onUse();
|
|
129
131
|
runtime.exec(code, childContext, code, context.module.filepath);
|
|
130
132
|
} else if(name instanceof Usage) {
|
|
131
133
|
const v = name.trigger(...params) || true;
|
package/lib/rew/pkgs/web.js
CHANGED
|
@@ -102,6 +102,11 @@ function createTextNode(text) {
|
|
|
102
102
|
class ElementTypeNode extends nodeType('element') { };
|
|
103
103
|
class ElementNode extends node(ElementTypeNode) { };
|
|
104
104
|
function createElement(type, props, ...children) {
|
|
105
|
+
|
|
106
|
+
if(typeof type == "symbol" && props.isFragment){
|
|
107
|
+
return 'div';
|
|
108
|
+
}
|
|
109
|
+
|
|
105
110
|
const flattenChildren = (childrenArray) =>
|
|
106
111
|
childrenArray.flatMap(child => Array.isArray(child) ? flattenChildren(child) : child).map(child => {
|
|
107
112
|
if (typeof child !== 'object') return createTextNode(child.toString());
|