
Security News
Deno 2.2 Improves Dependency Management and Expands Node.js Compatibility
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Simple functions to derive a TypeScript interface from a JavaScript object example.
npm install -g derive-ts
# OR
npx derive-ts
The deriveInterfaceFromObject function can be imported and used in code also. The deriveInterfaceFromObject function accepts three parameters: a JavaScript object to convert to a TypeScript interface, an interface name to use in the generated TypeScript, and optionally a boolean flag if the code should be prettified or not (defaults to true).
Install the package locally in your project:
npm install --save derive-ts
and then:
const { deriveInterfaceFromObject } = require('derive-ts');
deriveInterfaceFromObject({ a: 1, b: 2, c: 3 }, 'MyInterface', true)
.then((typeScriptInterfaceString) => {
console.log(typeScriptInterfaceString);
})
.catch((error) => {
console.error(error);
});
The above will log the following:
export interface MyInterface {
a: number;
b: number;
c: number;
}
The prettifyCode code function is also exported from the library so you can pass in your own prettier options to format the generated TypeScript. It accepts two parameters: the code string to format and an object with the prettier options.
The CLI can be used by installing the derive-ts
package or with npx
:
npm install --global derive-ts
derive-ts derive examples/example.js -n Test -i example -o output.ts
# OR
npx derive-ts derive examples/example.js -n Test -i example -o output.ts
This is the main command that accepts parameters of a JavaScript file containing the example object to derive the TypeScript interface from.
-n, --interface-name <name> Name of the outputted interface
-i, --import-name <importName> Name of the object exported from the specified file
-o, --output-file <outputFilePath> File to save the interface to
A JavaScript file has been created called 'example.js' with the following contents:
exports.example = {
address_components: [
{ long_name: '8035', short_name: '8035', types: ['street_number'] },
{ long_name: 'Market Street', short_name: 'Market St', types: ['route'] },
{ long_name: 'Wilmington', short_name: 'Wilmington', types: ['locality', 'political'] },
],
adr_address:
'<span class="street-address">8035 Market St</span>, <span class="locality">Wilmington</span>, <span class="region">NC</span> <span class="postal-code">28411</span>, <span class="country-name">USA</span>',
business_status: 'OPERATIONAL',
formatted_address: '8035 Market St, Wilmington, NC 28411, USA',
formatted_phone_number: '(910) 686-2007',
vicinity: '8035 Market Street, Wilmington',
website:
'https://restaurants.subway.com/united-states/nc/wilmington/8035-market-st?utm_source=yxt-goog&utm_medium=local&utm_term=acq&utm_content=60848&utm_campaign=evergreen-2020&y_source=1_MTQ4OTUyNzYtNzE1LWxvY2F0aW9uLmdvb2dsZV93ZWJzaXRlX292ZXJyaWRl',
};
After running the following command:
derive-ts derive ./example.js --output-file output.ts --interface-name Test --import-name example
The following file is generated 'output.ts' with the contents:
export interface Test {
address_components: {
long_name: string;
short_name: string;
types: string[];
}[];
adr_address: string;
business_status: string;
formatted_address: string;
formatted_phone_number: string;
vicinity: string;
website: string;
}
FAQs
Simple library to derive TypeScript interfaces from JS object / JSON examples
The npm package derive-ts receives a total of 1 weekly downloads. As such, derive-ts popularity was classified as not popular.
We found that derive-ts 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
Deno 2.2 enhances Node.js compatibility, improves dependency management, adds OpenTelemetry support, and expands linting and task automation for developers.
Security News
React's CRA deprecation announcement sparked community criticism over framework recommendations, leading to quick updates acknowledging build tools like Vite as valid alternatives.
Security News
Ransomware payment rates hit an all-time low in 2024 as law enforcement crackdowns, stronger defenses, and shifting policies make attacks riskier and less profitable.