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":"transitions.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACb,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"transitions.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/transitions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,OAAO,KAAK,EACV,YAAY,EACZ,iBAAiB,EACjB,YAAY,EACb,MAAM,gCAAgC,CAAC;AAExC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAUpE,MAAM,WAAW,sBAAsB;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,SAAS,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACpC,aAAa,CAAC,EAAE,SAAS,YAAY,EAAE,CAAC;IACxC,aAAa,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAC;IAC7C,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B;AAED,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,sBAA2B,GACnC,sBAAsB,CAgDxB"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
import { extractSharedReactTransitions } from "../shared/react-transition-extract.js";
|
|
2
|
-
import {
|
|
3
|
-
import { discoverJotaiSafetyWarnings, discoverJotaiWriteChannels, } from "./writes.js";
|
|
2
|
+
import { discoverJotaiAtomsDetailed } from "./discover.js";
|
|
3
|
+
import { discoverJotaiSafetyWarnings, discoverJotaiWriteChannels, discoverJotaiWritesDetailed, jotaiResetSymbols, } from "./writes.js";
|
|
4
4
|
import { jotaiSource } from "./plugin.js";
|
|
5
5
|
export function extractJotaiSkeleton(sourceText, options = {}) {
|
|
6
6
|
const fileName = options.fileName ?? "App.tsx";
|
|
7
7
|
const route = options.route ?? "/";
|
|
8
|
-
const
|
|
8
|
+
const discovery = discoverJotaiAtomsDetailed(sourceText, fileName);
|
|
9
|
+
const writeDiscovery = discoverJotaiWritesDetailed(sourceText, fileName);
|
|
9
10
|
const vars = [
|
|
10
|
-
...
|
|
11
|
+
...discovery.decls
|
|
12
|
+
.map((decl) => decl.var)
|
|
13
|
+
.filter((decl) => Boolean(decl)),
|
|
14
|
+
...writeDiscovery.storeScopedDecls
|
|
11
15
|
.map((decl) => decl.var)
|
|
12
16
|
.filter((decl) => Boolean(decl)),
|
|
13
17
|
...(options.stateVars ?? []),
|
|
@@ -21,6 +25,10 @@ export function extractJotaiSkeleton(sourceText, options = {}) {
|
|
|
21
25
|
message: warning.message,
|
|
22
26
|
...(warning.source ? { line: warning.source.line } : {}),
|
|
23
27
|
}));
|
|
28
|
+
const discoveryWarnings = discovery.warnings.map((warning) => ({
|
|
29
|
+
message: warning.message,
|
|
30
|
+
...(warning.source ? { line: warning.source.line } : {}),
|
|
31
|
+
}));
|
|
24
32
|
const { transitions, warnings = [] } = extractSharedReactTransitions({
|
|
25
33
|
sourceText,
|
|
26
34
|
fileName,
|
|
@@ -30,12 +38,15 @@ export function extractJotaiSkeleton(sourceText, options = {}) {
|
|
|
30
38
|
stateVars: vars,
|
|
31
39
|
...(writeChannels.length > 0 ? { writeChannels } : {}),
|
|
32
40
|
sourcePlugins,
|
|
41
|
+
resetSymbols: jotaiResetSymbols(sourceText, fileName),
|
|
42
|
+
setterFixedEffects: writeDiscovery.setterFixedEffects,
|
|
43
|
+
resettableVarIds: writeDiscovery.resettableVarIds,
|
|
33
44
|
...(options.routerPlugin ? { routerPlugin: options.routerPlugin } : {}),
|
|
34
45
|
});
|
|
35
46
|
return {
|
|
36
47
|
vars,
|
|
37
48
|
transitions: [...transitions],
|
|
38
|
-
warnings: [...safetyWarnings, ...warnings],
|
|
49
|
+
warnings: [...safetyWarnings, ...discoveryWarnings, ...warnings],
|
|
39
50
|
};
|
|
40
51
|
}
|
|
41
52
|
//# sourceMappingURL=transitions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/transitions.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,6BAA6B,EAAE,MAAM,uCAAuC,CAAC;AAEtF,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"transitions.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/transitions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Value } from "modality-ts/core";
|
|
2
|
+
export type AtomConfigKind = "primitive" | "readOnlyDerived" | "readWriteDerived" | "writeOnlyDerived" | "storage" | "lazy" | "resettable" | "defaultResettable" | "refreshable" | "asyncWrapper" | "family" | "familyInstance";
|
|
3
|
+
export interface JotaiAtomMetadata {
|
|
4
|
+
atomName: string;
|
|
5
|
+
configKind: AtomConfigKind;
|
|
6
|
+
creator?: string;
|
|
7
|
+
storageKey?: string;
|
|
8
|
+
storageKind?: string;
|
|
9
|
+
getOnInit?: boolean;
|
|
10
|
+
resettableInitial?: Value;
|
|
11
|
+
readDependencies?: readonly string[];
|
|
12
|
+
familyFactory?: string;
|
|
13
|
+
familyParam?: string;
|
|
14
|
+
loadableState?: boolean;
|
|
15
|
+
asyncDerived?: boolean;
|
|
16
|
+
warning?: string;
|
|
17
|
+
}
|
|
18
|
+
export declare function metadataToRecord(metadata: JotaiAtomMetadata): Record<string, Value>;
|
|
19
|
+
export declare function metadataFromRecord(record: Record<string, Value> | undefined): JotaiAtomMetadata | undefined;
|
|
20
|
+
export declare function isResettableKind(kind: AtomConfigKind): boolean;
|
|
21
|
+
export declare function isWritableAtomKind(kind: AtomConfigKind): boolean;
|
|
22
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,kBAAkB,GAClB,SAAS,GACT,MAAM,GACN,YAAY,GACZ,mBAAmB,GACnB,aAAa,GACb,cAAc,GACd,QAAQ,GACR,gBAAgB,CAAC;AAErB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,cAAc,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,iBAAiB,CAAC,EAAE,KAAK,CAAC;IAC1B,gBAAgB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACrC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,iBAAiB,GAC1B,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAqBvB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,GAAG,SAAS,GACxC,iBAAiB,GAAG,SAAS,CAqC/B;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAO9D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAWhE"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
export function metadataToRecord(metadata) {
|
|
2
|
+
const record = {
|
|
3
|
+
atomName: metadata.atomName,
|
|
4
|
+
configKind: metadata.configKind,
|
|
5
|
+
};
|
|
6
|
+
if (metadata.creator)
|
|
7
|
+
record.creator = metadata.creator;
|
|
8
|
+
if (metadata.storageKey)
|
|
9
|
+
record.storageKey = metadata.storageKey;
|
|
10
|
+
if (metadata.storageKind)
|
|
11
|
+
record.storageKind = metadata.storageKind;
|
|
12
|
+
if (metadata.getOnInit !== undefined)
|
|
13
|
+
record.getOnInit = metadata.getOnInit;
|
|
14
|
+
if (metadata.resettableInitial !== undefined)
|
|
15
|
+
record.resettableInitial = metadata.resettableInitial;
|
|
16
|
+
if (metadata.readDependencies)
|
|
17
|
+
record.readDependencies = metadata.readDependencies.join(",");
|
|
18
|
+
if (metadata.familyFactory)
|
|
19
|
+
record.familyFactory = metadata.familyFactory;
|
|
20
|
+
if (metadata.familyParam)
|
|
21
|
+
record.familyParam = metadata.familyParam;
|
|
22
|
+
if (metadata.loadableState !== undefined)
|
|
23
|
+
record.loadableState = metadata.loadableState;
|
|
24
|
+
if (metadata.asyncDerived !== undefined)
|
|
25
|
+
record.asyncDerived = metadata.asyncDerived;
|
|
26
|
+
if (metadata.warning)
|
|
27
|
+
record.warning = metadata.warning;
|
|
28
|
+
return record;
|
|
29
|
+
}
|
|
30
|
+
export function metadataFromRecord(record) {
|
|
31
|
+
if (!record || typeof record.atomName !== "string")
|
|
32
|
+
return undefined;
|
|
33
|
+
const configKind = record.configKind;
|
|
34
|
+
if (typeof configKind !== "string")
|
|
35
|
+
return undefined;
|
|
36
|
+
return {
|
|
37
|
+
atomName: record.atomName,
|
|
38
|
+
configKind: configKind,
|
|
39
|
+
...(typeof record.creator === "string" ? { creator: record.creator } : {}),
|
|
40
|
+
...(typeof record.storageKey === "string"
|
|
41
|
+
? { storageKey: record.storageKey }
|
|
42
|
+
: {}),
|
|
43
|
+
...(typeof record.storageKind === "string"
|
|
44
|
+
? { storageKind: record.storageKind }
|
|
45
|
+
: {}),
|
|
46
|
+
...(typeof record.getOnInit === "boolean"
|
|
47
|
+
? { getOnInit: record.getOnInit }
|
|
48
|
+
: {}),
|
|
49
|
+
...(record.resettableInitial !== undefined
|
|
50
|
+
? { resettableInitial: record.resettableInitial }
|
|
51
|
+
: {}),
|
|
52
|
+
...(typeof record.readDependencies === "string"
|
|
53
|
+
? { readDependencies: record.readDependencies.split(",") }
|
|
54
|
+
: {}),
|
|
55
|
+
...(typeof record.familyFactory === "string"
|
|
56
|
+
? { familyFactory: record.familyFactory }
|
|
57
|
+
: {}),
|
|
58
|
+
...(typeof record.familyParam === "string"
|
|
59
|
+
? { familyParam: record.familyParam }
|
|
60
|
+
: {}),
|
|
61
|
+
...(typeof record.loadableState === "boolean"
|
|
62
|
+
? { loadableState: record.loadableState }
|
|
63
|
+
: {}),
|
|
64
|
+
...(typeof record.asyncDerived === "boolean"
|
|
65
|
+
? { asyncDerived: record.asyncDerived }
|
|
66
|
+
: {}),
|
|
67
|
+
...(typeof record.warning === "string" ? { warning: record.warning } : {}),
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
export function isResettableKind(kind) {
|
|
71
|
+
return (kind === "resettable" ||
|
|
72
|
+
kind === "defaultResettable" ||
|
|
73
|
+
kind === "storage" ||
|
|
74
|
+
kind === "refreshable");
|
|
75
|
+
}
|
|
76
|
+
export function isWritableAtomKind(kind) {
|
|
77
|
+
return (kind === "primitive" ||
|
|
78
|
+
kind === "readWriteDerived" ||
|
|
79
|
+
kind === "storage" ||
|
|
80
|
+
kind === "lazy" ||
|
|
81
|
+
kind === "resettable" ||
|
|
82
|
+
kind === "defaultResettable" ||
|
|
83
|
+
kind === "refreshable" ||
|
|
84
|
+
kind === "familyInstance");
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,30 @@
|
|
|
1
|
+
import * as ts from "typescript";
|
|
1
2
|
import type { WriteChannel } from "modality-ts/extract/engine/spi";
|
|
2
|
-
import type { SourceAnchor } from "modality-ts/core";
|
|
3
|
+
import type { EffectIR, SourceAnchor, Value } from "modality-ts/core";
|
|
4
|
+
export interface JotaiWriteDiscovery {
|
|
5
|
+
channels: WriteChannel[];
|
|
6
|
+
warnings: {
|
|
7
|
+
message: string;
|
|
8
|
+
source?: SourceAnchor;
|
|
9
|
+
}[];
|
|
10
|
+
resetSymbol?: string;
|
|
11
|
+
resettableVarIds: Set<string>;
|
|
12
|
+
derivedWriteEffects: Map<string, EffectIR>;
|
|
13
|
+
setterFixedEffects: Map<string, EffectIR>;
|
|
14
|
+
storeScopedDecls: import("modality-ts/extract/engine/spi").SourceDecl[];
|
|
15
|
+
}
|
|
3
16
|
export declare function discoverJotaiSafetyWarnings(sourceText: string, fileName?: string): {
|
|
4
17
|
message: string;
|
|
5
18
|
source?: SourceAnchor;
|
|
6
19
|
}[];
|
|
7
20
|
export declare function discoverJotaiWriteChannels(sourceText: string, fileName?: string): WriteChannel[];
|
|
21
|
+
export declare function discoverJotaiWritesDetailed(sourceText: string, fileName?: string): JotaiWriteDiscovery;
|
|
22
|
+
export declare function setAtomImportNames(source: ts.SourceFile): {
|
|
23
|
+
useAtom: Set<string>;
|
|
24
|
+
useSetAtom: Set<string>;
|
|
25
|
+
};
|
|
26
|
+
export declare function getDefaultStoreImportNames(source: ts.SourceFile): Set<string>;
|
|
27
|
+
export declare function isUseAtomLikeCall(node: ts.Expression, names: Set<string>): node is ts.CallExpression;
|
|
28
|
+
export declare function jotaiResetSymbols(sourceText: string, fileName: string): Set<string>;
|
|
29
|
+
export declare function jotaiInitialByVarId(decls: readonly import("modality-ts/extract/engine/spi").SourceDecl[]): Map<string, Value>;
|
|
8
30
|
//# sourceMappingURL=writes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"writes.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/writes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"writes.d.ts","sourceRoot":"","sources":["../../../../src/extract/sources/jotai/writes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,YAAY,CAAC;AACjC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAyBtE,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,YAAY,CAAA;KAAE,EAAE,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC9B,mBAAmB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC3C,kBAAkB,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAC1C,gBAAgB,EAAE,OAAO,gCAAgC,EAAE,UAAU,EAAE,CAAC;CACzE;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAa,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,YAAY,CAAA;CAAE,EAAE,CA2F9C;AAED,wBAAgB,0BAA0B,CACxC,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAa,GACpB,YAAY,EAAE,CAEhB;AAED,wBAAgB,2BAA2B,CACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,SAAa,GACpB,mBAAmB,CAqQrB;AAqJD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,GAAG;IACzD,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CACzB,CASA;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,EAAE,CAAC,UAAU,GAAG,GAAG,CAAC,MAAM,CAAC,CAO7E;AAED,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,EAAE,CAAC,UAAU,EACnB,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GACjB,IAAI,IAAI,EAAE,CAAC,cAAc,CAM3B;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,GAAG,CAAC,MAAM,CAAC,CAab;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,SAAS,OAAO,gCAAgC,EAAE,UAAU,EAAE,GACpE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAMpB"}
|