Security News
New Python Packaging Proposal Aims to Solve Phantom Dependency Problem with SBOMs
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
basic-fsa-factories
Advanced tools
basic (0.3kB) partial implementation of some common flux standard action (FSA) factories to instantiate action factories and dispatchers
basic (0.3kB) partial implementation of some common FSA factories
to instantiate action factories and dispatchers.
does not support error
and meta
properties.
const ping = createActionFactory('PING')
const pong = createActionFactory('PONG', (foo, bar) => ({ foo, bar }))
console.log(ping('bar')) // {type: 'PING', payload: 'bar'}
console.log(pong('baz', 42)) // {type: 'PONG', payload: {foo: 'baz', bar: 42}}
const { onPing, onPong } = createActionDispatchers({
onPing: 'PING',
onPong: ['PONG', (foo, bar) => ({ foo, bar })]
})(console.log.bind(console)) // "dispatch" event objects to console
onPing('bar') // {type: 'PING', payload: 'bar'}
onPong('baz', 42) // {type: 'PONG', payload: {foo: 'baz', bar: 42}}
export declare function createActionDispatchers(
specs: KeyedMap<(string | ((...args: any[]) => any))[] | string | ((...args: any[]) => any)>
): (dispatch: (event: any) => void) => KeyedMap<(...args: any[]) => void>
export declare function createActionDispatcher<P>(
type: string,
createPayload?: (...args: any[]) => P
): (dispatch: (event: any) => void) => (...args: any[]) => void
export declare function createActionFactories(
specs: KeyedMap<(string | ((...args: any[]) => any))[] | string | ((...args: any[]) => any)>
): KeyedMap<(...args: any[]) => any>
export declare function createActionFactory<P>(
type: string,
createPayload?: (...args: any[]) => P
): (...args: any[]) => StandardAction<P>
export interface StandardAction<P> {
type: string
payload: P
}
export interface KeyedMap<V> {
[k: string]: V
}
run the unit tests in your browser.
note that when a factory function returns nothing or something falsy, the dispatcher is not called.
although this library is written in TypeScript, it may also be imported into plain JavaScript code: modern code editors will still benefit from the available type definition, e.g. for helpful code completion.
Copyright 2018 Stéphane M. Catala
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and Limitations under the License.
FAQs
basic (349 bytes gzip) partial implementation of some common flux standard action (FSA) factories to instantiate action factories and dispatchers with strong typing
The npm package basic-fsa-factories receives a total of 0 weekly downloads. As such, basic-fsa-factories popularity was classified as not popular.
We found that basic-fsa-factories demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
PEP 770 proposes adding SBOM support to Python packages to improve transparency and catch hidden non-Python dependencies that security tools often miss.
Security News
Socket CEO Feross Aboukhadijeh discusses open source security challenges, including zero-day attacks and supply chain risks, on the Cyber Security Council podcast.
Security News
Research
Socket researchers uncover how threat actors weaponize Out-of-Band Application Security Testing (OAST) techniques across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.