New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@bramblex/state-model

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@bramblex/state-model - npm Package Compare versions

Comparing version

to
1.0.1

37

dist/state-model.cjs.js

@@ -5,3 +5,3 @@

* author: bramblex<qjnight@gmail.com>
* state-model.js v0.0.3
* state-model.js v1.0.0
* Released under the MIT license.

@@ -14,7 +14,6 @@ */

var react = require('react');
class StateModel {
state;
listeners = [];
constructor(state) {
this.listeners = [];
this.state = state;

@@ -35,33 +34,3 @@ }

}
function useForceUpdate() {
const [, setState] = react.useState(0);
return () => setState((n) => n + 1);
}
function useModel(model) {
const forceUpdate = useForceUpdate();
react.useEffect(() => model.onStateChange(forceUpdate), [model]);
return model;
}
function useLocalModel(creator, deps = []) {
return useModel(react.useMemo(creator, deps));
}
function getContextByModelClass(ModelClass) {
if (!Object.prototype.hasOwnProperty.apply(ModelClass, ['__Context__'])) {
ModelClass.__Context__ = react.createContext(null);
}
return ModelClass.__Context__;
}
function useModelContext(ModelClass) {
const ModelContext = getContextByModelClass(ModelClass);
return react.useContext(ModelContext);
}
function useModelProvider(ModelClass) {
const ModelContext = getContextByModelClass(ModelClass);
return ModelContext.Provider;
}
exports.StateModel = StateModel;
exports.useLocalModel = useLocalModel;
exports.useModel = useModel;
exports.useModelContext = useModelContext;
exports.useModelProvider = useModelProvider;

@@ -1,3 +0,1 @@

import { Provider } from 'react';
declare type Listener<State> = (state: State, prev: State, model: StateModelType<State>) => void;

@@ -15,7 +13,3 @@ declare type GetStateByModel<T> = T extends StateModelType<infer P> ? P : never;

}
declare function useModel<Model extends StateModelType<GetStateByModel<Model>>>(model: Model): Model;
declare function useLocalModel<Model extends StateModelType<GetStateByModel<Model>>>(creator: () => Model, deps?: unknown[]): Model;
declare function useModelContext<Model extends StateModelType<GetStateByModel<Model>>>(ModelClass: new (...args: unknown[]) => Model): Model;
declare function useModelProvider<Model extends StateModelType<GetStateByModel<Model>>>(ModelClass: new (...args: unknown[]) => Model): Provider<Model>;
export { StateModel, StateModelType, useLocalModel, useModel, useModelContext, useModelProvider };
export { GetStateByModel, Listener, StateModel, StateModelType };

@@ -5,11 +5,10 @@

* author: bramblex<qjnight@gmail.com>
* state-model.js v0.0.3
* state-model.js v1.0.0
* Released under the MIT license.
*/
import { useEffect, useMemo, useContext, useState, createContext } from 'react';
class StateModel {
state;
listeners = [];
constructor(state) {
this.listeners = [];
this.state = state;

@@ -30,29 +29,3 @@ }

}
function useForceUpdate() {
const [, setState] = useState(0);
return () => setState((n) => n + 1);
}
function useModel(model) {
const forceUpdate = useForceUpdate();
useEffect(() => model.onStateChange(forceUpdate), [model]);
return model;
}
function useLocalModel(creator, deps = []) {
return useModel(useMemo(creator, deps));
}
function getContextByModelClass(ModelClass) {
if (!Object.prototype.hasOwnProperty.apply(ModelClass, ['__Context__'])) {
ModelClass.__Context__ = createContext(null);
}
return ModelClass.__Context__;
}
function useModelContext(ModelClass) {
const ModelContext = getContextByModelClass(ModelClass);
return useContext(ModelContext);
}
function useModelProvider(ModelClass) {
const ModelContext = getContextByModelClass(ModelClass);
return ModelContext.Provider;
}
export { StateModel, useLocalModel, useModel, useModelContext, useModelProvider };
export { StateModel };

@@ -5,12 +5,13 @@

