remark-typescript-code-import
TypeScript icon, indicating that this package has built-in type declarations

1.0.1 • Public • Published

remark-typescript-code-import

📝 A remark plugin to import code from typescript files

npm version

Installation

npm install -D remark-directive remark-typescript-code-import

Setup

import remarkTypescriptCodeImport from 'remark-typescript-code-import';
// or
// const remarkTypescriptCodeImport = require('remark-typescript-code-import').default;

See Using plugins for more instructions in the official documentation.

Usage

For example, given a file named example.mdx with the following contents:

::typescript{file="./Component.tsx#ComponentProps"}

and Component.tsx

type ComponentProps = {
  propA: string;
}

function Component(props: ComponentProps) {
  ...
}

The following script:

import { remark } from 'remark';
import path from 'node:path';
import remarkDirectivePlugin from 'remark-directive';
import { read } from 'to-vfile';

const result = await remark()
  .use(remarkDirectivePlugin)
  .use(remarkTypescriptCodeImport)
  .process(await read('example.md'));

console.log(result.toString());

yields:

```tsx
type ComponentProps = {
  propA: string;
};
```

The file path is relative to the markdown file path. You can use <rootDir> at the start of the path to import files relatively from the rootDir:

::typescript{file="<rootDir>/Button.tsx#ButtonComponent"}

It supports multiple files and types

::typescript{file="./Button.tsx#ButtonComponent,ButtonProps ./Chip.tsx#ChipComponent,ChipProps"}

Options

  • directiveName: string: The directive name. Defaults to component-docs.
  • fileAttributeName: string: The attribute name for file path. Defaults to file.
  • rootDir: string: Change what <rootDir> refers to. Defaults to process.cwd().

Testing

After installing dependencies with npm install, the tests can be run with: npm test

License

Rippling People Center Inc. Apache 2.0

Package Sidebar

Install

npm i remark-typescript-code-import

Weekly Downloads

12,134

Version

1.0.1

License

Apache-2.0

Unpacked Size

28.9 kB

Total Files

7

Last publish

Collaborators

  • mrdivyansh
  • divyansh_rippling