UNPKG

@open-editor/rollup

Version:

🚀 A rollup plugin for fast find source code.

2 lines (1 loc) • 1.22 kB
"use strict";var node_path=require("node:path"),node=require("@open-editor/shared/node"),shared=require("@open-editor/shared"),server=require("@open-editor/server"),_documentCurrentScript=typeof document<"u"?document.currentScript:null;const portPromiseCache={};function OpenEditorPlugin(options={}){if(!node.isDev())return{name:"OpenEditorPlugin"};const{onOpenEditor}=options,rootDir=shared.normalizePath(options.rootDir?node_path.resolve(options.rootDir):process.cwd());let serverPort;return{name:"OpenEditorPlugin",async buildStart(){const cacheKey=`${rootDir}${onOpenEditor}`;serverPort=await(portPromiseCache[cacheKey]||(portPromiseCache[cacheKey]=server.setupServer({...options.server??{},rootDir,onOpenEditor})))},resolveId(id){if(id===shared.CLIENT_MODULE_ID)return node.resolvePath(shared.CLIENT_MODULE_ID,typeof document>"u"?require("url").pathToFileURL(__filename).href:_documentCurrentScript&&_documentCurrentScript.tagName.toUpperCase()==="SCRIPT"&&_documentCurrentScript.src||new URL("index.js",document.baseURI).href).replace(/\.js$/,".mjs")},transform(code,id){if(shared.ENTRY_MATCH_RE.test(id))return shared.injectClient(code,{...options,rootDir,port:serverPort})}}}module.exports=OpenEditorPlugin;