
Security News
Crates.io Implements Trusted Publishing Support
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
remove-types
Advanced tools
A small library for transforming TypeScript code into JavaScript code in the least destructive way possible. This library exports a single function whose purpose is to preserve everything else about the code except for the actual TypeScript syntax itself.
remove-types
A small library for transforming TypeScript code into JavaScript code in the least destructive way possible. This library exports a single function whose purpose is to preserve everything else about the code except for the actual TypeScript syntax itself. As a result, things like decorators and class fields should pass straight through without being transformed in any way.
import { removeTypes } from 'remove-types';
const original = `
type AnimalType = 'cat' | 'dog';
// An interface for animals (this comment should be removed when transformed)
interface Animal {
type: AnimalType;
name: string;
age: number;
}
class Cat implements Animal {
type: AnimalType = 'cat';
name: string;
age: number;
constructor(name: string, age: number) {
// This is the name of the animal (this comment should stay)
this.name = name;
this.age = age;
}
}
`;
console.log(await removeTypes(original));
/*
class Cat {
type = 'cat';
constructor(name, age) {
// This is the name of the animal (this comment should stay)
this.name = name;
this.age = age;
}
}
*/
removeTypes(code, prettierConfig = true): Promise<string>
code
: A string containing TypeScript code
prettierConfig
:
true
removeTypes
will run Prettier with a very basic config on the transformed code before returning it. This allows us to clean up some of the "low-hanging" fruit leftover from the Babel transform, e.g. newlines at the beginning or end of the file.false
will bypass the Prettier pass entirely.removeTypes
will use it instead.returns Promise<string>
: a string containing the transformed JavaScript output.
This library is heavily indebted to cyco130/detype and began as an extraction and refactor of one of its core functions.
FAQs
A small library for transforming TypeScript code into JavaScript code in the least destructive way possible. This library exports a single function whose purpose is to preserve everything else about the code except for the actual TypeScript syntax itself.
The npm package remove-types receives a total of 78,777 weekly downloads. As such, remove-types popularity was classified as popular.
We found that remove-types 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
Crates.io adds Trusted Publishing support, enabling secure GitHub Actions-based crate releases without long-lived API tokens.
Research
/Security News
Undocumented protestware found in 28 npm packages disrupts UI for Russian-language users visiting Russian and Belarusian domains.
Research
/Security News
North Korean threat actors deploy 67 malicious npm packages using the newly discovered XORIndex malware loader.