* author: bramblex<qjnight@gmail.com>
* state-model.js v0.0.3
* state-model.js v1.0.0
* Released under the MIT license.
*/
var StateModel = (function (exports, react) {
var StateModel = (function (exports) {
'use strict';
class StateModel {
state;
listeners = [];
constructor(state) {
this.listeners = [];
this.state = state;

@@ -31,34 +32,4 @@ }

}
function useForceUpdate() {
const [, setState] = react.useState(0);
return () => setState((n) => n + 1);
}
function useModel(model) {
const forceUpdate = useForceUpdate();
react.useEffect(() => model.onStateChange(forceUpdate), [model]);
return model;
}
function useLocalModel(creator, deps = []) {
return useModel(react.useMemo(creator, deps));
}
function getContextByModelClass(ModelClass) {
if (!Object.prototype.hasOwnProperty.apply(ModelClass, ['__Context__'])) {
ModelClass.__Context__ = react.createContext(null);
}
return ModelClass.__Context__;
}
function useModelContext(ModelClass) {
const ModelContext = getContextByModelClass(ModelClass);
return react.useContext(ModelContext);
}
function useModelProvider(ModelClass) {
const ModelContext = getContextByModelClass(ModelClass);
return ModelContext.Provider;
}
exports.StateModel = StateModel;
exports.useLocalModel = useLocalModel;
exports.useModel = useModel;
exports.useModelContext = useModelContext;
exports.useModelProvider = useModelProvider;

@@ -69,2 +40,2 @@ Object.defineProperty(exports, '__esModule', { value: true });

}({}, React));
}({}));

4

dist/state-model.min.js
/**
* @license
* author: bramblex<qjnight@gmail.com>
* state-model.js v0.0.3
* state-model.js v1.0.0
* Released under the MIT license.
*/
var StateModel=function(t,e){"use strict";function n(t){const n=function(){const[,t]=e.useState(0);return()=>t((t=>t+1))}();return e.useEffect((()=>t.onStateChange(n)),[t]),t}function s(t){return Object.prototype.hasOwnProperty.apply(t,["__Context__"])||(t.__Context__=e.createContext(null)),t.__Context__}return t.StateModel=class{constructor(t){this.listeners=[],this.state=t}onStateChange(t){const e=(...e)=>t(...e);return this.listeners.push(e),()=>{this.listeners=this.listeners.filter((t=>t!==e))}}setState(t){const e=this.state;this.state=t,this.listeners.forEach((n=>n(t,e,this)))}},t.useLocalModel=function(t,s=[]){return n(e.useMemo(t,s))},t.useModel=n,t.useModelContext=function(t){const n=s(t);return e.useContext(n)},t.useModelProvider=function(t){return s(t).Provider},Object.defineProperty(t,"__esModule",{value:!0}),t}({},React);
var StateModel=function(t){"use strict";return t.StateModel=class{state;listeners=[];constructor(t){this.state=t}onStateChange(t){const e=(...e)=>t(...e);return this.listeners.push(e),()=>{this.listeners=this.listeners.filter((t=>t!==e))}}setState(t){const e=this.state;this.state=t,this.listeners.forEach((s=>s(t,e,this)))}},Object.defineProperty(t,"__esModule",{value:!0}),t}({});
{
"name": "@bramblex/state-model",
"version": "0.0.3",
"description": "Simple model for react",
"version": "1.0.1",
"description": "Simple model",
"homepage": "https://github.com/bramblex/state-model",

@@ -17,3 +17,2 @@ "main": "dist/state-model.cjs.js",

"@babel/preset-env": "^7.13.15",
"@babel/preset-react": "^7.13.13",
"@rollup/plugin-babel": "^5.2.2",

@@ -24,3 +23,2 @@ "@rollup/plugin-commonjs": "^17.0.0",

"@types/jest": "^26.0.22",
"@types/react-test-renderer": "^17.0.1",
"@typescript-eslint/eslint-plugin": "^4.14.0",

@@ -32,4 +30,2 @@ "@typescript-eslint/parser": "^4.14.0",

"jest": "^26.6.3",
"react": "^17.0.2",
"react-test-renderer": "^17.0.2",
"rollup": "^2.38.0",

@@ -46,5 +42,3 @@ "rollup-plugin-dts": "^3.0.1",

},
"dependencies": {
"@types/react": "^17.0.3"
}
}
"gitHead": "d07bbd6f87bac044201cf349a0bcfde0789fc244"
}