signalium 2.0.2 → 2.0.3
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/CHANGELOG.md +6 -0
- package/dist/cjs/transform/async.d.ts +2 -0
- package/dist/cjs/transform/async.d.ts.map +1 -1
- package/dist/cjs/transform/async.js +80 -90
- package/dist/cjs/transform/async.js.map +1 -1
- package/dist/cjs/transform/callback.d.ts +3 -0
- package/dist/cjs/transform/callback.d.ts.map +1 -1
- package/dist/cjs/transform/callback.js +305 -230
- package/dist/cjs/transform/callback.js.map +1 -1
- package/dist/cjs/transform/preset.d.ts +5 -3
- package/dist/cjs/transform/preset.d.ts.map +1 -1
- package/dist/cjs/transform/preset.js +19 -6
- package/dist/cjs/transform/preset.js.map +1 -1
- package/dist/cjs/transform/promise.d.ts +3 -0
- package/dist/cjs/transform/promise.d.ts.map +1 -1
- package/dist/cjs/transform/promise.js +105 -113
- package/dist/cjs/transform/promise.js.map +1 -1
- package/dist/cjs/transform/utils.d.ts +4 -0
- package/dist/cjs/transform/utils.d.ts.map +1 -0
- package/dist/cjs/transform/utils.js +27 -0
- package/dist/cjs/transform/utils.js.map +1 -0
- package/dist/esm/transform/async.d.ts +2 -0
- package/dist/esm/transform/async.d.ts.map +1 -1
- package/dist/esm/transform/async.js +80 -90
- package/dist/esm/transform/async.js.map +1 -1
- package/dist/esm/transform/callback.d.ts +3 -0
- package/dist/esm/transform/callback.d.ts.map +1 -1
- package/dist/esm/transform/callback.js +305 -230
- package/dist/esm/transform/callback.js.map +1 -1
- package/dist/esm/transform/preset.d.ts +5 -3
- package/dist/esm/transform/preset.d.ts.map +1 -1
- package/dist/esm/transform/preset.js +19 -6
- package/dist/esm/transform/preset.js.map +1 -1
- package/dist/esm/transform/promise.d.ts +3 -0
- package/dist/esm/transform/promise.d.ts.map +1 -1
- package/dist/esm/transform/promise.js +105 -113
- package/dist/esm/transform/promise.js.map +1 -1
- package/dist/esm/transform/utils.d.ts +4 -0
- package/dist/esm/transform/utils.d.ts.map +1 -0
- package/dist/esm/transform/utils.js +22 -0
- package/dist/esm/transform/utils.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
import type { PluginObj } from '@babel/core';
|
2
2
|
export interface SignaliumAsyncTransformOptions {
|
3
3
|
transformedImports: [string, string | RegExp][];
|
4
|
+
importPaths?: (string | RegExp)[];
|
4
5
|
}
|
6
|
+
export declare function signaliumAsyncTransform(api: any, opts?: SignaliumAsyncTransformOptions): PluginObj;
|
5
7
|
export declare function signaliumAsyncTransform(opts?: SignaliumAsyncTransformOptions): (api: any) => PluginObj;
|
6
8
|
//# sourceMappingURL=async.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/transform/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAc,MAAM,aAAa,CAAC;
|
1
|
+
{"version":3,"file":"async.d.ts","sourceRoot":"","sources":["../../../src/transform/async.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAY,SAAS,EAAc,MAAM,aAAa,CAAC;AAGnE,MAAM,WAAW,8BAA8B;IAC7C,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACnC;AAiGD,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,8BAA8B,GAAG,SAAS,CAAC;AACpG,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,8BAA8B,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC"}
|
@@ -1,105 +1,95 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.signaliumAsyncTransform = signaliumAsyncTransform;
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
4
|
+
const utils_js_1 = require("./utils.js");
|
5
|
+
function createSignaliumAsyncTransform(api, opts) {
|
6
|
+
const transformedImports = (0, utils_js_1.createTransformedImports)([
|
7
|
+
['callback', ['signalium']],
|
8
|
+
['reactive', ['signalium']],
|
9
|
+
['reactiveMethod', ['signalium']],
|
10
|
+
['relay', ['signalium']],
|
11
|
+
['task', ['signalium']],
|
12
|
+
], opts?.transformedImports, opts?.importPaths);
|
13
|
+
const t = api.types;
|
14
|
+
const isTrackedImport = (localName, path) => {
|
15
|
+
const binding = path.scope.getBinding(localName);
|
16
|
+
if (!binding || !t.isImportSpecifier(binding.path.node))
|
17
|
+
return false;
|
18
|
+
const importSpec = binding.path.node;
|
19
|
+
const importedName = importSpec.imported.name;
|
20
|
+
const importDecl = binding.path.parent;
|
21
|
+
if (!t.isImportDeclaration(importDecl))
|
22
|
+
return false;
|
23
|
+
const importPaths = transformedImports.get(importedName);
|
24
|
+
if (!importPaths)
|
25
|
+
return false;
|
26
|
+
return importPaths.some(p => typeof p === 'string' ? importDecl.source.value === p : p.test(importDecl.source.value));
|
11
27
|
};
|
12
|
-
|
13
|
-
|
14
|
-
if (existing) {
|
15
|
-
existing.push(path);
|
16
|
-
}
|
17
|
-
else {
|
18
|
-
transformedImports[name] = [path];
|
19
|
-
}
|
20
|
-
}
|
21
|
-
return api => {
|
22
|
-
const t = api.types;
|
23
|
-
const isReactiveCall = (path) => {
|
24
|
-
if (!t.isCallExpression(path.node))
|
25
|
-
return false;
|
26
|
-
const callee = path.node.callee;
|
27
|
-
if (!t.isIdentifier(callee))
|
28
|
-
return false;
|
29
|
-
// Resolve binding for the local identifier (may be aliased)
|
30
|
-
const binding = path.scope.getBinding(callee.name);
|
31
|
-
if (!binding || !t.isImportSpecifier(binding.path.node))
|
32
|
-
return false;
|
33
|
-
const importSpec = binding.path.node;
|
34
|
-
const imported = importSpec.imported.name;
|
35
|
-
const importDecl = binding.path.parent;
|
36
|
-
if (!t.isImportDeclaration(importDecl))
|
37
|
-
return false;
|
38
|
-
const importPaths = transformedImports[imported];
|
39
|
-
if (!importPaths)
|
40
|
-
return false;
|
41
|
-
return importPaths.some(p => typeof p === 'string' ? importDecl.source.value === p : p.test(importDecl.source.value));
|
42
|
-
};
|
43
|
-
const isWithinTrackedCall = (path) => {
|
44
|
-
let current = path.parentPath;
|
45
|
-
while (current) {
|
46
|
-
if (current.isCallExpression() && isReactiveCall(current))
|
47
|
-
return true;
|
48
|
-
current = current.parentPath;
|
49
|
-
}
|
28
|
+
const isReactiveCall = (path) => {
|
29
|
+
if (!t.isCallExpression(path.node))
|
50
30
|
return false;
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
31
|
+
const callee = path.node.callee;
|
32
|
+
if (!t.isIdentifier(callee))
|
33
|
+
return false;
|
34
|
+
return isTrackedImport(callee.name, path);
|
35
|
+
};
|
36
|
+
const isWithinTrackedCall = (path) => {
|
37
|
+
let current = path.parentPath;
|
38
|
+
while (current) {
|
39
|
+
if (current.isCallExpression() && isReactiveCall(current))
|
40
|
+
return true;
|
41
|
+
current = current.parentPath;
|
42
|
+
}
|
43
|
+
return false;
|
44
|
+
};
|
45
|
+
function convertReactiveToGenerator(path) {
|
46
|
+
if (!isWithinTrackedCall(path))
|
47
|
+
return;
|
48
|
+
if (!path.node.async)
|
49
|
+
return;
|
50
|
+
path.traverse({
|
51
|
+
AwaitExpression(awaitPath) {
|
52
|
+
const funcParent = awaitPath.getFunctionParent();
|
53
|
+
if (funcParent?.node !== path.node)
|
54
|
+
return;
|
55
|
+
awaitPath.replaceWith(t.yieldExpression(awaitPath.node.argument));
|
56
|
+
},
|
57
|
+
});
|
58
|
+
path.node.async = false;
|
59
|
+
if (t.isArrowFunctionExpression(path.node)) {
|
60
|
+
let hasThis = false;
|
59
61
|
path.traverse({
|
60
|
-
|
61
|
-
|
62
|
-
if (funcParent?.node !== path.node)
|
63
|
-
return;
|
64
|
-
awaitPath.replaceWith(t.yieldExpression(awaitPath.node.argument));
|
62
|
+
ThisExpression() {
|
63
|
+
hasThis = true;
|
65
64
|
},
|
66
65
|
});
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
path.traverse({
|
74
|
-
ThisExpression() {
|
75
|
-
hasThis = true;
|
76
|
-
},
|
77
|
-
});
|
78
|
-
const functionBody = t.isBlockStatement(path.node.body)
|
79
|
-
? path.node.body
|
80
|
-
: t.blockStatement([t.returnStatement(path.node.body)]);
|
81
|
-
const newFunction = t.functionExpression(null, path.node.params, functionBody, true, // generator
|
82
|
-
false);
|
83
|
-
// If we found 'this' usage, wrap in bind call
|
84
|
-
if (hasThis) {
|
85
|
-
path.replaceWith(t.callExpression(t.memberExpression(newFunction, t.identifier('bind')), [t.thisExpression()]));
|
86
|
-
}
|
87
|
-
else {
|
88
|
-
path.replaceWith(newFunction);
|
89
|
-
}
|
66
|
+
const functionBody = t.isBlockStatement(path.node.body)
|
67
|
+
? path.node.body
|
68
|
+
: t.blockStatement([t.returnStatement(path.node.body)]);
|
69
|
+
const newFunction = t.functionExpression(null, path.node.params, functionBody, true, false);
|
70
|
+
if (hasThis) {
|
71
|
+
path.replaceWith(t.callExpression(t.memberExpression(newFunction, t.identifier('bind')), [t.thisExpression()]));
|
90
72
|
}
|
91
73
|
else {
|
92
|
-
|
93
|
-
path.node.generator = true;
|
74
|
+
path.replaceWith(newFunction);
|
94
75
|
}
|
95
76
|
}
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
77
|
+
else {
|
78
|
+
path.node.generator = true;
|
79
|
+
}
|
80
|
+
}
|
81
|
+
return {
|
82
|
+
name: 'signalium-transform-reactive-async',
|
83
|
+
visitor: {
|
84
|
+
FunctionExpression: convertReactiveToGenerator,
|
85
|
+
ArrowFunctionExpression: convertReactiveToGenerator,
|
86
|
+
},
|
103
87
|
};
|
104
88
|
}
|
89
|
+
function signaliumAsyncTransform(apiOrOpts, maybeOpts) {
|
90
|
+
if ((0, utils_js_1.isBabelApi)(apiOrOpts)) {
|
91
|
+
return createSignaliumAsyncTransform(apiOrOpts, maybeOpts);
|
92
|
+
}
|
93
|
+
return (api) => createSignaliumAsyncTransform(api, apiOrOpts);
|
94
|
+
}
|
105
95
|
//# sourceMappingURL=async.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/transform/async.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"async.js","sourceRoot":"","sources":["../../../src/transform/async.ts"],"names":[],"mappings":"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"}
|
@@ -1,6 +1,9 @@
|
|
1
1
|
import type { PluginObj } from '@babel/core';
|
2
2
|
export interface SignaliumCallbackTransformOptions {
|
3
3
|
transformedImports: [string, string | RegExp][];
|
4
|
+
importPaths?: (string | RegExp)[];
|
5
|
+
callbackImportPath?: string;
|
4
6
|
}
|
7
|
+
export declare function signaliumCallbackTransform(api: any, opts?: SignaliumCallbackTransformOptions): PluginObj;
|
5
8
|
export declare function signaliumCallbackTransform(opts?: SignaliumCallbackTransformOptions): (api: any) => PluginObj;
|
6
9
|
//# sourceMappingURL=callback.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../src/transform/callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"callback.d.ts","sourceRoot":"","sources":["../../../src/transform/callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,SAAS,EAAc,MAAM,aAAa,CAAC;AAG9E,MAAM,WAAW,iCAAiC;IAChD,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IAClC,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAiWD,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,iCAAiC,GAAG,SAAS,CAAC;AAC1G,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,iCAAiC,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,SAAS,CAAC"}
|