lunet-transpiler 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -0
- package/dist/index.cjs +1 -0
- package/dist/index.d.cts +6 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.js +1 -0
- package/package.json +36 -0
package/README.md
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
# lunet-transpiler
|
|
2
|
+
より柔軟なWebフロントエンドライブラリ lunetのトランスパイラー。
|
|
3
|
+
|
|
4
|
+
## インストール
|
|
5
|
+
```bash
|
|
6
|
+
$ npm install lunet-transpiler
|
|
7
|
+
# or
|
|
8
|
+
$ bun i lunet-transpiler
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 対応状況
|
|
12
|
+
RollupとBunのみ対応しています。
|
|
13
|
+
その他は、エクスポートされている`transpile`関数を用いて行ってください。
|
|
14
|
+
|
|
15
|
+
## 使い方
|
|
16
|
+
### 1. Bun
|
|
17
|
+
```js
|
|
18
|
+
import { bun_lunet } from "lunet-transpiler";
|
|
19
|
+
Bun.plugin(bun_lunet());
|
|
20
|
+
|
|
21
|
+
...
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### 2. Rollup
|
|
25
|
+
```js
|
|
26
|
+
import { defineConfig } from "rollup";
|
|
27
|
+
import { rollup_lunet } from "lunet-transpiler";
|
|
28
|
+
|
|
29
|
+
export default defineConfig({
|
|
30
|
+
plugins: [rollup_lunet(), ...],
|
|
31
|
+
...
|
|
32
|
+
});
|
|
33
|
+
```
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var F=require("node:module");var j=Object.create;var{getPrototypeOf:h,defineProperty:p,getOwnPropertyNames:x,getOwnPropertyDescriptor:v}=Object,f=Object.prototype.hasOwnProperty;var l=(e,t,i)=>{i=e!=null?j(h(e)):{};let n=t||!e||!e.__esModule?p(i,"default",{value:e,enumerable:!0}):i;for(let o of x(e))if(!f.call(n,o))p(n,o,{get:()=>e[o],enumerable:!0});return n},d=new WeakMap,L=(e)=>{var t=d.get(e),i;if(t)return t;if(t=p({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")x(e).map((n)=>!f.call(t,n)&&p(t,n,{get:()=>e[n],enumerable:!(i=v(e,n))||i.enumerable}));return d.set(e,t),t};var P=(e,t)=>{for(var i in t)p(e,i,{get:t[i],enumerable:!0,configurable:!0,set:(n)=>t[i]=()=>n})};var I={};P(I,{transpile:()=>a,rollup_lunet:()=>w,bun_lunet:()=>N});module.exports=L(I);var X=require("fs/promises"),c=require("fs");var g=require("@babel/parser"),y=l(require("@babel/traverse")),b=l(require("@babel/generator")),r=l(require("@babel/types")),m=(e)=>r.objectExpression(e.map((t)=>t.type==="JSXAttribute"?r.objectProperty(r.identifier(t.name.type==="JSXIdentifier"?t.name.name:t.name.name.name),t.value?t.value.type==="StringLiteral"?t.value:s(t.value,!0):r.booleanLiteral(!0)):r.spreadElement(t.argument))),u=(e)=>e.type==="JSXIdentifier"?r.identifier(e.name):r.memberExpression(u(e.object),u(e.property)),E=(e)=>!(e.type==="StringLiteral"&&!e.value),S=(e,t)=>{if(e.type==="JSXSpreadChild")return r.spreadElement(e.expression);else return s(e,t)},s=(e,t)=>{switch(e.type){case"JSXText":return r.stringLiteral(t?e.value:e.value.trim());case"JSXFragment":return r.arrayExpression([r.nullLiteral(),r.objectExpression([]),...e.children.map((n)=>S(n)).filter(E)]);case"JSXElement":let i=e.openingElement.name;if(i.type==="JSXIdentifier"&&/^[a-z]/.test(i.name))return r.arrayExpression([r.stringLiteral(i.name),r.objectExpression(e.openingElement.attributes.map((n)=>{if(n.type==="JSXAttribute"){if(n.name.type==="JSXNamespacedName")console.warn("Warning: JSXNamespacedName is not supported");let{name:o}=n.name;return r.objectProperty(r.identifier(typeof o==="string"?o:o.name),n.value?n.value.type==="StringLiteral"?n.value:s(n.value):r.booleanLiteral(!0))}else return r.spreadElement(n.argument)})),...e.children.map((n)=>S(n)).filter(E)]);else switch(i.type){case"JSXIdentifier":return r.callExpression(r.identifier(i.name),[m(e.openingElement.attributes)]);case"JSXMemberExpression":return r.callExpression(u(i),[m(e.openingElement.attributes)]);case"JSXNamespacedName":return console.warn("Warning: JSXNamespacedName is not supported"),r.callExpression(r.identifier(i.name.name),[m(e.openingElement.attributes)])}case"JSXExpressionContainer":switch(e.expression.type){case"JSXEmptyExpression":return r.booleanLiteral(!0);case"JSXElement":case"JSXFragment":return s(e.expression);default:return e.expression}case"JSXSpreadChild":return r.arrayExpression([r.nullLiteral(),r.objectExpression([]),r.spreadElement(e.expression)])}},a=(e,t)=>{let i=g.parse(e,{sourceType:"module",plugins:t?["typescript","jsx"]:["jsx"]});return y.default(i,{JSXElement(n){n.replaceWith(s(n.node))},JSXFragment(n){n.replaceWith(s(n.node))}}),b.default(i).code};var J=process.isBun?(e)=>Bun.file(e).text():(e)=>X.readFile(e).then((t)=>t.toString()),N=()=>({name:"bun-lunet",setup(e){e.onLoad({filter:/\.jsx$/},async(t)=>{let i=await J(t.path);return{contents:a(i,!1),loader:"jsx"}}),e.onLoad({filter:/\.tsx$/},async(t)=>{let i=await J(t.path);return{contents:a(i,!0),loader:"tsx"}})}}),w=()=>({name:"rollup-lunet",load(e){if(e.endsWith(".jsx")){let t=c.readFileSync(e).toString();return{code:a(t,!1)}}else if(e.endsWith(".tsx")){let t=c.readFileSync(e).toString();return{code:a(t,!0)}}}});
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const transpile: (code: string, isTypeScript: boolean) => string;
|
|
2
|
+
import { BunPlugin } from "bun";
|
|
3
|
+
import { Plugin as RollupPlugin } from "rollup";
|
|
4
|
+
declare const bun_lunet: () => BunPlugin;
|
|
5
|
+
declare const rollup_lunet: () => RollupPlugin;
|
|
6
|
+
export { transpile, rollup_lunet, bun_lunet };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const transpile: (code: string, isTypeScript: boolean) => string;
|
|
2
|
+
import { BunPlugin } from "bun";
|
|
3
|
+
import { Plugin as RollupPlugin } from "rollup";
|
|
4
|
+
declare const bun_lunet: () => BunPlugin;
|
|
5
|
+
declare const rollup_lunet: () => RollupPlugin;
|
|
6
|
+
export { transpile, rollup_lunet, bun_lunet };
|
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{readFile as S}from"fs/promises";import{readFileSync as c}from"fs";import{parse as x}from"@babel/parser";import f from"@babel/traverse";import E from"@babel/generator";import*as t from"@babel/types";var p=(e)=>t.objectExpression(e.map((r)=>r.type==="JSXAttribute"?t.objectProperty(t.identifier(r.name.type==="JSXIdentifier"?r.name.name:r.name.name.name),r.value?r.value.type==="StringLiteral"?r.value:o(r.value,!0):t.booleanLiteral(!0)):t.spreadElement(r.argument))),l=(e)=>e.type==="JSXIdentifier"?t.identifier(e.name):t.memberExpression(l(e.object),l(e.property)),m=(e)=>!(e.type==="StringLiteral"&&!e.value),u=(e,r)=>{if(e.type==="JSXSpreadChild")return t.spreadElement(e.expression);else return o(e,r)},o=(e,r)=>{switch(e.type){case"JSXText":return t.stringLiteral(r?e.value:e.value.trim());case"JSXFragment":return t.arrayExpression([t.nullLiteral(),t.objectExpression([]),...e.children.map((n)=>u(n)).filter(m)]);case"JSXElement":let i=e.openingElement.name;if(i.type==="JSXIdentifier"&&/^[a-z]/.test(i.name))return t.arrayExpression([t.stringLiteral(i.name),t.objectExpression(e.openingElement.attributes.map((n)=>{if(n.type==="JSXAttribute"){if(n.name.type==="JSXNamespacedName")console.warn("Warning: JSXNamespacedName is not supported");let{name:a}=n.name;return t.objectProperty(t.identifier(typeof a==="string"?a:a.name),n.value?n.value.type==="StringLiteral"?n.value:o(n.value):t.booleanLiteral(!0))}else return t.spreadElement(n.argument)})),...e.children.map((n)=>u(n)).filter(m)]);else switch(i.type){case"JSXIdentifier":return t.callExpression(t.identifier(i.name),[p(e.openingElement.attributes)]);case"JSXMemberExpression":return t.callExpression(l(i),[p(e.openingElement.attributes)]);case"JSXNamespacedName":return console.warn("Warning: JSXNamespacedName is not supported"),t.callExpression(t.identifier(i.name.name),[p(e.openingElement.attributes)])}case"JSXExpressionContainer":switch(e.expression.type){case"JSXEmptyExpression":return t.booleanLiteral(!0);case"JSXElement":case"JSXFragment":return o(e.expression);default:return e.expression}case"JSXSpreadChild":return t.arrayExpression([t.nullLiteral(),t.objectExpression([]),t.spreadElement(e.expression)])}},s=(e,r)=>{let i=x(e,{sourceType:"module",plugins:r?["typescript","jsx"]:["jsx"]});return f(i,{JSXElement(n){n.replaceWith(o(n.node))},JSXFragment(n){n.replaceWith(o(n.node))}}),E(i).code};var d=process.isBun?(e)=>Bun.file(e).text():(e)=>S(e).then((r)=>r.toString()),v=()=>({name:"bun-lunet",setup(e){e.onLoad({filter:/\.jsx$/},async(r)=>{let i=await d(r.path);return{contents:s(i,!1),loader:"jsx"}}),e.onLoad({filter:/\.tsx$/},async(r)=>{let i=await d(r.path);return{contents:s(i,!0),loader:"tsx"}})}}),L=()=>({name:"rollup-lunet",load(e){if(e.endsWith(".jsx")){let r=c(e).toString();return{code:s(r,!1)}}else if(e.endsWith(".tsx")){let r=c(e).toString();return{code:s(r,!0)}}}});export{s as transpile,L as rollup_lunet,v as bun_lunet};
|
package/package.json
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "lunet-transpiler",
|
|
3
|
+
"version": "0.0.0",
|
|
4
|
+
"author": "TNTSuperMan",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"description": "より柔軟なWebフロントエンドライブラリ lunetのトランスパイラー。",
|
|
7
|
+
"module": "dist/index.js",
|
|
8
|
+
"type": "module",
|
|
9
|
+
"repository": {
|
|
10
|
+
"type": "git",
|
|
11
|
+
"url": "https://github.com/TNTSuperMan/lunet.git"
|
|
12
|
+
},
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"types": "./dist/index.d.ts",
|
|
16
|
+
"default": "./dist/index.js",
|
|
17
|
+
"browser": "./dist/index.js",
|
|
18
|
+
"import": "./dist/index.js"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"@babel/generator": "^7.28.3",
|
|
23
|
+
"@babel/parser": "^7.28.3",
|
|
24
|
+
"@babel/traverse": "^7.28.3",
|
|
25
|
+
"@babel/types": "^7.28.2"
|
|
26
|
+
},
|
|
27
|
+
"bunup": {
|
|
28
|
+
"name": "lunet-transpiler",
|
|
29
|
+
"entry": ["src/index.ts"],
|
|
30
|
+
"external": ["@babel/generator", "@babel/parser", "@babel/traverse", "@babel/types"],
|
|
31
|
+
"format": ["esm", "cjs"],
|
|
32
|
+
"target": "node",
|
|
33
|
+
"minify": true,
|
|
34
|
+
"outDir": "dist"
|
|
35
|
+
}
|
|
36
|
+
}
|