vite-plugin-mock-dev-server 1.1.7 → 1.1.9
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/dist/index.cjs +14 -14
- package/dist/index.d.ts +1 -1
- package/dist/index.js +14 -14
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
"use strict";var
|
|
2
|
-
`,
|
|
3
|
-
`)}};function
|
|
4
|
-
|
|
1
|
+
"use strict";var rt=Object.create;var B=Object.defineProperty;var nt=Object.getOwnPropertyDescriptor;var st=Object.getOwnPropertyNames;var it=Object.getPrototypeOf,ct=Object.prototype.hasOwnProperty;var at=(e,o)=>{for(var t in o)B(e,t,{get:o[t],enumerable:!0})},Me=(e,o,t,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let n of st(o))!ct.call(e,n)&&n!==t&&B(e,n,{get:()=>o[n],enumerable:!(r=nt(o,n))||r.enumerable});return e};var f=(e,o,t)=>(t=e!=null?rt(it(e)):{},Me(o||!e||!e.__esModule?B(t,"default",{value:e,enumerable:!0}):t,e)),pt=e=>Me(B({},"__esModule",{value:!0}),e);var Et={};at(Et,{baseMiddleware:()=>pe,createDefineMock:()=>Wt,default:()=>Dt,defineMock:()=>Ct,mockDevServerPlugin:()=>ye,mockWebSocket:()=>ke,transformMockData:()=>ue});module.exports=pt(Et);var ut=()=>typeof document>"u"?new URL("file:"+__filename).href:document.currentScript&&document.currentScript.src||new URL("main.js",document.baseURI).href,b=ut();var Ie=f(require("fs"),1),q=f(require("fs/promises"),1),$=f(require("path"),1),Le=require("esbuild"),_e=f(require("fast-glob"),1),$e=f(require("is-core-module"),1),Z=require("vite");var xe="vite-plugin-mock-dev-server",we="1.1.9";var re=f(require("fs/promises"),1),Se=f(require("path"),1),Oe=f(require("json5"),1),J={name:"externalize-deps",setup(e){e.onResolve({filter:/.*/},({path:o})=>{if(o[0]!=="."&&!Se.default.isAbsolute(o))return{external:!0}})}},z={name:"json5-loader",setup(e){e.onLoad({filter:/\.json5$/},async({path:o})=>{let t=await re.default.readFile(o,"utf-8");return{contents:`export default ${JSON.stringify(Oe.default.parse(t))}`,loader:"js"}})}},G={name:"json-loader",setup(e){e.onLoad({filter:/\.json$/},async({path:o})=>({contents:`export default ${await re.default.readFile(o,"utf-8")}`,loader:"js"}))}},Q=e=>({name:"alias-plugin",setup(o){o.onResolve({filter:/.*/},async({path:t})=>{let r=e.find(({find:c})=>lt(c,t));if(!r)return null;let{find:n,replacement:s}=r;return{path:(await o.resolve(t.replace(n,s),{kind:"import-statement",resolveDir:s,namespace:"file"})).path,external:!1}})}});function lt(e,o){return e instanceof RegExp?e.test(o):o.length<e.length?!1:o===e?!0:o.startsWith(`${e}/`)}var X=f(require("fs"),1),K=f(require("path"),1),Pe=require("url"),je=f(require("debug"),1),Re=require("path-to-regexp"),ne=f(require("picocolors"),1),S=e=>Array.isArray(e),R=e=>typeof e=="function",mt=e=>Object.prototype.toString.call(e)==="[object Object]",Ce=e=>mt(e)&&Object.keys(e).length===0,dt=e=>e!==null&&typeof e=="object"&&typeof e.pipe=="function",We=e=>dt(e)&&e.readable!==!1&&typeof e._read=="function"&&typeof e._readableState=="object";function De(e){return new Promise(o=>setTimeout(o,e))}function Ee(e){return K.default.dirname((0,Pe.fileURLToPath)(e))}var C=(0,je.default)("vite:plugin-mock-dev-server"),O=e=>S(e)?e:e==null?[]:[e],W={info(...e){console.info(ne.default.cyan("mock-dev-server: "),...e)},error(...e){console.error(`
|
|
2
|
+
`,ne.default.cyan("mock-dev-server: "),...e,`
|
|
3
|
+
`)}};function U(e,o,t){for(let n of o){let s=K.default.join(e,n);if(X.default.existsSync(s)&&X.default.statSync(s).isFile()){let i=t!=null&&t.pathOnly?s:X.default.readFileSync(s,"utf-8");if(!(t!=null&&t.predicate)||t.predicate(i))return i}}let r=K.default.dirname(e);if(r!==e&&(!(t!=null&&t.rootDir)||r.startsWith(t==null?void 0:t.rootDir)))return U(r,o,t)}var V=(e={})=>{let o=[],t=[];return Object.keys(e).forEach(r=>{var s,i;let n=e[r];typeof n=="string"||!n.ws&&!((s=n.target)!=null&&s.toString().startsWith("ws:"))&&!((i=n.target)!=null&&i.toString().startsWith("wss:"))?o.push(r):t.push(r)}),{httpProxies:o,wsProxies:t}};function Y(e,o){return e[0]==="^"&&new RegExp(e).test(o)||o.startsWith(e)}function N(e,o){return((0,Re.match)(e,{decode:decodeURIComponent})(o)||{params:{}}).params||{}}async function Fe(e,o,t){let r=O(t.include),n=O(t.exclude),s={};if(o.define)for(let p in o.define){let l=o.define[p];s[p]=typeof l=="string"?l:JSON.stringify(l)}let{httpProxies:i}=V(o.server.proxy||{});i.push(...O(t.prefix));let c=O(t.wsPrefix),m={};try{let p=U(o.root,["package.json"]);p&&(m=JSON.parse(p))}catch{}let d=t.build.dist,M=await yt(process.cwd(),r,n),h=$.default.join(o.root,`mock-data-${Date.now()}.js`);await q.default.writeFile(h,M,"utf-8");let{code:H,deps:E}=await ht(h,s,o.resolve.alias),a=ft(E);await q.default.unlink(h);let u=[{filename:$.default.join(d,"mock-data.js"),source:H},{filename:$.default.join(d,"index.js"),source:gt(i,c,t.cookiesOptions,t.build.serverPort)},{filename:$.default.join(d,"package.json"),source:kt(m,a)}];try{if($.default.isAbsolute(d)){await q.default.rm(d,{recursive:!0}),Ie.default.mkdirSync(d,{recursive:!0});for(let{filename:p,source:l}of u)await q.default.writeFile(p,l,"utf-8")}else for(let{filename:p,source:l}of u)e.emitFile({type:"asset",fileName:p,source:l})}catch{}}function ft(e){let o=new Set,t=[xe,"connect","cors"];return Object.keys(e).forEach(r=>{e[r].imports.filter(s=>s.external).map(s=>s.path).forEach(s=>{!t.includes(s)&&!(0,$e.default)(s)&&o.add(s)})}),Array.from(o)}function kt(e,o){let{dependencies:t={},devDependencies:r={}}=e,n={...t,...r},s={name:"mock-server",type:"module",scripts:{start:"node index.js"},dependencies:{connect:"^3.7.0","vite-plugin-mock-dev-server":`^${we}`,cors:"^2.8.5"},pnpm:{peerDependencyRules:{ignoreMissing:["vite"]}}};return o.forEach(i=>{s.dependencies[i]=n[i]||"latest"}),JSON.stringify(s,null,2)}function gt(e,o,t={},r=8080){return`import { createServer } from 'node:http';
|
|
4
|
+
import connect from 'connect';
|
|
5
5
|
import corsMiddleware from 'cors';
|
|
6
6
|
import { baseMiddleware, mockWebSocket } from 'vite-plugin-mock-dev-server';
|
|
7
7
|
import mockData from './mock-data.js';
|
|
@@ -24,18 +24,18 @@ app.use(baseMiddleware({ mockData }, {
|
|
|
24
24
|
server.listen(${r});
|
|
25
25
|
|
|
26
26
|
console.log('listen: http://localhost:${r}');
|
|
27
|
-
`}async function
|
|
28
|
-
`,c+=`m${
|
|
27
|
+
`}async function yt(e,o,t){let r=await(0,_e.default)(o,{cwd:e}),n=(0,Z.createFilter)(o,t,{resolve:!1}),s=r.filter(n),i="",c="";return s.forEach((m,d)=>{let M=(0,Z.normalizePath)($.default.join(e,m));i+=`import * as m${d} from '${M}';
|
|
28
|
+
`,c+=`m${d}, `}),`import { transformMockData } from 'vite-plugin-mock-dev-server';
|
|
29
29
|
${i}
|
|
30
30
|
const exporters = [${c}];
|
|
31
31
|
const mockList = exporters.map((raw) => raw && raw.default
|
|
32
32
|
? raw.default
|
|
33
33
|
: Object.keys(raw || {}).map((key) => raw[key])
|
|
34
|
-
)
|
|
35
|
-
export default transformMockData(mockList);
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
`,
|
|
40
|
-
`,
|
|
41
|
-
`,
|
|
34
|
+
);
|
|
35
|
+
export default transformMockData(mockList);`}async function ht(e,o,t){var r;try{let n=await(0,Le.build)({entryPoints:[e],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,metafile:!0,format:"esm",define:o,plugins:[Q(t),J,z,G]});return{code:n.outputFiles[0].text,deps:((r=n.metafile)==null?void 0:r.inputs)||{}}}catch(n){console.error(n)}return{code:"",deps:{}}}var ie=require("buffer"),ce=require("url"),qe=f(require("cookies"),1),Ae=f(require("http-status"),1),A=f(require("mime-types"),1),ae=require("path-to-regexp"),P=f(require("picocolors"),1);var ee=f(require("co-body"),1),Te=f(require("formidable"),1);async function He(e,o){var n;let t=e.method.toUpperCase();if(["GET","DELETE","HEAD"].includes(t))return;let r=((n=e.headers["content-type"])==null?void 0:n.toLocaleLowerCase())||"";try{if(r.startsWith("application/json"))return await ee.default.json(e);if(r.startsWith("application/x-www-form-urlencoded"))return await ee.default.form(e);if(r.startsWith("text/plain"))return await ee.default.text(e);if(r.startsWith("multipart/form-data"))return await vt(e,o)}catch(s){console.error(s)}}async function vt(e,o){let t=(0,Te.default)(o);return new Promise((r,n)=>{t.parse(e,(s,i,c)=>{if(s){n(s);return}r({...i,...c})})})}function Ue(e,o){return F(e.headers,o.headers)&&F(e.body,o.body)&&F(e.params,o.params)&&F(e.query,o.query)&&F(e.refererQuery,o.refererQuery)}function F(e,o){if(!o)return!0;for(let t in o)if(o[t]!==e[t])return!1;return!0}function pe(e,{formidableOptions:o={},proxies:t,cookiesOptions:r}){return async function(n,s,i){let c=Date.now(),{query:m,pathname:d}=(0,ce.parse)(n.url,!0);if(!d||t.length===0||!t.some(v=>Y(v,n.url)))return i();let M=e.mockData,h=Object.keys(M).find(v=>(0,ae.pathToRegexp)(v).test(d));if(!h)return i();let{query:H}=(0,ce.parse)(n.headers.referer||"",!0),E=await He(n,o),a=new qe.default(n,s,r),u=a.get.bind(a),p=n.method.toUpperCase(),l=Mt(M[h],{pathname:d,method:p,request:{query:m,refererQuery:H,body:E,headers:n.headers,getCookie:u}});if(!l)return i();C("middleware: ",p,n.url);let k=n,g=s;k.body=E,k.query=m,k.refererQuery=H,k.params=N(l.url,d),k.getCookie=u,g.setCookie=a.set.bind(a);let{body:y,delay:w,type:j="json",response:I,status:L=200,statusText:_}=l;if(se(g,L,_),await bt(k,g,l),await xt(k,g,l),y){try{let v=R(y)?await y(k):y;await Ne(c,w),wt(g,v,j)}catch(v){W.error(`${P.default.red("[body error]")} ${n.url}
|
|
36
|
+
`,`file: ${P.default.cyan(l.__filepath__)}`,v),se(g,500),s.end("")}return}if(I){try{await Ne(c,w),await I(k,g,i)}catch(v){W.error(`${P.default.red("[response error]")} ${n.url}
|
|
37
|
+
`,`file: ${P.default.cyan(l.__filepath__)}`,v),se(g,500),s.end("")}return}s.end("")}}function Mt(e,{pathname:o,method:t,request:r}){return e.find(n=>{if(!o||!n||!n.url||n.ws===!0||!(n.method?S(n.method)?n.method:[n.method]:["GET","POST"]).includes(t))return!1;let i=(0,ae.pathToRegexp)(n.url).test(o);if(i&&n.validator){let c=N(n.url,o);if(R(n.validator))return n.validator({params:c,...r});try{return Ue({params:c,...r},n.validator)}catch(m){return W.error(`${P.default.red("[validator error]")} ${o}
|
|
38
|
+
`,`file: ${P.default.cyan(n.__filepath__)}`,m),!1}}return i})}function se(e,o=200,t){e.statusCode=o,e.statusMessage=t||St(o)}async function bt(e,o,{headers:t,type:r="json"}){let n=A.contentType(r)||A.contentType(A.lookup(r)||"");if(n&&o.setHeader("Content-Type",n),o.setHeader("Cache-Control","no-cache,max-age=0"),o.setHeader("X-Mock","generate by vite:plugin-mock-dev-server"),!!t)try{let s=R(t)?await t(e):t;Object.keys(s).forEach(i=>{o.setHeader(i,s[i])})}catch(s){W.error(`${P.default.red("[headers error]")} ${e.url}
|
|
39
|
+
`,s)}}async function xt(e,o,{cookies:t}){if(t)try{let r=R(t)?await t(e):t;Object.keys(r).forEach(n=>{let s=r[n];if(S(s)){let[i,c]=s;o.setCookie(n,i,c)}else o.setCookie(n,s)})}catch(r){W.error(`${P.default.red("[cookies error]")} ${e.url}
|
|
40
|
+
`,r)}}function wt(e,o,t){if(We(o))o.pipe(e);else if(ie.Buffer.isBuffer(o))e.end(t==="text"||t==="json"?o.toString("utf-8"):o);else{let r=typeof o=="string"?o:JSON.stringify(o);e.end(t==="buffer"?ie.Buffer.from(r):r)}}async function Ne(e,o){if(!o||o<=0)return;let t=Date.now()-e,r=o-t;r>0&&await De(r)}function St(e){return Ae.default[e]||"Unknown"}var ze=f(require("events"),1),te=f(require("fs"),1),Ge=require("module"),le=f(require("path"),1),Qe=require("url"),me=f(require("chokidar"),1),Xe=require("esbuild"),Ke=f(require("fast-glob"),1),D=require("vite");var Be=require("url"),Je=f(require("lodash.sortby"),1);function ue(e){let o=[];for(let[,r]of e.entries())r&&(S(r)?o.push(...r):o.push(r));let t={};return o.filter(r=>(r.enabled||typeof r.enabled>"u")&&r.url).forEach(r=>{let{pathname:n,query:s}=(0,Be.parse)(r.url,!0),i=t[n]??(t[n]=[]),c={...r,url:n};if(c.ws!==!0){let m=c.validator;Ce(s)||(R(m)?c.validator=function(d){return F(d.query,s)&&m(d)}:m?(c.validator={...m},c.validator.query=c.validator.query?{...s,...c.validator.query}:s):c.validator={query:s})}i.push(c)}),Object.keys(t).forEach(r=>{t[r]=(0,Je.default)(t[r],n=>{if(n.ws===!0)return 0;let{validator:s}=n;return s?R(s)?0:1/Object.keys(s).reduce((c,m)=>c+Ot(s[m]),0):1})}),t}function Ot(e){return e?Object.keys(e).length:0}var Pt=Ee(b),T=(0,Ge.createRequire)(Pt),oe=class extends ze.default{constructor(t){super();this.options=t;this.moduleCache=new Map;this.moduleDeps=new Map;this.moduleType="cjs";this._mockData={};this.cwd=t.cwd||process.cwd();try{let r=U(this.cwd,["package.json"]);this.moduleType=r&&JSON.parse(r).type==="module"?"esm":"cjs"}catch{}}get mockData(){return this._mockData}load(){let{include:t,exclude:r}=this.options,n=(0,D.createFilter)(t,r,{resolve:!1});(0,Ke.default)(t,{cwd:this.cwd}).then(i=>Promise.all(i.filter(n).map(c=>this.loadMock(c)))).then(()=>this.updateMockList()),this.watchMockEntry(),this.watchDeps();let s=null;this.on("mock:update",async i=>{n(i)&&(await this.loadMock(i),s&&clearImmediate(s),s=setImmediate(()=>{this.updateMockList(),this.emit("mock:update-end",i),s=null}))}),this.on("mock:unlink",async i=>{n(i)&&(this.moduleCache.delete(i),this.updateMockList(),this.emit("mock:update-end",i))})}watchMockEntry(){let{include:t}=this.options,[r,...n]=t,s=me.default.watch(r,{ignoreInitial:!0,cwd:this.cwd});n.length>0&&n.forEach(i=>s.add(i)),s.on("add",async i=>{i=(0,D.normalizePath)(i),this.emit("mock:update",i),C("watcher:add",i)}),s.on("change",async i=>{i=(0,D.normalizePath)(i),this.emit("mock:update",i),C("watcher:change",i)}),s.on("unlink",async i=>{i=(0,D.normalizePath)(i),this.emit("mock:unlink",i),C("watcher:unlink",i)}),this.mockWatcher=s}watchDeps(){let t=[];this.depsWatcher=me.default.watch([],{ignoreInitial:!0,cwd:this.cwd}),this.depsWatcher.on("change",r=>{r=(0,D.normalizePath)(r);let n=this.moduleDeps.get(r);n&&n.forEach(s=>{this.emit("mock:update",s)})}),this.depsWatcher.on("unlink",r=>{r=(0,D.normalizePath)(r),this.moduleDeps.delete(r)}),this.on("update:deps",()=>{let r=[];for(let[s]of this.moduleDeps.entries())r.push(s);let n=r.filter(s=>!t.includes(s));n.length>0&&this.depsWatcher.add(n)})}close(){var t,r;(t=this.mockWatcher)==null||t.close(),(r=this.depsWatcher)==null||r.close()}updateMockList(){this._mockData=ue(this.moduleCache)}updateModuleDeps(t,r){Object.keys(r).forEach(n=>{r[n].imports.map(i=>i.path).forEach(i=>{this.moduleDeps.has(i)||this.moduleDeps.set(i,new Set),this.moduleDeps.get(i).add(t)})}),this.emit("update:deps")}async loadMock(t){if(!t)return;let r=!1;/\.m[jt]s$/.test(t)?r=!0:/\.c[jt]s$/.test(t)?r=!1:r=this.moduleType==="esm";let{code:n,deps:s}=await this.transformWithEsbuild(t,r);try{let i=await this.loadFromCode(t,n,r),c=i&&i.default?i.default:Object.keys(i||{}).map(m=>i[m]);S(c)?c.forEach(m=>m.__filepath__=t):c.__filepath__=t,this.moduleCache.set(t,c),this.updateModuleDeps(t,s)}catch(i){console.error(i)}}async loadFromCode(t,r,n){if(n){let s=`${t}.timestamp-${Date.now()}`,i=`${s}.mjs`,c=`${(0,Qe.pathToFileURL)(s)}.mjs`;await te.default.promises.writeFile(i,r,"utf8");try{return await import(c)}finally{try{te.default.unlinkSync(i)}catch{}}}else{t=le.default.resolve(this.cwd,t);let s=le.default.extname(t),i=te.default.realpathSync(t),c=s in T.extensions?s:".js",m=T.extensions[c];T.extensions[c]=(M,h)=>{h===i?M._compile(r,h):m(M,h)},delete T.cache[T.resolve(t)];let d=T(t);return T.extensions[c]=m,d.__esModule?d:{default:d}}}async transformWithEsbuild(t,r){var n;try{let s=await(0,Xe.build)({entryPoints:[t],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,metafile:!0,format:r?"esm":"cjs",define:this.options.define,plugins:[Q(this.options.alias),J,G,z]});return{code:s.outputFiles[0].text,deps:((n=s.metafile)==null?void 0:n.inputs)||{}}}catch(s){console.error(s)}return{code:"",deps:{}}}};var de=require("url"),Ye=f(require("cookies"),1),fe=require("path-to-regexp"),Ze=f(require("picocolors"),1),et=require("ws");function ke(e,o,t,r){var E;let n=new Map,s=new Map,i=new WeakMap,c=a=>{let u=s.get(a);return!u&&s.set(a,u=new Map),u},m=(a,u)=>{let p=a.get(u);return!p&&a.set(u,p=new et.WebSocketServer({noServer:!0})),p},d=(a,u)=>{let p=n.get(a);!p&&n.set(a,p=new Set),p.add(u)},M=(a,u,p,l,k,g)=>{var y;try{(y=p.setup)==null||y.call(p,u,l),u.on("close",()=>{a.delete(k)})}catch(w){W.error(`${Ze.default.red("[websocket server error]")} ${g}
|
|
41
|
+
`,w)}},h=(a,u,p,l)=>{a.emit("connection",u,p),u.on("close",()=>{let k=l.findIndex(g=>g.ws===u);k!==-1&&l.splice(k,1)})},H=(a,u,p,l,k)=>{let{cleanupList:g,connectionList:y,context:w}=i.get(u);Ve(g),y.forEach(({ws:j})=>j.removeAllListeners()),u.removeAllListeners(),M(a,u,p,w,l,k),y.forEach(({ws:j,req:I})=>h(u,j,I,y))};(E=e.on)==null||E.call(e,"mock:update-end",a=>{if(!n.has(a))return;let u=n.get(a);if(u)for(let p of u.values())for(let l of e.mockData[p]){if(!l.ws||l.__filepath__!==a)return;let k=c(p);for(let[g,y]of k.entries())H(k,y,l,g,a)}}),o==null||o.on("upgrade",(a,u,p)=>{let{pathname:l,query:k}=(0,de.parse)(a.url,!0);if(!l||t.length===0||!t.some(x=>Y(x,a.url)))return;let g=e.mockData,y=Object.keys(g).find(x=>(0,fe.pathToRegexp)(x).test(l));if(!y)return;let w=g[y].find(x=>x.url&&x.ws&&(0,fe.pathToRegexp)(x.url).test(l));if(!w)return;let j=w.__filepath__;d(j,y);let I=c(y),L=m(I,l),_=i.get(L);if(!_){let x=[],ve={onCleanup:ot=>x.push(ot)};_={cleanupList:x,context:ve,connectionList:[]},i.set(L,_),M(I,L,w,ve,l,j)}let v=a,he=new Ye.default(a,a,r),{query:tt}=(0,de.parse)(a.headers.referer||"",!0);v.query=k,v.refererQuery=tt,v.params=N(y,l),v.getCookie=he.get.bind(he),L.handleUpgrade(v,u,p,x=>{C(`websocket-mock: ${a.url} connected`),_.connectionList.push({req:v,ws:x}),h(L,x,v,_.connectionList)})}),o==null||o.on("close",()=>{for(let a of s.values()){for(let u of a.values()){let p=i.get(u);Ve(p.cleanupList),u.close()}a.clear()}s.clear(),n.clear()})}function Ve(e){let o;for(;o=e.shift();)o==null||o()}async function ge(e,o,t,r){let n=O(o.include),s=O(o.exclude),i={};if(e.define)for(let M in e.define){let h=e.define[M];i[M]=typeof h=="string"?h:JSON.stringify(h)}let c=new oe({include:n,exclude:s,define:i,alias:e.resolve.alias});c.load(),c.on("mock:update-end",()=>{o.reload&&(r==null||r.send({type:"full-reload"}))}),t==null||t.on("close",()=>c.close());let{httpProxies:m}=V(e.server.proxy||{}),d=O(o.prefix);return ke(c,t,O(o.wsPrefix),o.cookiesOptions),pe(c,{formidableOptions:o.formidableOptions,proxies:[...d,...m],cookiesOptions:o.cookiesOptions})}function ye({prefix:e=[],wsPrefix:o=[],include:t=["mock/**/*.mock.{js,ts,cjs,mjs,json,json5}"],exclude:r=["**/node_modules/**","**/.vscode/**","**/.git/**"],reload:n=!1,formidableOptions:s={},build:i=!1,cookiesOptions:c={}}={}){let m={prefix:e,wsPrefix:o,include:t,exclude:r,reload:n,cookiesOptions:c,formidableOptions:{multiples:!0,...s},build:i?Object.assign({serverPort:8080,dist:"mockServer"},typeof i=="object"?i:{}):!1},d=[Rt(m)];return m.build&&d.push(jt(m)),d}function jt(e){let o={};return{name:"vite-plugin-mock-dev-server-generator",enforce:"post",apply:"build",configResolved(t){o=t,t.logger.warn("")},async buildEnd(t){t||o.command==="build"&&await Fe(this,o,e)}}}function Rt(e){let o={};return{name:"vite-plugin-mock-dev-server",enforce:"pre",apply:"serve",configResolved(t){o=t,t.logger.warn("")},async configureServer({middlewares:t,config:r,httpServer:n,ws:s}){let i=await ge(r,e,n,s);t.use(i)},async configurePreviewServer({middlewares:t,httpServer:r}){let n=await ge(o,e,r);t.use(n)}}}function Ct(e){return e}function Wt(e){return t=>(S(t)?t=t.map(r=>e(r)||r):t=e(t)||t,t)}var Dt=ye;0&&(module.exports={baseMiddleware,createDefineMock,defineMock,mockDevServerPlugin,mockWebSocket,transformMockData});
|
package/dist/index.d.ts
CHANGED
|
@@ -442,7 +442,7 @@ declare class MockLoader extends EventEmitter {
|
|
|
442
442
|
private _mockData;
|
|
443
443
|
constructor(options: MockLoaderOptions);
|
|
444
444
|
get mockData(): Record<string, MockOptions>;
|
|
445
|
-
load():
|
|
445
|
+
load(): void;
|
|
446
446
|
private watchMockEntry;
|
|
447
447
|
/**
|
|
448
448
|
* 监听 mock文件依赖的本地文件变动,
|
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
`,
|
|
3
|
-
`)}};function
|
|
4
|
-
|
|
1
|
+
import Ne from"fs";import X from"fs/promises";import T from"path";import{build as qe}from"esbuild";import Ae from"fast-glob";import Ue from"is-core-module";import{createFilter as Be,normalizePath as Je}from"vite";var ie="vite-plugin-mock-dev-server",ce="1.1.9";import ae from"fs/promises";import Ee from"path";import Ie from"json5";var U={name:"externalize-deps",setup(t){t.onResolve({filter:/.*/},({path:o})=>{if(o[0]!=="."&&!Ee.isAbsolute(o))return{external:!0}})}},B={name:"json5-loader",setup(t){t.onLoad({filter:/\.json5$/},async({path:o})=>{let e=await ae.readFile(o,"utf-8");return{contents:`export default ${JSON.stringify(Ie.parse(e))}`,loader:"js"}})}},J={name:"json-loader",setup(t){t.onLoad({filter:/\.json$/},async({path:o})=>({contents:`export default ${await ae.readFile(o,"utf-8")}`,loader:"js"}))}},z=t=>({name:"alias-plugin",setup(o){o.onResolve({filter:/.*/},async({path:e})=>{let r=t.find(({find:c})=>Le(c,e));if(!r)return null;let{find:n,replacement:s}=r;return{path:(await o.resolve(e.replace(n,s),{kind:"import-statement",resolveDir:s,namespace:"file"})).path,external:!1}})}});function Le(t,o){return t instanceof RegExp?t.test(o):o.length<t.length?!1:o===t?!0:o.startsWith(`${t}/`)}import V from"fs";import Y from"path";import{fileURLToPath as _e}from"url";import $e from"debug";import{match as Fe}from"path-to-regexp";import pe from"picocolors";var S=t=>Array.isArray(t),j=t=>typeof t=="function",Te=t=>Object.prototype.toString.call(t)==="[object Object]",le=t=>Te(t)&&Object.keys(t).length===0,He=t=>t!==null&&typeof t=="object"&&typeof t.pipe=="function",ue=t=>He(t)&&t.readable!==!1&&typeof t._read=="function"&&typeof t._readableState=="object";function me(t){return new Promise(o=>setTimeout(o,t))}function de(t){return Y.dirname(_e(t))}var C=$e("vite:plugin-mock-dev-server"),O=t=>S(t)?t:t==null?[]:[t],W={info(...t){console.info(pe.cyan("mock-dev-server: "),...t)},error(...t){console.error(`
|
|
2
|
+
`,pe.cyan("mock-dev-server: "),...t,`
|
|
3
|
+
`)}};function H(t,o,e){for(let n of o){let s=Y.join(t,n);if(V.existsSync(s)&&V.statSync(s).isFile()){let i=e!=null&&e.pathOnly?s:V.readFileSync(s,"utf-8");if(!(e!=null&&e.predicate)||e.predicate(i))return i}}let r=Y.dirname(t);if(r!==t&&(!(e!=null&&e.rootDir)||r.startsWith(e==null?void 0:e.rootDir)))return H(r,o,e)}var G=(t={})=>{let o=[],e=[];return Object.keys(t).forEach(r=>{var s,i;let n=t[r];typeof n=="string"||!n.ws&&!((s=n.target)!=null&&s.toString().startsWith("ws:"))&&!((i=n.target)!=null&&i.toString().startsWith("wss:"))?o.push(r):e.push(r)}),{httpProxies:o,wsProxies:e}};function Q(t,o){return t[0]==="^"&&new RegExp(t).test(o)||o.startsWith(t)}function N(t,o){return(Fe(t,{decode:decodeURIComponent})(o)||{params:{}}).params||{}}async function fe(t,o,e){let r=O(e.include),n=O(e.exclude),s={};if(o.define)for(let p in o.define){let u=o.define[p];s[p]=typeof u=="string"?u:JSON.stringify(u)}let{httpProxies:i}=G(o.server.proxy||{});i.push(...O(e.prefix));let c=O(e.wsPrefix),m={};try{let p=H(o.root,["package.json"]);p&&(m=JSON.parse(p))}catch{}let d=e.build.dist,v=await Xe(process.cwd(),r,n),y=T.join(o.root,`mock-data-${Date.now()}.js`);await X.writeFile(y,v,"utf-8");let{code:F,deps:D}=await Ke(y,s,o.resolve.alias),a=ze(D);await X.unlink(y);let l=[{filename:T.join(d,"mock-data.js"),source:F},{filename:T.join(d,"index.js"),source:Qe(i,c,e.cookiesOptions,e.build.serverPort)},{filename:T.join(d,"package.json"),source:Ge(m,a)}];try{if(T.isAbsolute(d)){await X.rm(d,{recursive:!0}),Ne.mkdirSync(d,{recursive:!0});for(let{filename:p,source:u}of l)await X.writeFile(p,u,"utf-8")}else for(let{filename:p,source:u}of l)t.emitFile({type:"asset",fileName:p,source:u})}catch{}}function ze(t){let o=new Set,e=[ie,"connect","cors"];return Object.keys(t).forEach(r=>{t[r].imports.filter(s=>s.external).map(s=>s.path).forEach(s=>{!e.includes(s)&&!Ue(s)&&o.add(s)})}),Array.from(o)}function Ge(t,o){let{dependencies:e={},devDependencies:r={}}=t,n={...e,...r},s={name:"mock-server",type:"module",scripts:{start:"node index.js"},dependencies:{connect:"^3.7.0","vite-plugin-mock-dev-server":`^${ce}`,cors:"^2.8.5"},pnpm:{peerDependencyRules:{ignoreMissing:["vite"]}}};return o.forEach(i=>{s.dependencies[i]=n[i]||"latest"}),JSON.stringify(s,null,2)}function Qe(t,o,e={},r=8080){return`import { createServer } from 'node:http';
|
|
4
|
+
import connect from 'connect';
|
|
5
5
|
import corsMiddleware from 'cors';
|
|
6
6
|
import { baseMiddleware, mockWebSocket } from 'vite-plugin-mock-dev-server';
|
|
7
7
|
import mockData from './mock-data.js';
|
|
@@ -24,18 +24,18 @@ app.use(baseMiddleware({ mockData }, {
|
|
|
24
24
|
server.listen(${r});
|
|
25
25
|
|
|
26
26
|
console.log('listen: http://localhost:${r}');
|
|
27
|
-
`}async function
|
|
28
|
-
`,c+=`m${
|
|
27
|
+
`}async function Xe(t,o,e){let r=await Ae(o,{cwd:t}),n=Be(o,e,{resolve:!1}),s=r.filter(n),i="",c="";return s.forEach((m,d)=>{let v=Je(T.join(t,m));i+=`import * as m${d} from '${v}';
|
|
28
|
+
`,c+=`m${d}, `}),`import { transformMockData } from 'vite-plugin-mock-dev-server';
|
|
29
29
|
${i}
|
|
30
30
|
const exporters = [${c}];
|
|
31
31
|
const mockList = exporters.map((raw) => raw && raw.default
|
|
32
32
|
? raw.default
|
|
33
33
|
: Object.keys(raw || {}).map((key) => raw[key])
|
|
34
|
-
)
|
|
35
|
-
export default transformMockData(mockList);
|
|
36
|
-
|
|
37
|
-
`,
|
|
38
|
-
|
|
39
|
-
`,
|
|
40
|
-
`,
|
|
41
|
-
`,
|
|
34
|
+
);
|
|
35
|
+
export default transformMockData(mockList);`}async function Ke(t,o,e){var r;try{let n=await qe({entryPoints:[t],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,metafile:!0,format:"esm",define:o,plugins:[z(e),U,B,J]});return{code:n.outputFiles[0].text,deps:((r=n.metafile)==null?void 0:r.inputs)||{}}}catch(n){console.error(n)}return{code:"",deps:{}}}import{Buffer as ye}from"buffer";import{parse as he}from"url";import Ze from"cookies";import et from"http-status";import*as q from"mime-types";import{pathToRegexp as Me}from"path-to-regexp";import R from"picocolors";import Z from"co-body";import Ve from"formidable";async function ke(t,o){var n;let e=t.method.toUpperCase();if(["GET","DELETE","HEAD"].includes(e))return;let r=((n=t.headers["content-type"])==null?void 0:n.toLocaleLowerCase())||"";try{if(r.startsWith("application/json"))return await Z.json(t);if(r.startsWith("application/x-www-form-urlencoded"))return await Z.form(t);if(r.startsWith("text/plain"))return await Z.text(t);if(r.startsWith("multipart/form-data"))return await Ye(t,o)}catch(s){console.error(s)}}async function Ye(t,o){let e=Ve(o);return new Promise((r,n)=>{e.parse(t,(s,i,c)=>{if(s){n(s);return}r({...i,...c})})})}function ge(t,o){return _(t.headers,o.headers)&&_(t.body,o.body)&&_(t.params,o.params)&&_(t.query,o.query)&&_(t.refererQuery,o.refererQuery)}function _(t,o){if(!o)return!0;for(let e in o)if(o[e]!==t[e])return!1;return!0}function be(t,{formidableOptions:o={},proxies:e,cookiesOptions:r}){return async function(n,s,i){let c=Date.now(),{query:m,pathname:d}=he(n.url,!0);if(!d||e.length===0||!e.some(h=>Q(h,n.url)))return i();let v=t.mockData,y=Object.keys(v).find(h=>Me(h).test(d));if(!y)return i();let{query:F}=he(n.headers.referer||"",!0),D=await ke(n,o),a=new Ze(n,s,r),l=a.get.bind(a),p=n.method.toUpperCase(),u=tt(v[y],{pathname:d,method:p,request:{query:m,refererQuery:F,body:D,headers:n.headers,getCookie:l}});if(!u)return i();C("middleware: ",p,n.url);let f=n,k=s;f.body=D,f.query=m,f.refererQuery=F,f.params=N(u.url,d),f.getCookie=l,k.setCookie=a.set.bind(a);let{body:g,delay:w,type:P="json",response:E,status:I=200,statusText:L}=u;if(ee(k,I,L),await ot(f,k,u),await rt(f,k,u),g){try{let h=j(g)?await g(f):g;await ve(c,w),nt(k,h,P)}catch(h){W.error(`${R.red("[body error]")} ${n.url}
|
|
36
|
+
`,`file: ${R.cyan(u.__filepath__)}`,h),ee(k,500),s.end("")}return}if(E){try{await ve(c,w),await E(f,k,i)}catch(h){W.error(`${R.red("[response error]")} ${n.url}
|
|
37
|
+
`,`file: ${R.cyan(u.__filepath__)}`,h),ee(k,500),s.end("")}return}s.end("")}}function tt(t,{pathname:o,method:e,request:r}){return t.find(n=>{if(!o||!n||!n.url||n.ws===!0||!(n.method?S(n.method)?n.method:[n.method]:["GET","POST"]).includes(e))return!1;let i=Me(n.url).test(o);if(i&&n.validator){let c=N(n.url,o);if(j(n.validator))return n.validator({params:c,...r});try{return ge({params:c,...r},n.validator)}catch(m){return W.error(`${R.red("[validator error]")} ${o}
|
|
38
|
+
`,`file: ${R.cyan(n.__filepath__)}`,m),!1}}return i})}function ee(t,o=200,e){t.statusCode=o,t.statusMessage=e||st(o)}async function ot(t,o,{headers:e,type:r="json"}){let n=q.contentType(r)||q.contentType(q.lookup(r)||"");if(n&&o.setHeader("Content-Type",n),o.setHeader("Cache-Control","no-cache,max-age=0"),o.setHeader("X-Mock","generate by vite:plugin-mock-dev-server"),!!e)try{let s=j(e)?await e(t):e;Object.keys(s).forEach(i=>{o.setHeader(i,s[i])})}catch(s){W.error(`${R.red("[headers error]")} ${t.url}
|
|
39
|
+
`,s)}}async function rt(t,o,{cookies:e}){if(e)try{let r=j(e)?await e(t):e;Object.keys(r).forEach(n=>{let s=r[n];if(S(s)){let[i,c]=s;o.setCookie(n,i,c)}else o.setCookie(n,s)})}catch(r){W.error(`${R.red("[cookies error]")} ${t.url}
|
|
40
|
+
`,r)}}function nt(t,o,e){if(ue(o))o.pipe(t);else if(ye.isBuffer(o))t.end(e==="text"||e==="json"?o.toString("utf-8"):o);else{let r=typeof o=="string"?o:JSON.stringify(o);t.end(e==="buffer"?ye.from(r):r)}}async function ve(t,o){if(!o||o<=0)return;let e=Date.now()-t,r=o-e;r>0&&await me(r)}function st(t){return et[t]||"Unknown"}import pt from"events";import te from"fs";import{createRequire as lt}from"module";import we from"path";import{pathToFileURL as ut}from"url";import Se from"chokidar";import{build as mt}from"esbuild";import dt from"fast-glob";import{createFilter as ft,normalizePath as A}from"vite";import{parse as it}from"url";import ct from"lodash.sortby";function xe(t){let o=[];for(let[,r]of t.entries())r&&(S(r)?o.push(...r):o.push(r));let e={};return o.filter(r=>(r.enabled||typeof r.enabled>"u")&&r.url).forEach(r=>{let{pathname:n,query:s}=it(r.url,!0),i=e[n]??(e[n]=[]),c={...r,url:n};if(c.ws!==!0){let m=c.validator;le(s)||(j(m)?c.validator=function(d){return _(d.query,s)&&m(d)}:m?(c.validator={...m},c.validator.query=c.validator.query?{...s,...c.validator.query}:s):c.validator={query:s})}i.push(c)}),Object.keys(e).forEach(r=>{e[r]=ct(e[r],n=>{if(n.ws===!0)return 0;let{validator:s}=n;return s?j(s)?0:1/Object.keys(s).reduce((c,m)=>c+at(s[m]),0):1})}),e}function at(t){return t?Object.keys(t).length:0}var kt=de(import.meta.url),$=lt(kt),K=class extends pt{constructor(e){super();this.options=e;this.moduleCache=new Map;this.moduleDeps=new Map;this.moduleType="cjs";this._mockData={};this.cwd=e.cwd||process.cwd();try{let r=H(this.cwd,["package.json"]);this.moduleType=r&&JSON.parse(r).type==="module"?"esm":"cjs"}catch{}}get mockData(){return this._mockData}load(){let{include:e,exclude:r}=this.options,n=ft(e,r,{resolve:!1});dt(e,{cwd:this.cwd}).then(i=>Promise.all(i.filter(n).map(c=>this.loadMock(c)))).then(()=>this.updateMockList()),this.watchMockEntry(),this.watchDeps();let s=null;this.on("mock:update",async i=>{n(i)&&(await this.loadMock(i),s&&clearImmediate(s),s=setImmediate(()=>{this.updateMockList(),this.emit("mock:update-end",i),s=null}))}),this.on("mock:unlink",async i=>{n(i)&&(this.moduleCache.delete(i),this.updateMockList(),this.emit("mock:update-end",i))})}watchMockEntry(){let{include:e}=this.options,[r,...n]=e,s=Se.watch(r,{ignoreInitial:!0,cwd:this.cwd});n.length>0&&n.forEach(i=>s.add(i)),s.on("add",async i=>{i=A(i),this.emit("mock:update",i),C("watcher:add",i)}),s.on("change",async i=>{i=A(i),this.emit("mock:update",i),C("watcher:change",i)}),s.on("unlink",async i=>{i=A(i),this.emit("mock:unlink",i),C("watcher:unlink",i)}),this.mockWatcher=s}watchDeps(){let e=[];this.depsWatcher=Se.watch([],{ignoreInitial:!0,cwd:this.cwd}),this.depsWatcher.on("change",r=>{r=A(r);let n=this.moduleDeps.get(r);n&&n.forEach(s=>{this.emit("mock:update",s)})}),this.depsWatcher.on("unlink",r=>{r=A(r),this.moduleDeps.delete(r)}),this.on("update:deps",()=>{let r=[];for(let[s]of this.moduleDeps.entries())r.push(s);let n=r.filter(s=>!e.includes(s));n.length>0&&this.depsWatcher.add(n)})}close(){var e,r;(e=this.mockWatcher)==null||e.close(),(r=this.depsWatcher)==null||r.close()}updateMockList(){this._mockData=xe(this.moduleCache)}updateModuleDeps(e,r){Object.keys(r).forEach(n=>{r[n].imports.map(i=>i.path).forEach(i=>{this.moduleDeps.has(i)||this.moduleDeps.set(i,new Set),this.moduleDeps.get(i).add(e)})}),this.emit("update:deps")}async loadMock(e){if(!e)return;let r=!1;/\.m[jt]s$/.test(e)?r=!0:/\.c[jt]s$/.test(e)?r=!1:r=this.moduleType==="esm";let{code:n,deps:s}=await this.transformWithEsbuild(e,r);try{let i=await this.loadFromCode(e,n,r),c=i&&i.default?i.default:Object.keys(i||{}).map(m=>i[m]);S(c)?c.forEach(m=>m.__filepath__=e):c.__filepath__=e,this.moduleCache.set(e,c),this.updateModuleDeps(e,s)}catch(i){console.error(i)}}async loadFromCode(e,r,n){if(n){let s=`${e}.timestamp-${Date.now()}`,i=`${s}.mjs`,c=`${ut(s)}.mjs`;await te.promises.writeFile(i,r,"utf8");try{return await import(c)}finally{try{te.unlinkSync(i)}catch{}}}else{e=we.resolve(this.cwd,e);let s=we.extname(e),i=te.realpathSync(e),c=s in $.extensions?s:".js",m=$.extensions[c];$.extensions[c]=(v,y)=>{y===i?v._compile(r,y):m(v,y)},delete $.cache[$.resolve(e)];let d=$(e);return $.extensions[c]=m,d.__esModule?d:{default:d}}}async transformWithEsbuild(e,r){var n;try{let s=await mt({entryPoints:[e],outfile:"out.js",write:!1,target:["node14.18","node16"],platform:"node",bundle:!0,metafile:!0,format:r?"esm":"cjs",define:this.options.define,plugins:[z(this.options.alias),U,J,B]});return{code:s.outputFiles[0].text,deps:((n=s.metafile)==null?void 0:n.inputs)||{}}}catch(s){console.error(s)}return{code:"",deps:{}}}};import{parse as Oe}from"url";import gt from"cookies";import{pathToRegexp as Pe}from"path-to-regexp";import yt from"picocolors";import{WebSocketServer as ht}from"ws";function Ce(t,o,e,r){var D;let n=new Map,s=new Map,i=new WeakMap,c=a=>{let l=s.get(a);return!l&&s.set(a,l=new Map),l},m=(a,l)=>{let p=a.get(l);return!p&&a.set(l,p=new ht({noServer:!0})),p},d=(a,l)=>{let p=n.get(a);!p&&n.set(a,p=new Set),p.add(l)},v=(a,l,p,u,f,k)=>{var g;try{(g=p.setup)==null||g.call(p,l,u),l.on("close",()=>{a.delete(f)})}catch(w){W.error(`${yt.red("[websocket server error]")} ${k}
|
|
41
|
+
`,w)}},y=(a,l,p,u)=>{a.emit("connection",l,p),l.on("close",()=>{let f=u.findIndex(k=>k.ws===l);f!==-1&&u.splice(f,1)})},F=(a,l,p,u,f)=>{let{cleanupList:k,connectionList:g,context:w}=i.get(l);je(k),g.forEach(({ws:P})=>P.removeAllListeners()),l.removeAllListeners(),v(a,l,p,w,u,f),g.forEach(({ws:P,req:E})=>y(l,P,E,g))};(D=t.on)==null||D.call(t,"mock:update-end",a=>{if(!n.has(a))return;let l=n.get(a);if(l)for(let p of l.values())for(let u of t.mockData[p]){if(!u.ws||u.__filepath__!==a)return;let f=c(p);for(let[k,g]of f.entries())F(f,g,u,k,a)}}),o==null||o.on("upgrade",(a,l,p)=>{let{pathname:u,query:f}=Oe(a.url,!0);if(!u||e.length===0||!e.some(M=>Q(M,a.url)))return;let k=t.mockData,g=Object.keys(k).find(M=>Pe(M).test(u));if(!g)return;let w=k[g].find(M=>M.url&&M.ws&&Pe(M.url).test(u));if(!w)return;let P=w.__filepath__;d(P,g);let E=c(g),I=m(E,u),L=i.get(I);if(!L){let M=[],ne={onCleanup:De=>M.push(De)};L={cleanupList:M,context:ne,connectionList:[]},i.set(I,L),v(E,I,w,ne,u,P)}let h=a,re=new gt(a,a,r),{query:Re}=Oe(a.headers.referer||"",!0);h.query=f,h.refererQuery=Re,h.params=N(g,u),h.getCookie=re.get.bind(re),I.handleUpgrade(h,l,p,M=>{C(`websocket-mock: ${a.url} connected`),L.connectionList.push({req:h,ws:M}),y(I,M,h,L.connectionList)})}),o==null||o.on("close",()=>{for(let a of s.values()){for(let l of a.values()){let p=i.get(l);je(p.cleanupList),l.close()}a.clear()}s.clear(),n.clear()})}function je(t){let o;for(;o=t.shift();)o==null||o()}async function oe(t,o,e,r){let n=O(o.include),s=O(o.exclude),i={};if(t.define)for(let v in t.define){let y=t.define[v];i[v]=typeof y=="string"?y:JSON.stringify(y)}let c=new K({include:n,exclude:s,define:i,alias:t.resolve.alias});c.load(),c.on("mock:update-end",()=>{o.reload&&(r==null||r.send({type:"full-reload"}))}),e==null||e.on("close",()=>c.close());let{httpProxies:m}=G(t.server.proxy||{}),d=O(o.prefix);return Ce(c,e,O(o.wsPrefix),o.cookiesOptions),be(c,{formidableOptions:o.formidableOptions,proxies:[...d,...m],cookiesOptions:o.cookiesOptions})}function We({prefix:t=[],wsPrefix:o=[],include:e=["mock/**/*.mock.{js,ts,cjs,mjs,json,json5}"],exclude:r=["**/node_modules/**","**/.vscode/**","**/.git/**"],reload:n=!1,formidableOptions:s={},build:i=!1,cookiesOptions:c={}}={}){let m={prefix:t,wsPrefix:o,include:e,exclude:r,reload:n,cookiesOptions:c,formidableOptions:{multiples:!0,...s},build:i?Object.assign({serverPort:8080,dist:"mockServer"},typeof i=="object"?i:{}):!1},d=[Mt(m)];return m.build&&d.push(vt(m)),d}function vt(t){let o={};return{name:"vite-plugin-mock-dev-server-generator",enforce:"post",apply:"build",configResolved(e){o=e,e.logger.warn("")},async buildEnd(e){e||o.command==="build"&&await fe(this,o,t)}}}function Mt(t){let o={};return{name:"vite-plugin-mock-dev-server",enforce:"pre",apply:"serve",configResolved(e){o=e,e.logger.warn("")},async configureServer({middlewares:e,config:r,httpServer:n,ws:s}){let i=await oe(r,t,n,s);e.use(i)},async configurePreviewServer({middlewares:e,httpServer:r}){let n=await oe(o,t,r);e.use(n)}}}function Ko(t){return t}function Vo(t){return e=>(S(e)?e=e.map(r=>t(r)||r):e=t(e)||e,e)}var tr=We;export{be as baseMiddleware,Vo as createDefineMock,tr as default,Ko as defineMock,We as mockDevServerPlugin,Ce as mockWebSocket,xe as transformMockData};
|