typescript
Yanick Champoux 2021-10-18 10:15:06 -04:00
parent 4e4fa13d90
commit 707d9ec923
11 changed files with 88 additions and 80 deletions

View File

@ -1,2 +1,7 @@
dist
out
pnpm-lock.yaml
types
docs
Changes Changes
.prettierignore .prettierignore

View File

@ -1,16 +1,16 @@
language: node_js language: node_js
node_js: node_js:
- 'node' - 'node'
- 'lts/*' - 'lts/*'
install: install:
- npm uninstall typescript --no-save - npm uninstall typescript --no-save
- npm install - npm install
cache: cache:
directories: directories:
- node_modules - node_modules
git: git:
depth: 1 depth: 1

View File

@ -6,54 +6,58 @@ All notable changes to this project will be documented in this file. See [standa
### ⚠ BREAKING CHANGES ### ⚠ BREAKING CHANGES
* Upgrade to Typescript 4. - Upgrade to Typescript 4.
* Switch from 'updeep' to '@yanick/updeep'. - Switch from 'updeep' to '@yanick/updeep'.
## [2.1.0](https://github.com/yanick/updux/compare/v2.0.0...v2.1.0) (2020-06-19) ## [2.1.0](https://github.com/yanick/updux/compare/v2.0.0...v2.1.0) (2020-06-19)
### Features ### Features
* add support for subscriptions ([9c45ee7](https://github.com/yanick/updux/commit/9c45ee7efcb623defb9da5d01165fbad0e4424f9)) - add support for subscriptions ([9c45ee7](https://github.com/yanick/updux/commit/9c45ee7efcb623defb9da5d01165fbad0e4424f9))
## [2.0.0](https://github.com/yanick/updux/compare/v1.2.0...v2.0.0) (2020-06-13) ## [2.0.0](https://github.com/yanick/updux/compare/v1.2.0...v2.0.0) (2020-06-13)
### ⚠ BREAKING CHANGES ### ⚠ BREAKING CHANGES
* use ts-action for action creation - use ts-action for action creation
* middleware support refined - middleware support refined
### Features ### Features
* allow adding actionCreators via addAction() ([27ae46d](https://github.com/yanick/updux/commit/27ae46dbab289b27ea99aca149aaa3b7c90ee7d0)) - allow adding actionCreators via addAction() ([27ae46d](https://github.com/yanick/updux/commit/27ae46dbab289b27ea99aca149aaa3b7c90ee7d0))
* middleware support refined ([d90d721](https://github.com/yanick/updux/commit/d90d72148c2d4ba186a19650d961c64df5791c55)) - middleware support refined ([d90d721](https://github.com/yanick/updux/commit/d90d72148c2d4ba186a19650d961c64df5791c55))
* moving documentation to docsify ([fa55762](https://github.com/yanick/updux/commit/fa55762efcbd4db356150f6022fd62750adc27a9)) - moving documentation to docsify ([fa55762](https://github.com/yanick/updux/commit/fa55762efcbd4db356150f6022fd62750adc27a9))
* use ts-action for action creation ([6349d72](https://github.com/yanick/updux/commit/6349d720b8aba4b443a7225d6a377c5c929a3021)) - use ts-action for action creation ([6349d72](https://github.com/yanick/updux/commit/6349d720b8aba4b443a7225d6a377c5c929a3021))
### Bug Fixes ### Bug Fixes
* state is a PreloadedState<S> ([93bebc5](https://github.com/yanick/updux/commit/93bebc5acf193752aa6b4857507f05d52b1b7665)) - state is a PreloadedState<S> ([93bebc5](https://github.com/yanick/updux/commit/93bebc5acf193752aa6b4857507f05d52b1b7665))
## 1.2.0 2019-11-06 ## 1.2.0 2019-11-06
- The middleware's 'getState' returns the local state of its updux, - The middleware's 'getState' returns the local state of its updux,
instead of the root state. Plus we add `getRootState` to get instead of the root state. Plus we add `getRootState` to get
the root state. the root state.
## 1.1.0 2019-11-05 ## 1.1.0 2019-11-05
- Document mapping behavior of the '*' subdux. - Document mapping behavior of the '*' subdux.
- add subduxUpreducer. - add subduxUpreducer.
- add sink mutations. - add sink mutations.
## 1.0.0 2019-11-04 ## 1.0.0 2019-11-04
- Pretty big rework. - Pretty big rework.
- Better documentation. - Better documentation.
## 0.2.0 2019-10-24 ## 0.2.0 2019-10-24
- Converted everything to Typescript. - Converted everything to Typescript.
## 0.1.0 2019-10-22 ## 0.1.0 2019-10-22
- Add 'actions' in the config. - Add 'actions' in the config.
## 0.0.1 2019-10-22 ## 0.0.1 2019-10-22
- Initial release. - Initial release.

View File

@ -17,24 +17,24 @@ diverse, inclusive, and healthy community.
Examples of behavior that contributes to a positive environment for our Examples of behavior that contributes to a positive environment for our
community include: community include:
* Demonstrating empathy and kindness toward other people - Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences - Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback - Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes, - Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience and learning from the experience
* Focusing on what is best not just for us as individuals, but for the - Focusing on what is best not just for us as individuals, but for the
overall community overall community
Examples of unacceptable behavior include: Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or - The use of sexualized language or imagery, and sexual attention or
advances of any kind advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks - Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment - Public or private harassment
* Publishing others' private information, such as a physical or email - Publishing others' private information, such as a physical or email
address, without their explicit permission address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a - Other conduct which could reasonably be considered inappropriate in a
professional setting professional setting
## Enforcement Responsibilities ## Enforcement Responsibilities
@ -106,7 +106,7 @@ Violating these terms may lead to a permanent ban.
### 4. Permanent Ban ### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community **Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals. individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within **Consequence**: A permanent ban from any sort of public interaction within
@ -126,4 +126,3 @@ enforcement ladder](https://github.com/mozilla/diversity).
For answers to common questions about this code of conduct, see the FAQ at For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations. https://www.contributor-covenant.org/translations.

View File

@ -3,15 +3,18 @@
version: '3' version: '3'
vars: vars:
GREETING: Hello, World! GREETING: Hello, World!
tasks: tasks:
tsc: tsc tsc: tsc
test: jest test: jest
check: 'check:prettier': prettier --check .
deps: [tsc, test]
'check:prettier:fix': prettier --write .
check:
deps: [tsc, test, 'check:prettier']
'test:types': tsd 'test:types': tsd
docs: docs:

View File

@ -1,6 +1,6 @@
module.exports = { module.exports = {
presets: [ presets: [
['@babel/preset-env', {targets: {node: 'current'}}], ['@babel/preset-env', { targets: { node: 'current' } }],
'@babel/preset-typescript', '@babel/preset-typescript',
], ],
}; };

View File

@ -1,3 +1,3 @@
export default { export default {
roots: [ './src' ] roots: ['./src'],
} };

View File

@ -8,7 +8,7 @@
"sourceType": "module", "sourceType": "module",
"tags": { "tags": {
"allowUnknownTags": true, "allowUnknownTags": true,
"dictionaries": ["jsdoc","closure"] "dictionaries": ["jsdoc", "closure"]
}, },
"templates": { "templates": {
"cleverLinks": false, "cleverLinks": false,
@ -19,4 +19,3 @@
"tutorials": "./tutorials" "tutorials": "./tutorials"
} }
} }

View File

@ -11,9 +11,11 @@ type Subdux<TState = any> = {
}; };
type StateOf<D> = D extends { initial: infer I } ? I : unknown; type StateOf<D> = D extends { initial: infer I } ? I : unknown;
type ActionsOf<C> = C extends { actions: infer A } ? { type ActionsOf<C> = C extends { actions: infer A }
[K in keyof A]: Function ? {
} : {}; [K in keyof A]: Function;
}
: {};
type Subduxes = Record<string, Subdux>; type Subduxes = Record<string, Subdux>;

View File

@ -1,19 +1,17 @@
{ {
"include": [ "./src" ], "include": ["./src"],
"exclude": [ "./docs", "./dist" ], "exclude": ["./docs", "./dist"],
"compilerOptions": { "compilerOptions": {
"rootDir": "src", "rootDir": "src",
"outDir": "dist", "outDir": "dist",
"target": "es2020", "target": "es2020",
"lib": [ "lib": ["es2020"],
"es2020" "module": "ES2020",
], "moduleResolution": "Node",
"module": "ES2020", "strict": false,
"moduleResolution": "Node", "sourceMap": true,
"strict": false, "allowSyntheticDefaultImports": true,
"sourceMap": true, "declaration": true,
"allowSyntheticDefaultImports": true, "allowJs": true
"declaration": true, }
"allowJs": true
}
} }

View File

@ -1,15 +1,13 @@
{ {
"name": "Updux", "name": "Updux",
"entryPoints": [ "entryPoints": ["./types/index.d.ts"],
"./types/index.d.ts" "out": "docs/API",
], "excludeExternals": true,
"out": "docs/API", "excludePrivate": true,
"excludeExternals": true, "excludeProtected": true,
"excludePrivate": true, "disableSources": true,
"excludeProtected": true, "listInvalidSymbolLinks": true,
"disableSources": true, "markedOptions": {
"listInvalidSymbolLinks": true, "mangle": false
"markedOptions": { }
"mangle": false
}
} }