Socket
Socket
Sign inDemoInstall

ts-import

Package Overview
Dependencies
4
Maintainers
1
Versions
88
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    ts-import

Import (compile and cache on the fly) TypeScript files dynamically with ease.


Version published
Weekly downloads
30K
increased by48.07%
Maintainers
1
Created
Weekly downloads
 

Readme

Source

ts-import

Importing TypeScript files dynamically into JavaScript requires additional compilation step, which is troublesome to write for many. Popular `typescript-require` package seems to be obsolete and doesn't allow much customization. Typed alternative to https://github.com/theblacksmith/typescript-require written in TypeScript.

"Buy Me A Coffee"

Table of contents

Features

  • Asynchronous and synchronous version - uses import for async and require for sync.
  • Caches JavaScript files into directory inside .cache/ts-import.
  • Fast - I've benchmarked ways to compare detecting file changes with fs module and checking mtimeMs turned out to be fastest (https://jsperf.com/fs-stat-mtime-vs-mtimems). Also, compilation in versions 3+ is approximately 10x faster than in version 2.
  • Few dependencies - uses only comment-parser and my tiny utility package options-defaults.
  • Highly flexible and configurable - all compilerOptions are available under transpileOptions parameter.
  • No interference - doesn't interfere with native import, require etc. changing their behavior or impacting their performance.

Install

npm i ts-import@4 - CJS npm i ts-import@5 - ESM

Usage

import * as tsImport from 'ts-import';

const main = async () => {
    const filePath = `/home/user/file.ts`;
    const asyncResult = await tsImport.load(filePath, {
        // allowConfigurationWithComments: false,
    });

    // Only available in version 4.
    const syncResult = tsImport.loadSync(filePath);
};

void main();

allowConfigurationWithComments

You can define if file should be imported in the default transpile mode or compile mode by placing a comment on top of the specific file.

Compile mode is slower, but allows the specified file to be part of a complex program - it can import other files etc.

/**
 * @tsImport
 * { "mode": "compile" }
 */

import { getOtherVariable } from './get-other-variable';

const result = getOtherVariable();

export { result };

Keywords

FAQs

Last updated on 11 Apr 2023

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc