solid-state-tools 1.0.0
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/atom.d.ts +19 -0
- package/dist/atom.d.ts.map +1 -0
- package/dist/atom.js +23 -0
- package/dist/atom.js.map +1 -0
- package/package.json +38 -0
package/dist/atom.d.ts
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type Signal, type SignalOptions } from "solid-js";
|
|
2
|
+
export type Atomical = readonly [() => any, (...args: any) => any];
|
|
3
|
+
export type Atom<T extends Atomical = Atomical> = T[0] & T[1];
|
|
4
|
+
export declare function atom<const T extends Atomical>(value: T): Atom<T>;
|
|
5
|
+
export type Asig<T> = Atom<Signal<T>>;
|
|
6
|
+
/**
|
|
7
|
+
* Creates an atomic signal. Alias of `atom(createSignal(...))`.
|
|
8
|
+
*/
|
|
9
|
+
export declare function asig<T>(): Atom<Signal<T | undefined>>;
|
|
10
|
+
export declare function asig<T>(value: T, options?: SignalOptions<T>): Atom<Signal<T>>;
|
|
11
|
+
export type Cosig<T> = [
|
|
12
|
+
() => T,
|
|
13
|
+
(value: T) => T
|
|
14
|
+
];
|
|
15
|
+
/**
|
|
16
|
+
* Creates a signal from a getter/setter pair.
|
|
17
|
+
*/
|
|
18
|
+
export declare function cosig<T>(cosig: Cosig<T>): Signal<T>;
|
|
19
|
+
//# sourceMappingURL=atom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atom.d.ts","sourceRoot":"","sources":["../src/atom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,MAAM,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAElF,MAAM,MAAM,QAAQ,GAAG,SAAS,CAAE,MAAM,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,KAAK,GAAG,CAAE,CAAC;AAErE,MAAM,MAAM,IAAI,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AAE9D,wBAAgB,IAAI,CAAC,KAAK,CAAC,CAAC,SAAS,QAAQ,EAAE,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAUlE,MAAM,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAEtC;;GAEG;AACH,wBAAgB,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;AACvD,wBAAgB,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AAK/E,MAAM,MAAM,KAAK,CAAC,CAAC,IAAI;IACtB,MAAM,CAAC;IACP,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC;CACf,CAAC;AAEF;;GAEG;AACH,wBAAgB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAMnD"}
|
package/dist/atom.js
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createSignal, untrack } from "solid-js";
|
|
2
|
+
export function atom(value) {
|
|
3
|
+
if (Array.isArray(value)) {
|
|
4
|
+
if (typeof value[0] === "function" && typeof value[0] === "function") {
|
|
5
|
+
return (...args) => (args.length === 0) ? value[0]() : value[1](...args);
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
throw new Error("cannot create an atom from this value");
|
|
9
|
+
}
|
|
10
|
+
export function asig(...args) {
|
|
11
|
+
return atom(args.length === 0 ? createSignal() : createSignal(args[0], args[1]));
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates a signal from a getter/setter pair.
|
|
15
|
+
*/
|
|
16
|
+
export function cosig(cosig) {
|
|
17
|
+
const [get, set] = cosig;
|
|
18
|
+
return [
|
|
19
|
+
get,
|
|
20
|
+
(value) => set((typeof value === "function") ? value(untrack(get)) : value),
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=atom.js.map
|
package/dist/atom.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"atom.js","sourceRoot":"","sources":["../src/atom.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,OAAO,EAAmC,MAAM,UAAU,CAAC;AAOlF,MAAM,UAAU,IAAI,CAAC,KAAc;IAClC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,EAAE,CAAC;YACtE,OAAO,CAAC,GAAG,IAAS,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/E,CAAC;IACF,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC1D,CAAC;AASD,MAAM,UAAU,IAAI,CAAI,GAAG,IAA+C;IACzE,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,YAAY,EAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAM,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC1F,CAAC;AAOD;;GAEG;AACH,MAAM,UAAU,KAAK,CAAI,KAAe;IACvC,MAAM,CAAE,GAAG,EAAE,GAAG,CAAE,GAAG,KAAK,CAAC;IAC3B,OAAO;QACN,GAAG;QACH,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,CAAE,KAAa,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;KACvE,CAAC;AAChB,CAAC"}
|
package/package.json
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "solid-state-tools",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "A collection of Solid JS state utilities",
|
|
5
|
+
"author": "Reed Syllas <reedsyllas@gmail.com>",
|
|
6
|
+
"license": "ISC",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+https://github.com/ReedSyllas/solid-state-tools.git"
|
|
10
|
+
},
|
|
11
|
+
"homepage": "https://github.com/ReedSyllas/solid-state-tools#readme",
|
|
12
|
+
"keywords": [
|
|
13
|
+
"solid",
|
|
14
|
+
"state"
|
|
15
|
+
],
|
|
16
|
+
"exports": {
|
|
17
|
+
"import": {
|
|
18
|
+
"types": "./dist/index.d.ts",
|
|
19
|
+
"default": "./dist/index.js"
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
"type": "module",
|
|
23
|
+
"main": "./dist/index.js",
|
|
24
|
+
"types": "./dist/index.d.ts",
|
|
25
|
+
"files": [
|
|
26
|
+
"dist"
|
|
27
|
+
],
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/node": "^24.10.0",
|
|
30
|
+
"typescript": "^5.9.3"
|
|
31
|
+
},
|
|
32
|
+
"peerDependencies": {
|
|
33
|
+
"solid-js": "^1.9.10"
|
|
34
|
+
},
|
|
35
|
+
"scripts": {
|
|
36
|
+
"build": "tsc"
|
|
37
|
+
}
|
|
38
|
+
}
|