@builder.io/mitosis 0.0.115-7 → 0.0.115
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/src/generators/qwik/helpers/state.js +8 -1
- package/dist/src/generators/rsc.js +0 -1
- package/dist/src/generators/svelte/blocks.js +17 -3
- package/dist/src/generators/vue/blocks.js +8 -1
- package/dist/src/helpers/mitosis-imports.d.ts +5 -0
- package/dist/src/helpers/mitosis-imports.js +49 -0
- package/dist/src/helpers/plugins/process-signals.js +3 -3
- package/dist/src/helpers/replace-identifiers.js +0 -1
- package/dist/src/helpers/signals/index.d.ts +1 -0
- package/dist/src/helpers/signals/index.js +17 -0
- package/dist/src/{parsers/jsx/types-identification.d.ts → helpers/signals/signals.d.ts} +8 -18
- package/dist/src/helpers/signals/signals.js +115 -0
- package/dist/src/helpers/typescript-project.d.ts +8 -0
- package/dist/src/helpers/typescript-project.js +78 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.js +2 -0
- package/dist/src/parsers/jsx/hooks/use-target.js +7 -3
- package/dist/src/parsers/jsx/imports.d.ts +0 -2
- package/dist/src/parsers/jsx/imports.js +3 -23
- package/dist/src/parsers/jsx/index.d.ts +0 -1
- package/dist/src/parsers/jsx/index.js +1 -4
- package/dist/src/parsers/jsx/jsx.js +4 -3
- package/dist/src/parsers/jsx/signals.d.ts +11 -0
- package/dist/src/parsers/jsx/signals.js +64 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -3
- package/dist/src/parsers/jsx/types-identification.js +0 -235
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.findSignals = void 0;
|
|
4
|
+
var ts_morph_1 = require("ts-morph");
|
|
5
|
+
var typescript_project_1 = require("../../helpers/typescript-project");
|
|
6
|
+
var findSignals = function (args) {
|
|
7
|
+
var project = args.project, signalSymbol = args.signalSymbol;
|
|
8
|
+
var ast = args.code
|
|
9
|
+
? args.project.createSourceFile('homepage2.lite.tsx', args.code)
|
|
10
|
+
: args.filePath
|
|
11
|
+
? args.project.getSourceFileOrThrow(args.filePath)
|
|
12
|
+
: undefined;
|
|
13
|
+
if (ast === undefined) {
|
|
14
|
+
throw new Error('Could not find AST. Please provide either `code` or `filePath` configs.');
|
|
15
|
+
}
|
|
16
|
+
var reactiveValues = {
|
|
17
|
+
props: new Set(),
|
|
18
|
+
state: new Set(),
|
|
19
|
+
context: new Set(),
|
|
20
|
+
};
|
|
21
|
+
var propsSymbol = (0, typescript_project_1.getPropsSymbol)(ast);
|
|
22
|
+
var contextSymbols = (0, typescript_project_1.getContextSymbols)(ast);
|
|
23
|
+
ast.forEachDescendant(function (parentNode) {
|
|
24
|
+
var _a;
|
|
25
|
+
if (ts_morph_1.Node.isPropertyAccessExpression(parentNode)) {
|
|
26
|
+
var node = parentNode.getExpression();
|
|
27
|
+
var aliasSymbol = (_a = node.getType().getTargetType()) === null || _a === void 0 ? void 0 : _a.getAliasSymbol();
|
|
28
|
+
var isSignal = aliasSymbol === signalSymbol;
|
|
29
|
+
if (!isSignal)
|
|
30
|
+
return;
|
|
31
|
+
var isInsideType_1 = false;
|
|
32
|
+
var isInsideDeclaration = false;
|
|
33
|
+
node.getParentWhile(function (parent, child) {
|
|
34
|
+
// stop once we hit the function block
|
|
35
|
+
if (ts_morph_1.Node.isBlock(child) || ts_morph_1.Node.isBlock(parent)) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
// crawl up parents to make sure we're not inside a type
|
|
39
|
+
if (ts_morph_1.Node.isTypeNode(parent) || ts_morph_1.Node.isTypeAliasDeclaration(parent)) {
|
|
40
|
+
isInsideType_1 = true;
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
return true;
|
|
44
|
+
});
|
|
45
|
+
if (isInsideType_1)
|
|
46
|
+
return;
|
|
47
|
+
if (isInsideDeclaration)
|
|
48
|
+
return;
|
|
49
|
+
var nodeSymbol = node.getSymbol();
|
|
50
|
+
if (ts_morph_1.Node.isPropertyAccessExpression(node) &&
|
|
51
|
+
node.getExpression().getSymbol() === propsSymbol) {
|
|
52
|
+
reactiveValues.props.add(node.getNameNode().getText());
|
|
53
|
+
}
|
|
54
|
+
else if (nodeSymbol && contextSymbols.has(nodeSymbol)) {
|
|
55
|
+
reactiveValues.context.add(node.getText());
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
reactiveValues.state.add(node.getText());
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
return reactiveValues;
|
|
63
|
+
};
|
|
64
|
+
exports.findSignals = findSignals;
|