JSPM

remark-typescript-code-import

1.0.1
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 4720
  • Score
    100M100P100Q122937F
  • License Apache-2.0

A remark plugin to import code from typescript files

Package Exports

  • remark-typescript-code-import
  • remark-typescript-code-import/dist/index.js

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (remark-typescript-code-import) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

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