
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
flow-remove-types-no-whitespace
Advanced tools
Removes Flow type annotations from JavaScript files with speed and simplicity.
Turn your JavaScript with Flow type annotations into standard JavaScript in an instant with no configuration and minimal setup.
Flow provides static type checking to JavaScript which can both help find and detect bugs long before code is deployed and can make code easier to read and more self-documenting. The Flow tool itself only reads and analyzes code. Running code with Flow type annotations requires first removing the annotations which are non-standard JavaScript. Typically this is done via adding a plugin to your Babel configuration, however Babel may be overkill if you're only targetting modern versions of Node.js or just not using the modern ES2015 features that may not be in every browser.
flow-remove-types
is a faster, simpler, zero-configuration alternative with
minimal dependencies for super-fast npm install
time.
Use the command line:
npm install --global flow-remove-types
flow-remove-types --help
flow-remove-types input.js > output.js
Or the JavaScript API:
npm install flow-remove-types
var flowRemoveTypes = require('flow-remove-types');
var fs = require('fs');
var input = fs.readFileSync('input.js', 'utf8');
var output = flowRemoveTypes(input);
fs.writeFileSync('output.js', output);
Rollup: rollup-plugin-flow
Browserify: unflowify
flow-node
Wherever you use node
you can substitute flow-node
and have a super fast
flow-types aware evaluator or REPL.
$ flow-node
> var x: number = 42
undefined
> x
42
Using the require hook allows you to automatically compile files on the fly when requiring in node:
require('flow-remove-types/register')
require('./some-module-with-flow-type-syntax')
When flow-remove-types
removes Flow types, it replaces them with whitespace.
This ensures that the transformed output has exactly the same number of lines
and characters and that all character offsets remain the same. This removes the
need for sourcemaps, maintains legible output, and ensures that it is super easy
to include flow-remove-types
at any point in your existing build tools.
Built atop the excellent babylon
parser,
flow-remove-types
shares the same parse rules as the source of truth as
Flow Babel plugins. It also passes through other common non-standard syntax such
as JSX and experimental ECMAScript proposals.
Before:
import SomeClass from 'some-module'
import type { SomeInterface } from 'some-module'
export class MyClass<T> extends SomeClass implements SomeInterface {
value: T
constructor(value: T) {
this.value = value
}
get(): T {
return this.value
}
}
After:
import SomeClass from 'some-module'
export class MyClass extends SomeClass {
constructor(value ) {
this.value = value
}
get() {
return this.value
}
}
Installing via npm
from an empty project:
flow-remove-types:
time npm install flow-remove-types
real 0m3.193s
user 0m1.643s
sys 0m0.775s
Babel:
time npm install babel-cli babel-plugin-transform-flow-strip-types
real 0m23.200s
user 0m10.395s
sys 0m4.238s
Transforming a directory of 20 files of 100 lines each:
flow-remove-types:
time flow-remove-types src/ --out-dir dest/
real 0m0.431s
user 0m0.436s
sys 0m0.068s
Babel:
time babel src/ --out-dir dest/
real 0m1.074s
user 0m1.092s
sys 0m0.149s
FAQs
Removes Flow type annotations from JavaScript files with speed and simplicity.
The npm package flow-remove-types-no-whitespace receives a total of 1,960 weekly downloads. As such, flow-remove-types-no-whitespace popularity was classified as popular.
We found that flow-remove-types-no-whitespace 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.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.