Socket
Socket
Sign inDemoInstall

rollup-swc-preserve-directives

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

rollup-swc-preserve-directives - npm Package Compare versions

Comparing version 0.1.0 to 0.2.0

README.md

52

dist/cjs/index.js

@@ -13,3 +13,3 @@ Object.defineProperty(exports, '__esModule', { value: true });

shebang: null,
directives: new Set()
directives: {}
};

@@ -31,3 +31,7 @@ return {

};
const { body, interpreter } = await core.parse(code, parseOptions);
let magicString$1 = null;
/**
* @swc/core's node span doesn't start with 0
* https://github.com/swc-project/swc/issues/1366
*/ const { body, interpreter, span: { start: offset } } = await core.parse(code, parseOptions);
if (interpreter) {

@@ -41,3 +45,7 @@ meta.shebang = `#!${interpreter}`;

if (node.expression.type === 'StringLiteral' && directiveRegex.test(node.expression.value)) {
meta.directives.add(node.expression.value);
var _meta_directives, _id;
(_meta_directives = meta.directives)[_id = id] || (_meta_directives[_id] = new Set());
meta.directives[id].add(node.expression.value);
magicString$1 || (magicString$1 = new magicString.MagicString(code));
magicString$1.remove(node.span.start - offset, node.span.end - offset);
}

@@ -49,20 +57,32 @@ } else {

return {
code,
map: null,
meta
code: magicString$1 ? magicString$1.toString() : code,
map: magicString$1 ? magicString$1.generateMap({
hires: true
}).toMap() : null
};
},
renderChunk (code, _chunk, { sourcemap }) {
const { shebang, directives } = meta;
if (!directives.size && !shebang) return null;
const s = new magicString.MagicString(code);
if (directives.size) {
s.prepend(`${Array.from(directives).map((directive)=>`'${directive}';`).join('\n')}\n`);
renderChunk (code, chunk, { sourcemap }) {
const outputDirectives = chunk.moduleIds.map((id)=>{
if (meta.directives[id]) {
return meta.directives[id];
}
return null;
}).reduce((acc, directives)=>{
if (directives) {
directives.forEach((directive)=>acc.add(directive));
}
return acc;
}, new Set());
let magicString$1 = null;
if (outputDirectives.size) {
magicString$1 || (magicString$1 = new magicString.MagicString(code));
magicString$1.prepend(`${Array.from(outputDirectives).map((directive)=>`'${directive}';`).join('\n')}\n`);
}
if (shebang) {
s.prepend(`${shebang}\n`);
if (meta.shebang) {
magicString$1 || (magicString$1 = new magicString.MagicString(code));
magicString$1.prepend(`${meta.shebang}\n`);
}
return {
code: s.toString(),
map: sourcemap ? s.generateMap({
code: magicString$1 ? magicString$1.toString() : code,
map: sourcemap && magicString$1 ? magicString$1.generateMap({
hires: true

@@ -69,0 +89,0 @@ }).toMap() : null

@@ -11,3 +11,3 @@ import { extname } from 'path';

shebang: null,
directives: new Set()
directives: {}
};

@@ -29,3 +29,7 @@ return {

};
const { body, interpreter } = await parse(code, parseOptions);
let magicString = null;
/**
* @swc/core's node span doesn't start with 0
* https://github.com/swc-project/swc/issues/1366
*/ const { body, interpreter, span: { start: offset } } = await parse(code, parseOptions);
if (interpreter) {

@@ -39,3 +43,7 @@ meta.shebang = `#!${interpreter}`;

if (node.expression.type === 'StringLiteral' && directiveRegex.test(node.expression.value)) {
meta.directives.add(node.expression.value);
var _meta_directives, _id;
(_meta_directives = meta.directives)[_id = id] || (_meta_directives[_id] = new Set());
meta.directives[id].add(node.expression.value);
magicString || (magicString = new MagicString(code));
magicString.remove(node.span.start - offset, node.span.end - offset);
}

@@ -47,20 +55,32 @@ } else {

return {
code,
map: null,
meta
code: magicString ? magicString.toString() : code,
map: magicString ? magicString.generateMap({
hires: true
}).toMap() : null
};
},
renderChunk (code, _chunk, { sourcemap }) {
const { shebang, directives } = meta;
if (!directives.size && !shebang) return null;
const s = new MagicString(code);
if (directives.size) {
s.prepend(`${Array.from(directives).map((directive)=>`'${directive}';`).join('\n')}\n`);
renderChunk (code, chunk, { sourcemap }) {
const outputDirectives = chunk.moduleIds.map((id)=>{
if (meta.directives[id]) {
return meta.directives[id];
}
return null;
}).reduce((acc, directives)=>{
if (directives) {
directives.forEach((directive)=>acc.add(directive));
}
return acc;
}, new Set());
let magicString = null;
if (outputDirectives.size) {
magicString || (magicString = new MagicString(code));
magicString.prepend(`${Array.from(outputDirectives).map((directive)=>`'${directive}';`).join('\n')}\n`);
}
if (shebang) {
s.prepend(`${shebang}\n`);
if (meta.shebang) {
magicString || (magicString = new MagicString(code));
magicString.prepend(`${meta.shebang}\n`);
}
return {
code: s.toString(),
map: sourcemap ? s.generateMap({
code: magicString ? magicString.toString() : code,
map: sourcemap && magicString ? magicString.generateMap({
hires: true

@@ -67,0 +87,0 @@ }).toMap() : null

{
"name": "rollup-swc-preserve-directives",
"version": "0.1.0",
"version": "0.2.0",
"description": "Rollup plugin to preserve directives with SWC",

@@ -19,5 +19,13 @@ "types": "./dist/index.d.ts",

"build": "bunchee",
"prepublishOnly": "rm -rf dist && pnpm run build"
"prepublishOnly": "rm -rf dist && pnpm run build",
"test": "jest --env node",
"test:update": "jest --env node --updateSnapshot"
},
"keywords": [],
"keywords": [
"rollup",
"plugin",
"swc",
"preserve",
"directives"
],
"author": "huozhi",

@@ -35,7 +43,12 @@ "license": "MIT",

"@swc/helpers": "^0.5.1",
"@swc/jest": "^0.2.26",
"@types/jest": "^29.5.2",
"@types/node": "^20.4.1",
"bunchee": "^3.5.1",
"jest": "^29.6.1",
"rollup": "^3.26.2",
"rollup-plugin-swc3": "^0.9.0",
"typescript": "^5.1.6"
}
},
"packageManager": "pnpm@7.24.3"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc