Skip to content

Commit

Permalink
Merge CHANGELOG into README
Browse files Browse the repository at this point in the history
  • Loading branch information
kdy1 committed Jan 21, 2024
1 parent 6c1093f commit f044520
Show file tree
Hide file tree
Showing 13 changed files with 634 additions and 2 deletions.
175 changes: 175 additions & 0 deletions packages/constify/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# `@swc/constify`

This plugin can be used to hoist constant parts of any expressions as constant variables, without affecting the runtime behavior or readability of the code.

## Why?

There are lots of cases where some parts of expressions are constant and thus can be reused, but others are not.

## Configuration

This plugin can be configured with `.swcrc`

```json
{
"jsc": {
"experimental": {
"plugins": [ ["@swc/plugin-constify", {
}] ]
}
}
```

## Usage

Basically, this plugins is about extracting some parts of expressions.

```ts
import { constify, lazyConst } from "@swc/constify";

export function call(dynamic) {
const options = [
constify({
code: 1,
onClick() {},
}),
{
code: 2,
onClick() {
console.log(dynamic);
},
},
lazyConst({
code: 3,
onClick() {},
}),
];

return options;
}
```

becomes

```ts
const __CONST_0__ = {
code: 1,
onClick() {},
};
function __CONST_1__() {
const __data__ = {
code: 3,
onClick() {},
};
return (__CONST_1__ = function () {
return __data__;
})();
}

export function call(dynamic) {
const options = [
__CONST_0__,
{
code: 2,
onClick() {
console.log(dynamic);
},
},
__CONST_1__(),
];

return options;
}
```

Note that this plugin supports using non-top-level variables. Those are hoisted to uppermost scope with the all used variable in the scope.
In other words, you can write code like

```ts
import { constify, lazyConst } from "@swc/constify";

export function call(d1) {
function a(d2) {
function a1() {
return [
constify({
code: d1,
onClick() {},
}),
constify({
code: d2,
onClick() {
console.log(d2);
},
}),
lazyConst({
code: d1,
onClick() {},
}),
];
}

return a1;
}

return a;
}
```

and it will be compiled as

```ts
export function call(d1) {
const __CONST_0__ = {
code: d1,
onClick() {},
};

function __CONST_2__() {
const __data__ = {
code: d1,
onClick() {},
};
return (__CONST_2__ = function () {
return __data__;
})();
}

function a(d2) {
const __CONST_1__ = {
code: d2,
onClick() {
console.log(d2);
},
};

function a1() {
return [__CONST_0__, __CONST_1__, __CONST_2__()];
}

return a1;
}

return a;
}
```

# @swc/plugin-constify

## 0.1.44

### Patch Changes

- 4ef0b7f: Add changelog to the readme

## 0.1.43

### Patch Changes

- 4e72680: [email protected]

## 0.1.42

### Patch Changes

- 16bb4d8: [email protected]
53 changes: 53 additions & 0 deletions packages/emotion/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# emotion

The official plugin for emotion css-in-js library.

## Configuration

The plugin uses the same config as described in [Next emotion documentation](https://nextjs.org/docs/advanced-features/compiler#emotion).

```js
{
jsc: {
...
experimental: {
plugins: [ ['@swc/plugin-emotion', {
// default is true. It will be disabled when build type is production.
sourceMap?: boolean,
// default is 'dev-only'.
autoLabel?: 'never' | 'dev-only' | 'always',
// default is '[local]'.
// Allowed values: `[local]` `[filename]` and `[dirname]`
// This option only works when autoLabel is set to 'dev-only' or 'always'.
// It allows you to define the format of the resulting label.
// The format is defined via string where variable parts are enclosed in square brackets [].
// For example labelFormat: "my-classname--[local]", where [local] will be replaced with the name of the variable the result is assigned to.
labelFormat?: string,
}] ]
}
}
```
## Credit
Source code for plugin itself (not transforms) are copied from https://github.com/IvanRodriCalleja/emotion-swc-plugin
# @swc/plugin-emotion
## 2.5.114
### Patch Changes
- 4ef0b7f: Add changelog to the readme
## 2.5.113
### Patch Changes
- 4e72680: [email protected]
## 2.5.112
### Patch Changes
- 16bb4d8: [email protected]
21 changes: 21 additions & 0 deletions packages/jest/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# @swc/plugin-jest

# @swc/plugin-jest

## 1.5.114

### Patch Changes

- 4ef0b7f: Add changelog to the readme

## 1.5.113

### Patch Changes

- 4e72680: [email protected]

## 1.5.112

### Patch Changes

- 16bb4d8: [email protected]
27 changes: 27 additions & 0 deletions packages/loadable-components/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# loadable-components

## Config

```json
["loadable-components", {}]
```

# @swc/plugin-loadable-components

## 0.3.114

### Patch Changes

- 4ef0b7f: Add changelog to the readme

## 0.3.113

### Patch Changes

- 4e72680: [email protected]

## 0.3.112

### Patch Changes

- 16bb4d8: [email protected]
21 changes: 21 additions & 0 deletions packages/noop/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# @swc/plugin-noop

# @swc/plugin-noop

## 1.5.112

### Patch Changes

- 4ef0b7f: Add changelog to the readme

## 1.5.111

### Patch Changes

- 4e72680: [email protected]

## 1.5.110

### Patch Changes

- 16bb4d8: [email protected]
42 changes: 42 additions & 0 deletions packages/react-remove-properties/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# react-remove-properties

See https://nextjs.org/docs/architecture/nextjs-compiler#remove-react-properties for more information.

## Config

```json
["react-remove-properties"]
```

or

```json
[
"react-remove-properties",
{
// The regexes defined here are processed in Rust so the syntax is different from
// JavaScript `RegExp`s. See https://docs.rs/regex.
"properties": ["^data-custom$"]
}
]
```

# @swc/plugin-react-remove-properties

## 1.5.114

### Patch Changes

- 4ef0b7f: Add changelog to the readme

## 1.5.113

### Patch Changes

- 4e72680: [email protected]

## 1.5.112

### Patch Changes

- 16bb4d8: [email protected]
Loading

0 comments on commit f044520

Please sign in to comment.