Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

babel-plugin-transform-replace-export-default

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

babel-plugin-transform-replace-export-default - npm Package Compare versions

Comparing version
1.0.2
to
1.0.3
+5
lib/index.d.ts
import { PluginObj, PluginPass } from '@babel/core';
export declare type Options = {
removeExportDefault?: boolean;
};
export default function defaultExportReplace(): PluginObj<PluginPass>;
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
function defaultExportReplace() {
return {
name: 'transform-replace-export-default',
visitor: {
ExportDefaultDeclaration(path, state) {
const declaration = path.node.declaration;
const { removeExportDefault } = state.opts;
if (removeExportDefault) {
declaration.type === 'Identifier' ? path.remove() : path.replaceWith(declaration);
return;
}
if (declaration.type === 'ClassDeclaration' || declaration.type === 'FunctionDeclaration') {
// @ts-ignore
path.node.type = 'ReturnStatement';
// @ts-ignore
path.node.argument = declaration;
path.replaceWith(path.node);
}
else if (declaration.type === 'Identifier') {
// declaration.name = `return ${declaration.name}`;
// @ts-ignore
path.node.type = 'ReturnStatement';
// @ts-ignore
path.node.argument = declaration;
path.replaceWith(path.node);
}
},
},
};
}
exports.default = defaultExportReplace;
//# sourceMappingURL=index.js.map
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AAMA,SAAwB,oBAAoB;IAC1C,OAAO;QACL,IAAI,EAAE,kCAAkC;QACxC,OAAO,EAAE;YACP,wBAAwB,CAAC,IAAI,EAAE,KAAK;gBAClC,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;gBAC1C,MAAM,EAAE,mBAAmB,EAAE,GAAG,KAAK,CAAC,IAAe,CAAC;gBACtD,IAAI,mBAAmB,EAAE;oBACvB,WAAW,CAAC,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;oBAClF,OAAO;iBACR;gBAED,IAAI,WAAW,CAAC,IAAI,KAAK,kBAAkB,IAAI,WAAW,CAAC,IAAI,KAAK,qBAAqB,EAAE;oBACzF,aAAa;oBACb,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;oBACnC,aAAa;oBACb,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;oBACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7B;qBAAM,IAAI,WAAW,CAAC,IAAI,KAAK,YAAY,EAAE;oBAC5C,mDAAmD;oBACnD,aAAa;oBACb,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;oBACnC,aAAa;oBACb,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC;oBACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC7B;YACH,CAAC;SACF;KACF,CAAC;AACJ,CAAC;AA7BD,uCA6BC"}
+5
-1
{
"name": "babel-plugin-transform-replace-export-default",
"version": "1.0.2",
"version": "1.0.3",
"description": "Replace `export default` with `return`, or just remove `export default`.",

@@ -20,2 +20,6 @@ "homepage": "https://kktjs.github.io/babel-plugin-transform-replace-export-default",

},
"files": [
"lib",
"src"
],
"keywords": [

@@ -22,0 +26,0 @@ "babel",

-82
name: CI
on:
push:
branches:
- main
jobs:
Build_Deploy:
runs-on: ubuntu-18.04
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v2
with:
node-version: 14
- run: npm install
- run: npm run build
- run: npm run doc
- run: npm run coverage
- name: Create Coverage Badges
uses: jaywcjlove/coverage-badges-cli@main
- run: cp -rp coverage dist
- name: Generate Contributors Images
uses: jaywcjlove/github-action-contributors@main
with:
filter-author: (renovate\[bot\]|renovate-bot|dependabot\[bot\])
output: dist/CONTRIBUTORS.svg
avatarSize: 42
- name: Create Tag
id: create_tag
uses: jaywcjlove/create-tag-action@v1.3.6
with:
package-path: ./package.json
- name: get tag version
id: tag_version
uses: jaywcjlove/changelog-generator@v1.5.3
- name: Deploy Website
uses: peaceiris/actions-gh-pages@v3
with:
user_name: 'github-actions[bot]'
user_email: 'github-actions[bot]@users.noreply.github.com'
commit_message: ${{steps.tag_version.outputs.tag}} ${{ github.event.head_commit.message }}
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./dist
- name: Generate Changelog
id: changelog
uses: jaywcjlove/changelog-generator@v1.5.3
with:
token: ${{ secrets.GITHUB_TOKEN }}
filter-author: (jaywcjlove|小弟调调™|dependabot\[bot\]|Renovate Bot)
filter: (^[\s]+?[R|r]elease)|(^[R|r]elease)
- name: Create Release
uses: ncipollo/release-action@v1
if: steps.create_tag.outputs.successful
with:
token: ${{ secrets.GITHUB_TOKEN }}
name: ${{ steps.create_tag.outputs.version }}
tag: ${{ steps.create_tag.outputs.version }}
body: |
[![](https://img.shields.io/badge/Open%20in-unpkg-blue)](https://kktjs.github.io/npm-unpkg/#/pkg/babel-plugin-transform-replace-export-default@${{steps.changelog.outputs.version}}/file/README.md) [![npm version](https://img.shields.io/npm/v/babel-plugin-transform-replace-export-default.svg)](https://www.npmjs.com/package/babel-plugin-transform-replace-export-default)
Documentation ${{ steps.changelog.outputs.tag }}: https://raw.githack.com/kktjs/babel-plugin-transform-replace-export-default/${{ steps.changelog.outputs.gh-pages-short-hash }}/index.html
Comparing Changes: ${{ steps.changelog.outputs.compareurl }}
```bash
npm i babel-plugin-transform-replace-export-default@${{steps.changelog.outputs.version}}
```
${{ steps.changelog.outputs.changelog }}
- uses: JS-DevTools/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
package: ./package.json
{
"extends": ["config:base"],
"packageRules": [
{
"matchPackagePatterns": ["*"],
"rangeStrategy": "replace"
}
]
}
import { transformSync } from '@babel/core';
import plugin from '../src';
const defaultBabelOptions = {
presets: [],
plugins: [plugin],
};
test(`Case const`, () => {
const babelOptions = { ...defaultBabelOptions };
const source = `const demo = 0;\n export default demo;`;
const { code } = transformSync(source, babelOptions);
const expected = `const demo = 0;\nreturn demo;`;
expect(code).toBe(expected);
});
test(`Case function`, () => {
const babelOptions = { ...defaultBabelOptions };
const source = `function demo() {};export default demo;`;
const { code } = transformSync(source, babelOptions);
const expected = `function demo() {}\n\n;\nreturn demo;`;
expect(code).toBe(expected);
});
test(`Case class`, () => {
const babelOptions = { ...defaultBabelOptions };
const source = `class demo { constructor() { } };export default demo;`;
const { code } = transformSync(source, babelOptions);
const expected = `class demo {\n constructor() {}\n\n}\n\n;\nreturn demo;`;
expect(code).toBe(expected);
});
test(`Case 02`, () => {
const babelOptions = { ...defaultBabelOptions };
const source = `export default function demo() {}`;
const { code } = transformSync(source, babelOptions);
const expected = `return function demo() {};`;
expect(code).toBe(expected);
});
test(`Case 03`, () => {
const babelOptions = { ...defaultBabelOptions };
const source = `export default class demo { }`;
const { code } = transformSync(source, babelOptions);
const expected = `return class demo {};`;
expect(code).toBe(expected);
});
test(`Case options remove export default 01`, () => {
const babelOptions = {
...defaultBabelOptions, plugins: [[plugin, {
removeExportDefault: true,
}]]
};
const source = `export default class demo { }`;
const { code } = transformSync(source, babelOptions);
const expected = `class demo {}`;
expect(code).toBe(expected);
});
test(`Case options remove export default 02`, () => {
const babelOptions = {
...defaultBabelOptions, plugins: [
[plugin, { removeExportDefault: true }]
]
};
const source = `export default function demo() {}`;
const { code } = transformSync(source, babelOptions);
const expected = `function demo() {}`;
expect(code).toBe(expected);
});
test(`Case options remove export default 03`, () => {
const babelOptions = {
...defaultBabelOptions, plugins: [
[plugin, { removeExportDefault: true }]
]
};
const source = `class demo {}\nexport default demo;`;
const { code } = transformSync(source, babelOptions);
const expected = `class demo {}`;
expect(code).toBe(expected);
});
test(`Case options remove export default 04`, () => {
const babelOptions = {
...defaultBabelOptions, plugins: [
[plugin, { removeExportDefault: true }]
]
};
const source = `function demo() {}\nexport default demo;`;
const { code } = transformSync(source, babelOptions);
const expected = `function demo() {}`;
expect(code).toBe(expected);
});
test(`Case options remove export default 05`, () => {
const babelOptions = {
...defaultBabelOptions, plugins: [
[plugin, { removeExportDefault: true }]
]
};
const source = `const demo = 0;\n export default demo;`;
const { code } = transformSync(source, babelOptions);
const expected = `const demo = 0;`;
expect(code).toBe(expected);
});
{
"$schema": "http://json.schemastore.org/tsconfig",
"compilerOptions": {
"module": "commonjs",
"esModuleInterop": true,
"declaration": true,
"target": "es2017",
"noImplicitAny": true,
"resolveJsonModule": true,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"sourceMap": true,
"strict": false,
"skipLibCheck": true,
"outDir": "lib",
"baseUrl": "."
},
"include": ["src/**/*"]
}