modality-ts 0.0.13 → 0.0.15
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/cli/cli.js +117 -27
- package/dist/cli/cli.js.map +1 -1
- package/dist/cli/features/check/command.d.ts +7 -0
- package/dist/cli/features/check/command.d.ts.map +1 -1
- package/dist/cli/features/check/command.js +39 -6
- package/dist/cli/features/check/command.js.map +1 -1
- package/dist/cli/features/check/index.d.ts +2 -0
- package/dist/cli/features/check/index.d.ts.map +1 -1
- package/dist/cli/features/check/index.js +1 -0
- package/dist/cli/features/check/index.js.map +1 -1
- package/dist/cli/features/check/output.d.ts +29 -0
- package/dist/cli/features/check/output.d.ts.map +1 -0
- package/dist/cli/features/check/output.js +174 -0
- package/dist/cli/features/check/output.js.map +1 -0
- package/dist/cli/features/ci/command.d.ts +2 -0
- package/dist/cli/features/ci/command.d.ts.map +1 -1
- package/dist/cli/features/ci/command.js +21 -0
- package/dist/cli/features/ci/command.js.map +1 -1
- package/dist/cli/features/ci/index.d.ts +2 -0
- package/dist/cli/features/ci/index.d.ts.map +1 -1
- package/dist/cli/features/ci/index.js +1 -0
- package/dist/cli/features/ci/index.js.map +1 -1
- package/dist/cli/features/ci/output.d.ts +19 -0
- package/dist/cli/features/ci/output.d.ts.map +1 -0
- package/dist/cli/features/ci/output.js +40 -0
- package/dist/cli/features/ci/output.js.map +1 -0
- package/dist/cli/features/conform/index.d.ts +1 -0
- package/dist/cli/features/conform/index.d.ts.map +1 -1
- package/dist/cli/features/conform/index.js +1 -0
- package/dist/cli/features/conform/index.js.map +1 -1
- package/dist/cli/features/conform/output.d.ts +9 -0
- package/dist/cli/features/conform/output.d.ts.map +1 -0
- package/dist/cli/features/conform/output.js +28 -0
- package/dist/cli/features/conform/output.js.map +1 -0
- package/dist/cli/features/export/command.d.ts +2 -0
- package/dist/cli/features/export/command.d.ts.map +1 -1
- package/dist/cli/features/export/command.js +8 -2
- package/dist/cli/features/export/command.js.map +1 -1
- package/dist/cli/features/export/index.d.ts +1 -0
- package/dist/cli/features/export/index.d.ts.map +1 -1
- package/dist/cli/features/export/index.js +1 -0
- package/dist/cli/features/export/index.js.map +1 -1
- package/dist/cli/features/export/output.d.ts +8 -0
- package/dist/cli/features/export/output.d.ts.map +1 -0
- package/dist/cli/features/export/output.js +14 -0
- package/dist/cli/features/export/output.js.map +1 -0
- package/dist/cli/features/extract/command.d.ts +9 -0
- package/dist/cli/features/extract/command.d.ts.map +1 -1
- package/dist/cli/features/extract/command.js +20 -1
- package/dist/cli/features/extract/command.js.map +1 -1
- package/dist/cli/features/extract/index.d.ts +2 -0
- package/dist/cli/features/extract/index.d.ts.map +1 -1
- package/dist/cli/features/extract/index.js +1 -0
- package/dist/cli/features/extract/index.js.map +1 -1
- package/dist/cli/features/extract/output.d.ts +22 -0
- package/dist/cli/features/extract/output.d.ts.map +1 -0
- package/dist/cli/features/extract/output.js +48 -0
- package/dist/cli/features/extract/output.js.map +1 -0
- package/dist/cli/features/init/index.d.ts +1 -0
- package/dist/cli/features/init/index.d.ts.map +1 -1
- package/dist/cli/features/init/index.js +1 -0
- package/dist/cli/features/init/index.js.map +1 -1
- package/dist/cli/features/init/output.d.ts +4 -0
- package/dist/cli/features/init/output.d.ts.map +1 -0
- package/dist/cli/features/init/output.js +9 -0
- package/dist/cli/features/init/output.js.map +1 -0
- package/dist/cli/features/replay/index.d.ts +1 -0
- package/dist/cli/features/replay/index.d.ts.map +1 -1
- package/dist/cli/features/replay/index.js +1 -0
- package/dist/cli/features/replay/index.js.map +1 -1
- package/dist/cli/features/replay/output.d.ts +10 -0
- package/dist/cli/features/replay/output.d.ts.map +1 -0
- package/dist/cli/features/replay/output.js +37 -0
- package/dist/cli/features/replay/output.js.map +1 -0
- package/dist/cli/output.d.ts +28 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +64 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/extract/engine/ts/context.d.ts.map +1 -1
- package/dist/extract/engine/ts/context.js +7 -1
- package/dist/extract/engine/ts/context.js.map +1 -1
- package/dist/extract/engine/ts/react-source-transitions.d.ts +4 -1
- package/dist/extract/engine/ts/react-source-transitions.d.ts.map +1 -1
- package/dist/extract/engine/ts/react-source-transitions.js +11 -2
- package/dist/extract/engine/ts/react-source-transitions.js.map +1 -1
- package/dist/extract/engine/ts/transition/expressions.d.ts +1 -1
- package/dist/extract/engine/ts/transition/expressions.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/expressions.js +12 -1
- package/dist/extract/engine/ts/transition/expressions.js.map +1 -1
- package/dist/extract/engine/ts/transition/handlers.d.ts +3 -3
- package/dist/extract/engine/ts/transition/handlers.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/handlers.js +10 -7
- package/dist/extract/engine/ts/transition/handlers.js.map +1 -1
- package/dist/extract/engine/ts/transition/statement-summary.d.ts +6 -2
- package/dist/extract/engine/ts/transition/statement-summary.d.ts.map +1 -1
- package/dist/extract/engine/ts/transition/statement-summary.js +40 -6
- package/dist/extract/engine/ts/transition/statement-summary.js.map +1 -1
- package/dist/extract/engine/ts/types.d.ts +3 -0
- package/dist/extract/engine/ts/types.d.ts.map +1 -1
- package/dist/extract/sources/jotai/derived-writes.d.ts +11 -0
- package/dist/extract/sources/jotai/derived-writes.d.ts.map +1 -0
- package/dist/extract/sources/jotai/derived-writes.js +141 -0
- package/dist/extract/sources/jotai/derived-writes.js.map +1 -0
- package/dist/extract/sources/jotai/discover.d.ts +16 -0
- package/dist/extract/sources/jotai/discover.d.ts.map +1 -1
- package/dist/extract/sources/jotai/discover.js +163 -46
- package/dist/extract/sources/jotai/discover.js.map +1 -1
- package/dist/extract/sources/jotai/domains.d.ts +14 -1
- package/dist/extract/sources/jotai/domains.d.ts.map +1 -1
- package/dist/extract/sources/jotai/domains.js +481 -70
- package/dist/extract/sources/jotai/domains.js.map +1 -1
- package/dist/extract/sources/jotai/harness.d.ts +4 -1
- package/dist/extract/sources/jotai/harness.d.ts.map +1 -1
- package/dist/extract/sources/jotai/harness.js +10 -3
- package/dist/extract/sources/jotai/harness.js.map +1 -1
- package/dist/extract/sources/jotai/hydration.d.ts +16 -0
- package/dist/extract/sources/jotai/hydration.d.ts.map +1 -0
- package/dist/extract/sources/jotai/hydration.js +116 -0
- package/dist/extract/sources/jotai/hydration.js.map +1 -0
- package/dist/extract/sources/jotai/ids.d.ts +7 -0
- package/dist/extract/sources/jotai/ids.d.ts.map +1 -0
- package/dist/extract/sources/jotai/ids.js +23 -0
- package/dist/extract/sources/jotai/ids.js.map +1 -0
- package/dist/extract/sources/jotai/imports.d.ts +23 -0
- package/dist/extract/sources/jotai/imports.d.ts.map +1 -0
- package/dist/extract/sources/jotai/imports.js +111 -0
- package/dist/extract/sources/jotai/imports.js.map +1 -0
- package/dist/extract/sources/jotai/jsx.d.ts +4 -0
- package/dist/extract/sources/jotai/jsx.d.ts.map +1 -0
- package/dist/extract/sources/jotai/jsx.js +52 -0
- package/dist/extract/sources/jotai/jsx.js.map +1 -0
- package/dist/extract/sources/jotai/plugin.d.ts.map +1 -1
- package/dist/extract/sources/jotai/plugin.js +9 -2
- package/dist/extract/sources/jotai/plugin.js.map +1 -1
- package/dist/extract/sources/jotai/stores.d.ts +3 -0
- package/dist/extract/sources/jotai/stores.d.ts.map +1 -0
- package/dist/extract/sources/jotai/stores.js +40 -0
- package/dist/extract/sources/jotai/stores.js.map +1 -0
- package/dist/extract/sources/jotai/transitions.d.ts.map +1 -1
- package/dist/extract/sources/jotai/transitions.js +16 -5
- package/dist/extract/sources/jotai/transitions.js.map +1 -1
- package/dist/extract/sources/jotai/types.d.ts +22 -0
- package/dist/extract/sources/jotai/types.d.ts.map +1 -0
- package/dist/extract/sources/jotai/types.js +86 -0
- package/dist/extract/sources/jotai/types.js.map +1 -0
- package/dist/extract/sources/jotai/writes.d.ts +23 -1
- package/dist/extract/sources/jotai/writes.d.ts.map +1 -1
- package/dist/extract/sources/jotai/writes.js +330 -89
- package/dist/extract/sources/jotai/writes.js.map +1 -1
- package/dist/extract/sources/shared/react-transition-extract.d.ts +3 -0
- package/dist/extract/sources/shared/react-transition-extract.d.ts.map +1 -1
- package/dist/extract/sources/shared/react-transition-extract.js +5 -0
- package/dist/extract/sources/shared/react-transition-extract.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/domains.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"domains.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/domains.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,11 +3,14 @@ import type { AbstractDomain, ModelState, Value } from "modality-ts/core";
|
|
|
3
3
|
export interface JotaiHarnessHooks extends HarnessHooks {
|
|
4
4
|
initialState: ModelState;
|
|
5
5
|
atoms?: Record<string, unknown>;
|
|
6
|
+
stores?: Record<string, {
|
|
7
|
+
get(atom: unknown): Value;
|
|
8
|
+
}>;
|
|
6
9
|
store?: {
|
|
7
10
|
get(atom: unknown): Value;
|
|
8
11
|
};
|
|
9
12
|
}
|
|
10
|
-
export declare function setup(ctx: HarnessCtx & Partial<Pick<JotaiHarnessHooks, "atoms" | "store">>): JotaiHarnessHooks;
|
|
13
|
+
export declare function setup(ctx: HarnessCtx & Partial<Pick<JotaiHarnessHooks, "atoms" | "store" | "stores">>): JotaiHarnessHooks;
|
|
11
14
|
export declare function observe(varId: string, handles: HarnessHooks): ObservedRead | "unobservable";
|
|
12
15
|
export declare function witness(_domain: AbstractDomain, _varId: string): WitnessFactory | undefined;
|
|
13
16
|
//# sourceMappingURL=harness.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"harness.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/harness.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,YAAY,EACZ,cAAc,EACf,MAAM,gCAAgC,CAAC;AACxC,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAG1E,MAAM,WAAW,iBAAkB,SAAQ,YAAY;IACrD,YAAY,EAAE,UAAU,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAA;KAAE,CAAC,CAAC;IACvD,KAAK,CAAC,EAAE;QACN,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;KAC3B,CAAC;CACH;AAED,wBAAgB,KAAK,CACnB,GAAG,EAAE,UAAU,GACb,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,CAAC,CAAC,GAC/D,iBAAiB,CAOnB;AAED,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,GACpB,YAAY,GAAG,cAAc,CAgB/B;AAED,wBAAgB,OAAO,CACrB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,GACb,cAAc,GAAG,SAAS,CAE5B"}
|
|
@@ -1,15 +1,22 @@
|
|
|
1
|
+
import { atomNameFromVarId, storeScopeFromVarId } from "./ids.js";
|
|
1
2
|
export function setup(ctx) {
|
|
2
3
|
return {
|
|
3
4
|
initialState: ctx.initialState ?? {},
|
|
4
5
|
...(ctx.atoms ? { atoms: ctx.atoms } : {}),
|
|
5
6
|
...(ctx.store ? { store: ctx.store } : {}),
|
|
7
|
+
...(ctx.stores ? { stores: ctx.stores } : {}),
|
|
6
8
|
};
|
|
7
9
|
}
|
|
8
10
|
export function observe(varId, handles) {
|
|
9
11
|
const jotai = handles;
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
12
|
+
const atomName = atomNameFromVarId(varId);
|
|
13
|
+
const storeScope = storeScopeFromVarId(varId);
|
|
14
|
+
const atom = jotai.atoms?.[varId] ??
|
|
15
|
+
jotai.atoms?.[atomName ?? ""] ??
|
|
16
|
+
(atomName ? jotai.atoms?.[`atom:${atomName}`] : undefined);
|
|
17
|
+
const store = (storeScope ? jotai.stores?.[storeScope] : undefined) ?? jotai.store;
|
|
18
|
+
if (atom !== undefined && store)
|
|
19
|
+
return { value: store.get(atom) };
|
|
13
20
|
if (varId in jotai.initialState) {
|
|
14
21
|
const initial = jotai.initialState[varId];
|
|
15
22
|
if (initial !== undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/harness.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"harness.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/harness.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAWlE,MAAM,UAAU,KAAK,CACnB,GACgE;IAEhE,OAAO;QACL,YAAY,EAAE,GAAG,CAAC,YAAY,IAAI,EAAE;QACpC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC9C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,KAAa,EACb,OAAqB;IAErB,MAAM,KAAK,GAAG,OAA4B,CAAC;IAC3C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,UAAU,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,IAAI,GACR,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;QACpB,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,IAAI,EAAE,CAAC;QAC7B,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,QAAQ,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC7D,MAAM,KAAK,GACT,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC;IACvE,IAAI,IAAI,KAAK,SAAS,IAAI,KAAK;QAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IACnE,IAAI,KAAK,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;IACvD,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,OAAO,CACrB,OAAuB,EACvB,MAAc;IAEd,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import type { SourceAnchor, Value } from "modality-ts/core";
|
|
3
|
+
export interface HydrationOverride {
|
|
4
|
+
varId: string;
|
|
5
|
+
initial: Value;
|
|
6
|
+
}
|
|
7
|
+
export interface HydrationDiscovery {
|
|
8
|
+
overrides: HydrationOverride[];
|
|
9
|
+
warnings: {
|
|
10
|
+
message: string;
|
|
11
|
+
source?: SourceAnchor;
|
|
12
|
+
}[];
|
|
13
|
+
}
|
|
14
|
+
export declare function discoverHydrationOverrides(source: ts.SourceFile, fileName: string, imports?: import("./imports.js").JotaiResolvedImports): HydrationDiscovery;
|
|
15
|
+
export declare function applyHydrationOverrides(decls: readonly import("modality-ts/extract/engine/spi").SourceDecl[], overrides: readonly HydrationOverride[]): import("modality-ts/extract/engine/spi").SourceDecl[];
|
|
16
|
+
//# sourceMappingURL=hydration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydration.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/hydration.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAM5D,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,KAAK,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAC/B,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,EAAE,CAAC;CACxD;AAED,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,EAAE,CAAC,UAAU,EACrB,QAAQ,EAAE,MAAM,EAChB,OAAO,8CAA8B,GACpC,kBAAkB,CAiEpB;AAED,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,SAAS,OAAO,gCAAgC,EAAE,UAAU,EAAE,EACrE,SAAS,EAAE,SAAS,iBAAiB,EAAE,GACtC,OAAO,gCAAgC,EAAE,UAAU,EAAE,CAevD"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import { literalValue, propertyName } from "../../engine/ts/ast.js";
|
|
3
|
+
import { providerScopeFromJsx } from "./jsx.js";
|
|
4
|
+
import { isHookCall, resolveJotaiImports } from "./imports.js";
|
|
5
|
+
import { atomVarId } from "./ids.js";
|
|
6
|
+
export function discoverHydrationOverrides(source, fileName, imports = resolveJotaiImports(source)) {
|
|
7
|
+
const overrides = [];
|
|
8
|
+
const warnings = [];
|
|
9
|
+
if (!imports.hooks.size)
|
|
10
|
+
return { overrides, warnings };
|
|
11
|
+
const visit = (node, storeScope) => {
|
|
12
|
+
if (ts.isCallExpression(node) &&
|
|
13
|
+
isHookCall(node, imports.hooks, "useHydrateAtoms")) {
|
|
14
|
+
const valuesArg = node.arguments[0];
|
|
15
|
+
const optionsArg = node.arguments[1];
|
|
16
|
+
let scopedStore = storeScope;
|
|
17
|
+
if (optionsArg && ts.isObjectLiteralExpression(optionsArg)) {
|
|
18
|
+
for (const prop of optionsArg.properties) {
|
|
19
|
+
if (!ts.isPropertyAssignment(prop))
|
|
20
|
+
continue;
|
|
21
|
+
const name = propertyName(prop.name);
|
|
22
|
+
if (name === "store" && ts.isIdentifier(prop.initializer)) {
|
|
23
|
+
scopedStore = prop.initializer.text;
|
|
24
|
+
}
|
|
25
|
+
if (name === "dangerouslyForceHydrate" &&
|
|
26
|
+
prop.initializer.kind === ts.SyntaxKind.TrueKeyword) {
|
|
27
|
+
warnings.push({
|
|
28
|
+
message: "Jotai dangerouslyForceHydrate concurrent semantics not modeled",
|
|
29
|
+
source: anchor(source, fileName, node),
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
if (!valuesArg)
|
|
35
|
+
return;
|
|
36
|
+
const pairs = hydrationPairs(valuesArg);
|
|
37
|
+
if (!pairs) {
|
|
38
|
+
warnings.push({
|
|
39
|
+
message: "Jotai useHydrateAtoms dynamic values unsupported",
|
|
40
|
+
source: anchor(source, fileName, node),
|
|
41
|
+
});
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
for (const [atomName, value] of pairs) {
|
|
45
|
+
if (value === undefined) {
|
|
46
|
+
warnings.push({
|
|
47
|
+
message: `Jotai useHydrateAtoms dynamic value for ${atomName} unsupported`,
|
|
48
|
+
source: anchor(source, fileName, node),
|
|
49
|
+
});
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
overrides.push({
|
|
53
|
+
varId: atomVarId(atomName, scopedStore),
|
|
54
|
+
initial: value,
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node)) {
|
|
59
|
+
const providerScope = providerScopeFromJsx(node, imports, source);
|
|
60
|
+
const childScope = providerScope ?? storeScope;
|
|
61
|
+
ts.forEachChild(node, (child) => visit(child, childScope));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
ts.forEachChild(node, (child) => visit(child, storeScope));
|
|
65
|
+
};
|
|
66
|
+
visit(source, undefined);
|
|
67
|
+
return { overrides, warnings };
|
|
68
|
+
}
|
|
69
|
+
export function applyHydrationOverrides(decls, overrides) {
|
|
70
|
+
if (overrides.length === 0)
|
|
71
|
+
return [...decls];
|
|
72
|
+
const overrideMap = new Map(overrides.map((entry) => [entry.varId, entry.initial]));
|
|
73
|
+
return decls.map((decl) => {
|
|
74
|
+
if (!decl.var)
|
|
75
|
+
return decl;
|
|
76
|
+
const override = overrideMap.get(decl.var.id);
|
|
77
|
+
if (override === undefined)
|
|
78
|
+
return decl;
|
|
79
|
+
return {
|
|
80
|
+
...decl,
|
|
81
|
+
var: { ...decl.var, initial: override },
|
|
82
|
+
metadata: { ...decl.metadata, hydrated: true },
|
|
83
|
+
};
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
function hydrationPairs(expression) {
|
|
87
|
+
if (ts.isArrayLiteralExpression(expression)) {
|
|
88
|
+
const pairs = [];
|
|
89
|
+
for (const element of expression.elements) {
|
|
90
|
+
if (!ts.isArrayLiteralExpression(element) ||
|
|
91
|
+
element.elements.length < 2) {
|
|
92
|
+
return undefined;
|
|
93
|
+
}
|
|
94
|
+
const atom = element.elements[0];
|
|
95
|
+
const value = element.elements[1];
|
|
96
|
+
if (!atom || !ts.isIdentifier(atom) || !value)
|
|
97
|
+
return undefined;
|
|
98
|
+
const lit = literalValue(value);
|
|
99
|
+
pairs.push([atom.text, lit]);
|
|
100
|
+
}
|
|
101
|
+
return pairs;
|
|
102
|
+
}
|
|
103
|
+
if (ts.isNewExpression(expression) &&
|
|
104
|
+
ts.isIdentifier(expression.expression) &&
|
|
105
|
+
expression.expression.text === "Map" &&
|
|
106
|
+
expression.arguments?.[0] &&
|
|
107
|
+
ts.isArrayLiteralExpression(expression.arguments[0])) {
|
|
108
|
+
return hydrationPairs(expression.arguments[0]);
|
|
109
|
+
}
|
|
110
|
+
return undefined;
|
|
111
|
+
}
|
|
112
|
+
function anchor(source, fileName, node) {
|
|
113
|
+
const pos = source.getLineAndCharacterOfPosition(node.getStart(source));
|
|
114
|
+
return { file: fileName, line: pos.line + 1, column: pos.character + 1 };
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=hydration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hydration.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/hydration.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export declare function atomVarId(atomName: string, storeScope?: string): string;
|
|
2
|
+
export declare function familyVarId(familyName: string, param: string): string;
|
|
3
|
+
export declare function providerStoreScope(componentName: string): string;
|
|
4
|
+
export declare function sanitizeFamilyParam(param: string): string;
|
|
5
|
+
export declare function atomNameFromVarId(varId: string): string | undefined;
|
|
6
|
+
export declare function storeScopeFromVarId(varId: string): string | undefined;
|
|
7
|
+
//# sourceMappingURL=ids.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/ids.ts"],"names":[],"mappings":"AAAA,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAGvE;AAED,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEhE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEzD;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGnE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAGrE"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
export function atomVarId(atomName, storeScope) {
|
|
2
|
+
if (!storeScope)
|
|
3
|
+
return `atom:${atomName}`;
|
|
4
|
+
return `atom:${atomName}@store:${storeScope}`;
|
|
5
|
+
}
|
|
6
|
+
export function familyVarId(familyName, param) {
|
|
7
|
+
return `atom-family:${familyName}:${sanitizeFamilyParam(param)}`;
|
|
8
|
+
}
|
|
9
|
+
export function providerStoreScope(componentName) {
|
|
10
|
+
return `provider:${componentName}`;
|
|
11
|
+
}
|
|
12
|
+
export function sanitizeFamilyParam(param) {
|
|
13
|
+
return JSON.stringify(param);
|
|
14
|
+
}
|
|
15
|
+
export function atomNameFromVarId(varId) {
|
|
16
|
+
const match = /^(?:atom|atom-family):([^@]+)/.exec(varId);
|
|
17
|
+
return match?.[1];
|
|
18
|
+
}
|
|
19
|
+
export function storeScopeFromVarId(varId) {
|
|
20
|
+
const match = /@store:(.+)$/.exec(varId);
|
|
21
|
+
return match?.[1];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=ids.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ids.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/ids.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,UAAmB;IAC7D,IAAI,CAAC,UAAU;QAAE,OAAO,QAAQ,QAAQ,EAAE,CAAC;IAC3C,OAAO,QAAQ,QAAQ,UAAU,UAAU,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,UAAkB,EAAE,KAAa;IAC3D,OAAO,eAAe,UAAU,IAAI,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;AACnE,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,aAAqB;IACtD,OAAO,YAAY,aAAa,EAAE,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC7C,MAAM,KAAK,GAAG,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC1D,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,KAAa;IAC/C,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
export declare const JOTAI_CORE_MODULES: Set<string>;
|
|
3
|
+
export declare const JOTAI_UTIL_MODULES: Set<string>;
|
|
4
|
+
export declare const JOTAI_MODULES: Set<string>;
|
|
5
|
+
export declare const ATOM_CREATOR_SYMBOLS: Set<string>;
|
|
6
|
+
export declare const HOOK_SYMBOLS: Set<string>;
|
|
7
|
+
export declare const STORE_SYMBOLS: Set<string>;
|
|
8
|
+
export interface JotaiResolvedImports {
|
|
9
|
+
atomCreators: Map<string, string>;
|
|
10
|
+
hooks: Map<string, string>;
|
|
11
|
+
storeCreators: Map<string, string>;
|
|
12
|
+
utils: Map<string, string>;
|
|
13
|
+
resetSymbol: string | undefined;
|
|
14
|
+
providerTag: string | undefined;
|
|
15
|
+
}
|
|
16
|
+
export declare function resolveJotaiImports(source: ts.SourceFile): JotaiResolvedImports;
|
|
17
|
+
export declare function isJotaiModuleSpecifier(moduleSpecifier: ts.Expression): boolean;
|
|
18
|
+
export declare function moduleSpecifierText(moduleSpecifier: ts.Expression): string | undefined;
|
|
19
|
+
export declare function isAtomCreatorCall(node: ts.Expression, atomCreators: ReadonlyMap<string, string>): node is ts.CallExpression;
|
|
20
|
+
export declare function atomCreatorName(call: ts.CallExpression, atomCreators: ReadonlyMap<string, string>): string | undefined;
|
|
21
|
+
export declare function isHookCall(node: ts.Expression, hooks: ReadonlyMap<string, string>, importedName: string): node is ts.CallExpression;
|
|
22
|
+
export declare function hookImportedName(node: ts.CallExpression, hooks: ReadonlyMap<string, string>): string | undefined;
|
|
23
|
+
//# sourceMappingURL=imports.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/imports.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAEjC,eAAO,MAAM,kBAAkB,aAI7B,CAAC;AAEH,eAAO,MAAM,kBAAkB,aAI7B,CAAC;AAEH,eAAO,MAAM,aAAa,aAGxB,CAAC;AAEH,eAAO,MAAM,oBAAoB,aAW/B,CAAC;AAEH,eAAO,MAAM,YAAY,aAMvB,CAAC;AAEH,eAAO,MAAM,aAAa,aAA8C,CAAC;AAEzE,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;CACjC;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,EAAE,CAAC,UAAU,GACpB,oBAAoB,CA6CtB;AAED,wBAAgB,sBAAsB,CACpC,eAAe,EAAE,EAAE,CAAC,UAAU,GAC7B,OAAO,CAGT;AAED,wBAAgB,mBAAmB,CACjC,eAAe,EAAE,EAAE,CAAC,UAAU,GAC7B,MAAM,GAAG,SAAS,CAEpB;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,IAAI,IAAI,EAAE,CAAC,cAAc,CAM3B;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACxC,MAAM,GAAG,SAAS,CAGpB;AAED,wBAAgB,UAAU,CACxB,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EAClC,YAAY,EAAE,MAAM,GACnB,IAAI,IAAI,EAAE,CAAC,cAAc,CAI3B;AAED,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,EAAE,CAAC,cAAc,EACvB,KAAK,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GACjC,MAAM,GAAG,SAAS,CAGpB"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
export const JOTAI_CORE_MODULES = new Set([
|
|
3
|
+
"jotai",
|
|
4
|
+
"jotai/react",
|
|
5
|
+
"jotai/vanilla",
|
|
6
|
+
]);
|
|
7
|
+
export const JOTAI_UTIL_MODULES = new Set([
|
|
8
|
+
"jotai/utils",
|
|
9
|
+
"jotai/vanilla/utils",
|
|
10
|
+
"jotai-family",
|
|
11
|
+
]);
|
|
12
|
+
export const JOTAI_MODULES = new Set([
|
|
13
|
+
...JOTAI_CORE_MODULES,
|
|
14
|
+
...JOTAI_UTIL_MODULES,
|
|
15
|
+
]);
|
|
16
|
+
export const ATOM_CREATOR_SYMBOLS = new Set([
|
|
17
|
+
"atom",
|
|
18
|
+
"atomWithStorage",
|
|
19
|
+
"atomWithLazy",
|
|
20
|
+
"atomWithReset",
|
|
21
|
+
"atomWithDefault",
|
|
22
|
+
"atomWithRefresh",
|
|
23
|
+
"loadable",
|
|
24
|
+
"unwrap",
|
|
25
|
+
"atomWithObservable",
|
|
26
|
+
"atomFamily",
|
|
27
|
+
]);
|
|
28
|
+
export const HOOK_SYMBOLS = new Set([
|
|
29
|
+
"useAtom",
|
|
30
|
+
"useSetAtom",
|
|
31
|
+
"useStore",
|
|
32
|
+
"useHydrateAtoms",
|
|
33
|
+
"useResetAtom",
|
|
34
|
+
]);
|
|
35
|
+
export const STORE_SYMBOLS = new Set(["createStore", "getDefaultStore"]);
|
|
36
|
+
export function resolveJotaiImports(source) {
|
|
37
|
+
const atomCreators = new Map();
|
|
38
|
+
const hooks = new Map();
|
|
39
|
+
const storeCreators = new Map();
|
|
40
|
+
const utils = new Map();
|
|
41
|
+
let resetSymbol;
|
|
42
|
+
let providerTag;
|
|
43
|
+
for (const statement of source.statements) {
|
|
44
|
+
if (!ts.isImportDeclaration(statement))
|
|
45
|
+
continue;
|
|
46
|
+
const moduleName = moduleSpecifierText(statement.moduleSpecifier);
|
|
47
|
+
if (!moduleName || !JOTAI_MODULES.has(moduleName))
|
|
48
|
+
continue;
|
|
49
|
+
const bindings = statement.importClause?.namedBindings;
|
|
50
|
+
if (!bindings || !ts.isNamedImports(bindings))
|
|
51
|
+
continue;
|
|
52
|
+
for (const specifier of bindings.elements) {
|
|
53
|
+
const imported = specifier.propertyName?.text ?? specifier.name.text;
|
|
54
|
+
const local = specifier.name.text;
|
|
55
|
+
if (ATOM_CREATOR_SYMBOLS.has(imported)) {
|
|
56
|
+
atomCreators.set(local, imported);
|
|
57
|
+
}
|
|
58
|
+
if (HOOK_SYMBOLS.has(imported)) {
|
|
59
|
+
hooks.set(local, imported);
|
|
60
|
+
}
|
|
61
|
+
if (STORE_SYMBOLS.has(imported)) {
|
|
62
|
+
storeCreators.set(local, imported);
|
|
63
|
+
}
|
|
64
|
+
if (imported === "createJSONStorage" ||
|
|
65
|
+
imported === "RESET" ||
|
|
66
|
+
imported === "Provider") {
|
|
67
|
+
utils.set(local, imported);
|
|
68
|
+
}
|
|
69
|
+
if (imported === "RESET")
|
|
70
|
+
resetSymbol = local;
|
|
71
|
+
if (imported === "Provider")
|
|
72
|
+
providerTag = local;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
return {
|
|
76
|
+
atomCreators,
|
|
77
|
+
hooks,
|
|
78
|
+
storeCreators,
|
|
79
|
+
utils,
|
|
80
|
+
resetSymbol,
|
|
81
|
+
providerTag,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
export function isJotaiModuleSpecifier(moduleSpecifier) {
|
|
85
|
+
const text = moduleSpecifierText(moduleSpecifier);
|
|
86
|
+
return text !== undefined && JOTAI_MODULES.has(text);
|
|
87
|
+
}
|
|
88
|
+
export function moduleSpecifierText(moduleSpecifier) {
|
|
89
|
+
return ts.isStringLiteral(moduleSpecifier) ? moduleSpecifier.text : undefined;
|
|
90
|
+
}
|
|
91
|
+
export function isAtomCreatorCall(node, atomCreators) {
|
|
92
|
+
return (ts.isCallExpression(node) &&
|
|
93
|
+
ts.isIdentifier(node.expression) &&
|
|
94
|
+
atomCreators.has(node.expression.text));
|
|
95
|
+
}
|
|
96
|
+
export function atomCreatorName(call, atomCreators) {
|
|
97
|
+
if (!ts.isIdentifier(call.expression))
|
|
98
|
+
return undefined;
|
|
99
|
+
return atomCreators.get(call.expression.text);
|
|
100
|
+
}
|
|
101
|
+
export function isHookCall(node, hooks, importedName) {
|
|
102
|
+
if (!ts.isCallExpression(node) || !ts.isIdentifier(node.expression))
|
|
103
|
+
return false;
|
|
104
|
+
return hooks.get(node.expression.text) === importedName;
|
|
105
|
+
}
|
|
106
|
+
export function hookImportedName(node, hooks) {
|
|
107
|
+
if (!ts.isIdentifier(node.expression))
|
|
108
|
+
return undefined;
|
|
109
|
+
return hooks.get(node.expression.text);
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=imports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imports.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/imports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import type { resolveJotaiImports } from "./imports.js";
|
|
3
|
+
export declare function providerScopeFromJsx(node: ts.JsxElement | ts.JsxSelfClosingElement, imports: ReturnType<typeof resolveJotaiImports>, source: ts.SourceFile): string | undefined;
|
|
4
|
+
//# sourceMappingURL=jsx.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAGjC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAExD,wBAAgB,oBAAoB,CAClC,IAAI,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,qBAAqB,EAC9C,OAAO,EAAE,UAAU,CAAC,OAAO,mBAAmB,CAAC,EAC/C,MAAM,EAAE,EAAE,CAAC,UAAU,GACpB,MAAM,GAAG,SAAS,CAqBpB"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import { componentNameFor } from "../../engine/ts/ast.js";
|
|
3
|
+
import { providerStoreScope } from "./ids.js";
|
|
4
|
+
export function providerScopeFromJsx(node, imports, source) {
|
|
5
|
+
const tag = jsxTagName(node);
|
|
6
|
+
if (!tag)
|
|
7
|
+
return undefined;
|
|
8
|
+
const isProvider = tag === imports.providerTag ||
|
|
9
|
+
tag === "Provider" ||
|
|
10
|
+
tag.endsWith(".Provider");
|
|
11
|
+
if (!isProvider)
|
|
12
|
+
return undefined;
|
|
13
|
+
const attrs = jsxAttributes(node);
|
|
14
|
+
const storeAttr = attrs.get("store");
|
|
15
|
+
if (!storeAttr) {
|
|
16
|
+
const component = enclosingComponentName(node, source);
|
|
17
|
+
return component ? providerStoreScope(component) : "provider:anonymous";
|
|
18
|
+
}
|
|
19
|
+
if (ts.isJsxExpression(storeAttr) && storeAttr.expression) {
|
|
20
|
+
if (ts.isIdentifier(storeAttr.expression)) {
|
|
21
|
+
return storeAttr.expression.text;
|
|
22
|
+
}
|
|
23
|
+
return undefined;
|
|
24
|
+
}
|
|
25
|
+
return undefined;
|
|
26
|
+
}
|
|
27
|
+
function jsxTagName(node) {
|
|
28
|
+
if (ts.isJsxSelfClosingElement(node))
|
|
29
|
+
return node.tagName.getText();
|
|
30
|
+
return node.openingElement.tagName.getText();
|
|
31
|
+
}
|
|
32
|
+
function jsxAttributes(node) {
|
|
33
|
+
const attrs = new Map();
|
|
34
|
+
const opening = ts.isJsxSelfClosingElement(node) ? node : node.openingElement;
|
|
35
|
+
for (const attr of opening.attributes.properties) {
|
|
36
|
+
if (!ts.isJsxAttribute(attr) || !ts.isIdentifier(attr.name))
|
|
37
|
+
continue;
|
|
38
|
+
attrs.set(attr.name.text, attr.initializer);
|
|
39
|
+
}
|
|
40
|
+
return attrs;
|
|
41
|
+
}
|
|
42
|
+
function enclosingComponentName(node, source) {
|
|
43
|
+
let current = node.parent;
|
|
44
|
+
while (current) {
|
|
45
|
+
const name = componentNameFor(current);
|
|
46
|
+
if (name)
|
|
47
|
+
return name;
|
|
48
|
+
current = current.parent;
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=jsx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jsx.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/jsx.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAG9C,MAAM,UAAU,oBAAoB,CAClC,IAA8C,EAC9C,OAA+C,EAC/C,MAAqB;IAErB,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC7B,IAAI,CAAC,GAAG;QAAE,OAAO,SAAS,CAAC;IAC3B,MAAM,UAAU,GACd,GAAG,KAAK,OAAO,CAAC,WAAW;QAC3B,GAAG,KAAK,UAAU;QAClB,GAAG,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC5B,IAAI,CAAC,UAAU;QAAE,OAAO,SAAS,CAAC;IAClC,MAAM,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAClC,MAAM,SAAS,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,sBAAsB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACvD,OAAO,SAAS,CAAC,CAAC,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAC1E,CAAC;IACD,IAAI,EAAE,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC,UAAU,EAAE,CAAC;QAC1D,IAAI,EAAE,CAAC,YAAY,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1C,OAAO,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC;QACnC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CACjB,IAA8C;IAE9C,IAAI,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;IACpE,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;AAC/C,CAAC;AAED,SAAS,aAAa,CACpB,IAA8C;IAE9C,MAAM,KAAK,GAAG,IAAI,GAAG,EAA4C,CAAC;IAClE,MAAM,OAAO,GAAG,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC;IAC9E,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QACjD,IAAI,CAAC,EAAE,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;YAAE,SAAS;QACtE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,sBAAsB,CAC7B,IAAa,EACb,MAAqB;IAErB,IAAI,OAAO,GAAwB,IAAI,CAAC,MAAM,CAAC;IAC/C,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACvC,IAAI,IAAI;YAAE,OAAO,IAAI,CAAC;QACtB,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;IAC3B,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAGV,iBAAiB,EAClB,MAAM,gCAAgC,CAAC;AASxC,wBAAgB,WAAW,IAAI,iBAAiB,CAiB/C;AAYD,eAAe,WAAW,CAAC"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import * as harness from "./harness.js";
|
|
2
|
-
import {
|
|
2
|
+
import { discoverJotaiAtomsDetailed } from "./discover.js";
|
|
3
3
|
import { discoverJotaiSafetyWarnings, discoverJotaiWriteChannels, } from "./writes.js";
|
|
4
4
|
export function jotaiSource() {
|
|
5
5
|
return {
|
|
6
6
|
id: "jotai",
|
|
7
7
|
version: "0.1.0",
|
|
8
8
|
packageNames: ["jotai"],
|
|
9
|
-
discover: (ctx) =>
|
|
9
|
+
discover: (ctx) => discoverJotaiAtomsDetailed(ctx.sourceText, ctx.fileName).decls,
|
|
10
10
|
writeChannels: (ctx) => discoverJotaiWriteChannels(ctx.sourceText, ctx.fileName),
|
|
11
11
|
safetyWarnings: (ctx) => discoverJotaiSafetyWarnings(ctx.sourceText, ctx.fileName),
|
|
12
|
+
summarizeWrite: summarizeJotaiWrite,
|
|
12
13
|
harness,
|
|
13
14
|
conformance: {
|
|
14
15
|
testedVersions: "jotai>=2",
|
|
15
16
|
},
|
|
16
17
|
};
|
|
17
18
|
}
|
|
19
|
+
function summarizeJotaiWrite(call, _ctx) {
|
|
20
|
+
if (call.callee.endsWith(".setShouldRemove")) {
|
|
21
|
+
return { kind: "seq", effects: [] };
|
|
22
|
+
}
|
|
23
|
+
return "unsupported";
|
|
24
|
+
}
|
|
18
25
|
export default jotaiSource;
|
|
19
26
|
//# sourceMappingURL=plugin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/plugin.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/plugin.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,OAAO,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,0BAA0B,EAAE,MAAM,eAAe,CAAC;AAC3D,OAAO,EACL,2BAA2B,EAC3B,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAErB,MAAM,UAAU,WAAW;IACzB,OAAO;QACL,EAAE,EAAE,OAAO;QACX,OAAO,EAAE,OAAO;QAChB,YAAY,EAAE,CAAC,OAAO,CAAC;QACvB,QAAQ,EAAE,CAAC,GAAG,EAAE,EAAE,CAChB,0BAA0B,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,KAAK;QAChE,aAAa,EAAE,CAAC,GAAG,EAAE,EAAE,CACrB,0BAA0B,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC;QAC1D,cAAc,EAAE,CAAC,GAAG,EAAE,EAAE,CACtB,2BAA2B,CAAC,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC;QAC3D,cAAc,EAAE,mBAAmB;QACnC,OAAO;QACP,WAAW,EAAE;YACX,cAAc,EAAE,UAAU;SAC3B;KACF,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAc,EACd,IAAW;IAEX,IAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;QAC7C,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/stores.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AAIjC,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,EAAE,CAAC,UAAU,EACrB,OAAO,8CAA8B,GACpC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAcrB"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
2
|
+
import { resolveJotaiImports } from "./imports.js";
|
|
3
|
+
import { providerScopeFromJsx } from "./jsx.js";
|
|
4
|
+
export function discoverComponentStoreScopes(source, imports = resolveJotaiImports(source)) {
|
|
5
|
+
const scopes = new Map();
|
|
6
|
+
const visit = (node, inheritedScope) => {
|
|
7
|
+
let scope = inheritedScope;
|
|
8
|
+
if (ts.isJsxElement(node) || ts.isJsxSelfClosingElement(node)) {
|
|
9
|
+
const providerScope = providerScopeFromJsx(node, imports, source);
|
|
10
|
+
if (providerScope)
|
|
11
|
+
scope = providerScope;
|
|
12
|
+
const childTag = jsxChildComponentName(node);
|
|
13
|
+
if (childTag && scope)
|
|
14
|
+
scopes.set(childTag, scope);
|
|
15
|
+
}
|
|
16
|
+
ts.forEachChild(node, (child) => visit(child, scope));
|
|
17
|
+
};
|
|
18
|
+
visit(source, undefined);
|
|
19
|
+
return scopes;
|
|
20
|
+
}
|
|
21
|
+
function jsxChildComponentName(node) {
|
|
22
|
+
if (ts.isJsxSelfClosingElement(node)) {
|
|
23
|
+
const tag = node.tagName.getText();
|
|
24
|
+
return tag[0] === tag[0]?.toUpperCase() ? tag : undefined;
|
|
25
|
+
}
|
|
26
|
+
for (const child of node.children) {
|
|
27
|
+
if (ts.isJsxSelfClosingElement(child)) {
|
|
28
|
+
const tag = child.tagName.getText();
|
|
29
|
+
if (tag[0] === tag[0]?.toUpperCase())
|
|
30
|
+
return tag;
|
|
31
|
+
}
|
|
32
|
+
if (ts.isJsxElement(child)) {
|
|
33
|
+
const tag = child.openingElement.tagName.getText();
|
|
34
|
+
if (tag[0] === tag[0]?.toUpperCase())
|
|
35
|
+
return tag;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=stores.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stores.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/stores.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,MAAM,UAAU,4BAA4B,CAC1C,MAAqB,EACrB,OAAO,GAAG,mBAAmB,CAAC,MAAM,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IACzC,MAAM,KAAK,GAAG,CAAC,IAAa,EAAE,cAAuB,EAAQ,EAAE;QAC7D,IAAI,KAAK,GAAG,cAAc,CAAC;QAC3B,IAAI,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9D,MAAM,aAAa,GAAG,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;YAClE,IAAI,aAAa;gBAAE,KAAK,GAAG,aAAa,CAAC;YACzC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YAC7C,IAAI,QAAQ,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QACrD,CAAC;QACD,EAAE,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC,CAAC;IACF,KAAK,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAA8C;IAE9C,IAAI,EAAE,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5D,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,EAAE,CAAC,uBAAuB,CAAC,KAAK,CAAC,EAAE,CAAC;YACtC,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACpC,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;gBAAE,OAAO,GAAG,CAAC;QACnD,CAAC;QACD,IAAI,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,MAAM,GAAG,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACnD,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE;gBAAE,OAAO,GAAG,CAAC;QACnD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|