Skip to content

A plugin to add typescript-plugin-styled-components to a create-react-app with react-scripts-ts

License

Notifications You must be signed in to change notification settings

AustinBrunkhorst/react-app-rewire-styled-components-typescript

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Styled Components Debugging - TypeScript

npm version npm downloads

Debug your TypeScript styled component apps.

What does this package do?

Adds a TypeScript transformer to generate debug information for rewired create react apps.

const Header = styled.h1`...`;

transpiles to

const Header = styled.h1.withConfig({ displayName: 'Header' })`...`;

React Inspector

Screenshot in Chrome React Inspector

Installation

npm install --save react-app-rewire-styled-components-typescript
yarn add react-app-rewire-styled-components-typescript

Usage

In the config-overrides.js you created for react-app-rewired add the following:

⚠️ rewiredStyledComponents is required before this plugin.

// config-overides.js

const { compose } = require("react-app-rewired");
const rewireStyledComponents = require("react-app-rewire-styled-components");
const rewireStyledComponentsTypescriptPlugin = require('react-app-rewire-styled-components-typescript');

// react-app-rewired v1.3.4+ (right-to-left)
module.exports = compose(
  rewireStyledComponentsTypescriptPlugin,
  rewireStyledComponents
);

// older versions
module.exports = function(config, env) {
  config = rewireStyledComponents(config, env);
  config = rewireStyledComponentsTypescriptPlugin(config, env);

  return config;
};

Options

You can pass options directly to typescript-plugin-styled-components in the last argument

// config-overrides.js

module.exports = function(config, env) {
  const pluginOptions = {
    // fancy custom display name
    getDisplayName(filename, bindingName) {
      return (bindingName || filename).toUpperCase();
    }
  };

  config = rewireStyledComponents(config, env);
  config = rewireStyledComponentsTypescriptPlugin(config, env, pluginOptions);

  return config;
};