vite-plugin-mock-dev-server 2.1.0 → 2.1.1
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/helper.d.ts +19 -4
- package/dist/helper.js +2 -2
- package/dist/{config-7dnQWJSY.d.ts → index-HOrR1VyK.d.ts} +4 -1
- package/dist/index.d.ts +4 -6
- package/dist/index.js +2 -2
- package/dist/{index-x4QPVyiP.d.ts → server-ypJ-wM5S.d.ts} +4 -4
- package/dist/server.d.ts +1 -2
- package/dist/server.js +1 -1
- package/dist/types.d.ts +1 -6
- package/package.json +6 -6
- /package/dist/{logger-C-7qpBNh.js → server-DnEpYtlk.js} +0 -0
package/dist/helper.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
import { FormidableFile } from "./types.js";
|
|
1
|
+
import { C as MockRequest, D as GetCookieOption, E as CookiesOption, O as SetCookieOption, S as Method, T as ResponseBody, _ as RecordedRequest, a as MockErrorConfig, b as ExtraRequest, c as LogLevel, d as MockMatchSpecialPriority, f as MockServerPluginOptions, g as RecordedReq, h as RecordedMeta, i as WebSocketSetupContext, l as LogType, m as RecordOptions, n as MockOptions, o as MockHttpItem, p as ServerBuildOption, r as MockWebsocketItem, s as BodyParserOptions, t as FormidableFile, u as MockMatchPriority, v as RecordedRes, w as MockResponse, x as Headers, y as ResolvedRecordOptions } from "./index-HOrR1VyK.js";
|
|
3
2
|
import { IncomingMessage, OutgoingHttpHeaders, ServerResponse } from "node:http";
|
|
4
3
|
import { Transform } from "node:stream";
|
|
5
4
|
|
|
@@ -242,6 +241,21 @@ declare function createDefineMock(transformer: (mock: MockHttpItem | MockWebsock
|
|
|
242
241
|
//#endregion
|
|
243
242
|
//#region src/helpers/defineMockData.d.ts
|
|
244
243
|
/**
|
|
244
|
+
* Options for defineMockData
|
|
245
|
+
*
|
|
246
|
+
* defineMockData 的选项
|
|
247
|
+
*/
|
|
248
|
+
interface DefineMockDataOptions {
|
|
249
|
+
/**
|
|
250
|
+
* Whether to persist the data value on HMR (Hot Module Replacement).
|
|
251
|
+
*
|
|
252
|
+
* 热更新时是否保持数据值
|
|
253
|
+
*
|
|
254
|
+
* @default false
|
|
255
|
+
*/
|
|
256
|
+
persistOnHMR?: boolean;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
245
259
|
* Mock data type with getter, setter, and value property
|
|
246
260
|
*
|
|
247
261
|
* 带有 getter、setter 和 value 属性的 Mock 数据类型
|
|
@@ -264,8 +278,9 @@ type MockData<T = any> = readonly [() => T, (val: T | ((val: T) => T | void)) =>
|
|
|
264
278
|
* @template T - Type of mock data / Mock 数据的类型
|
|
265
279
|
* @param key - Unique key for mock data / Mock 数据的唯一键
|
|
266
280
|
* @param initialData - Initial data value / 初始数据值
|
|
281
|
+
* @param options - Options / 选项
|
|
267
282
|
* @returns MockData object with getter, setter, and value property / 带有 getter、setter 和 value 属性的 MockData 对象
|
|
268
283
|
*/
|
|
269
|
-
declare function defineMockData<T = any>(key: string, initialData: T): MockData<T>;
|
|
284
|
+
declare function defineMockData<T = any>(key: string, initialData: T, options?: DefineMockDataOptions): MockData<T>;
|
|
270
285
|
//#endregion
|
|
271
|
-
export { BodyParserOptions, CookiesOption, ExtraRequest, FormidableFile, GetCookieOption, HeaderStream, Headers, LogLevel, LogType, Method, MockData, MockErrorConfig, MockHttpItem, MockMatchPriority, MockMatchSpecialPriority, MockOptions, MockRequest, MockResponse, MockServerPluginOptions, MockWebsocketItem, RecordOptions, RecordedMeta, RecordedReq, RecordedRequest, RecordedRes, ResolvedRecordOptions, ResponseBody, SSEMessage, ServerBuildOption, SetCookieOption, WebSocketSetupContext, createDefineMock, createSSEStream, defineMock, defineMockData };
|
|
286
|
+
export { BodyParserOptions, CookiesOption, DefineMockDataOptions, ExtraRequest, FormidableFile, GetCookieOption, HeaderStream, Headers, LogLevel, LogType, Method, MockData, MockErrorConfig, MockHttpItem, MockMatchPriority, MockMatchSpecialPriority, MockOptions, MockRequest, MockResponse, MockServerPluginOptions, MockWebsocketItem, RecordOptions, RecordedMeta, RecordedReq, RecordedRequest, RecordedRes, ResolvedRecordOptions, ResponseBody, SSEMessage, ServerBuildOption, SetCookieOption, WebSocketSetupContext, createDefineMock, createSSEStream, defineMock, defineMockData };
|
package/dist/helper.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{deepClone as e,
|
|
1
|
+
import{deepClone as e,isArray as t,isFunction as n}from"@pengzhanbo/utils";import{createHash as r}from"node:crypto";import{Transform as i}from"node:stream";var a=class extends i{constructor(e){super({objectMode:!0}),e.socket.setKeepAlive(!0),e.socket.setNoDelay(!0),e.socket.setTimeout(0)}pipe(e,t){return e.writeHead&&(e.writeHead(200,{"Content-Type":`text/event-stream; charset=utf-8`,"Transfer-Encoding":`identity`,"Cache-Control":`no-cache`,Connection:`keep-alive`}),e.flushHeaders?.()),e.write(`:ok
|
|
2
2
|
|
|
3
3
|
`),super.pipe(e,t)}_transform(e,t,n){e.comment&&this.push(`: ${e.comment}\n`),e.event&&this.push(`event: ${e.event}\n`),e.id&&this.push(`id: ${e.id}\n`),e.retry&&this.push(`retry: ${e.retry}\n`),e.data&&this.push(o(e.data)),this.push(`
|
|
4
|
-
`),n()}write(e,...t){return super.write(e,...t)}destroy(e){return e&&this.write({event:`error`,data:e.message}),this.end(),this}};function o(e){return typeof e==`object`?o(JSON.stringify(e)):e.split(/\r\n|\r|\n/).map(e=>`data: ${e}\n`).join(``)}function s(e,t){let n=new a(e);return n.pipe(t),n}function c(e){return e}function l(e){return
|
|
4
|
+
`),n()}write(e,...t){return super.write(e,...t)}destroy(e){return e&&this.write({event:`error`,data:e.message}),this.end(),this}};function o(e){return typeof e==`object`?o(JSON.stringify(e)):e.split(/\r\n|\r|\n/).map(e=>`data: ${e}\n`).join(``)}function s(e,t){let n=new a(e);return n.pipe(t),n}function c(e){return e}function l(e){return n=>(n=t(n)?n.map(t=>e(t)||t):e(n)||n,n)}const u=new Map,d=new WeakMap;var f=class{value;#e;#t;#n;constructor(e,t){this.value=e,this.#e=m(e),this.#t=Date.now(),this.#n=t??!1}hotUpdate(t){if(this.#n||Date.now()-this.#t<70)return;let n=m(t);this.#e!==n&&(this.value=e(t),this.#e=n,this.#t=Date.now())}setPersistOnHMR(e){this.#n||=e}};function p(e,t,r){let i=u.get(e);if(i)i.setPersistOnHMR(r?.persistOnHMR??!1);else{let n=new f(t,r?.persistOnHMR),a=u.get(e);a?i=a:(u.set(e,n),i=n)}if(i.hotUpdate(t),d.has(i))return d.get(i);let a=[()=>i.value,e=>{n(e)&&(e=e(i.value)??i.value),i.value=e}];return Object.defineProperty(a,`value`,{get(){return i.value},set(e){i.value=e}}),d.set(i,a),a}function m(e){return r(`sha256`).update(JSON.stringify(e)).digest(`hex`)}export{l as createDefineMock,s as createSSEStream,c as defineMock,p as defineMockData};
|
|
@@ -1027,4 +1027,7 @@ interface WebSocketSetupContext {
|
|
|
1027
1027
|
//#region src/types/config.d.ts
|
|
1028
1028
|
type MockOptions = (MockHttpItem | MockWebsocketItem)[];
|
|
1029
1029
|
//#endregion
|
|
1030
|
-
|
|
1030
|
+
//#region src/types/index.d.ts
|
|
1031
|
+
type FormidableFile = formidable.File | formidable.File[];
|
|
1032
|
+
//#endregion
|
|
1033
|
+
export { MockRequest as C, GetCookieOption as D, CookiesOption as E, SetCookieOption as O, Method as S, ResponseBody as T, RecordedRequest as _, MockErrorConfig as a, ExtraRequest as b, LogLevel as c, MockMatchSpecialPriority as d, MockServerPluginOptions as f, RecordedReq as g, RecordedMeta as h, WebSocketSetupContext as i, LogType as l, RecordOptions as m, MockOptions as n, MockHttpItem as o, ServerBuildOption as p, MockWebsocketItem as r, BodyParserOptions as s, FormidableFile as t, MockMatchPriority as u, RecordedRes as v, MockResponse as w, Headers as x, ResolvedRecordOptions as y };
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
import "./server.js";
|
|
6
|
-
export { BodyParserOptions, CookiesOption, CreateMockMiddlewareOptions, ExtraRequest, type FormidableFile, GetCookieOption, HeaderStream, Headers, LogLevel, LogType, Logger, Method, MockData, MockErrorConfig, type MockHttpItem, MockMatchPriority, MockMatchSpecialPriority, type MockOptions, type MockRequest, MockResponse, type MockServerPluginOptions, type MockWebsocketItem, RecordOptions, RecordedMeta, RecordedReq, RecordedRequest, RecordedRes, ResolvedRecordOptions, ResponseBody, SSEMessage, ServerBuildOption, SetCookieOption, WebSocketSetupContext, createDefineMock, createLogger, createMockMiddleware, createSSEStream, defineMock, defineMockData, logLevels, mockDevServerPlugin, mockWebSocket, processMockData, processRawData, sortByValidator };
|
|
1
|
+
import { C as MockRequest, D as GetCookieOption, E as CookiesOption, O as SetCookieOption, S as Method, T as ResponseBody, _ as RecordedRequest, a as MockErrorConfig, b as ExtraRequest, c as LogLevel, d as MockMatchSpecialPriority, f as MockServerPluginOptions, g as RecordedReq, h as RecordedMeta, i as WebSocketSetupContext, l as LogType, m as RecordOptions, n as MockOptions, o as MockHttpItem, p as ServerBuildOption, r as MockWebsocketItem, s as BodyParserOptions, t as FormidableFile, u as MockMatchPriority, v as RecordedRes, w as MockResponse, x as Headers, y as ResolvedRecordOptions } from "./index-HOrR1VyK.js";
|
|
2
|
+
import { DefineMockDataOptions, HeaderStream, MockData, SSEMessage, createDefineMock, createSSEStream, defineMock, defineMockData } from "./helper.js";
|
|
3
|
+
import { a as processRawData, c as Logger, i as processMockData, l as createLogger, n as CreateMockMiddlewareOptions, o as sortByValidator, r as createMockMiddleware, s as mockDevServerPlugin, t as mockWebSocket, u as logLevels } from "./server-ypJ-wM5S.js";
|
|
4
|
+
export { BodyParserOptions, CookiesOption, CreateMockMiddlewareOptions, DefineMockDataOptions, ExtraRequest, type FormidableFile, GetCookieOption, HeaderStream, Headers, LogLevel, LogType, Logger, Method, MockData, MockErrorConfig, type MockHttpItem, MockMatchPriority, MockMatchSpecialPriority, type MockOptions, type MockRequest, MockResponse, type MockServerPluginOptions, type MockWebsocketItem, RecordOptions, RecordedMeta, RecordedReq, RecordedRequest, RecordedRes, ResolvedRecordOptions, ResponseBody, SSEMessage, ServerBuildOption, SetCookieOption, WebSocketSetupContext, createDefineMock, createLogger, createMockMiddleware, createSSEStream, defineMock, defineMockData, logLevels, mockDevServerPlugin, mockWebSocket, processMockData, processRawData, sortByValidator };
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./
|
|
1
|
+
import{a as e,c as t,d as n,f as r,i,l as a,n as o,o as s,p as c,r as l,s as u,t as d,u as f}from"./server-DnEpYtlk.js";import{createDefineMock as p,createSSEStream as m,defineMock as h,defineMockData as g}from"./helper.js";import _ from"node:process";import{isArray as ee,isBoolean as v,promiseParallel as y,toArray as b,uniq as x}from"@pengzhanbo/utils";import S from"node:path";import{pathToFileURL as C}from"node:url";import w from"node:fs/promises";import T from"json5";import E,{promises as D}from"node:fs";import O from"node:events";import{watch as k}from"chokidar";import{getPackageInfoSync as A,loadPackageJSON as j,loadPackageJSONSync as M}from"local-pkg";import{glob as N}from"tinyglobby";import P from"ansis";import te from"is-core-module";function ne(e){let t={},n=_.env.NODE_ENV||e.mode;Object.assign(t,{"process.env.NODE_ENV":JSON.stringify(n),"global.process.env.NODE_ENV":JSON.stringify(n),"globalThis.process.env.NODE_ENV":JSON.stringify(n)});let r={},i={};for(let t in e.define){let n=e.define[t],a=t.startsWith(`import.meta.env.`);typeof n==`string`?ie(n)&&(r[t]=n,a&&(i[t.slice(16)]=n)):(r[t]=F(n),a&&(i[t.slice(16)]=n))}let a={},o={},s={};a[`import.meta.hot`]=`undefined`;for(let t in e.env){let n=JSON.stringify(e.env[t]);a[`import.meta.env.${t}`]=n,o[t]=n}s[`import.meta.env`]=`undefined`;let c={...t,...a,...r,...s};return`import.meta.env`in c&&(c[`import.meta.env`]=re({...o,...i})),c}function re(e){let t=`{`,n=Object.keys(e);for(let r=0;r<n.length;r++){let i=n[r],a=e[i];t+=`${JSON.stringify(i)}: ${F(a)}`,r!==n.length-1&&(t+=`, `)}return`${t}}`}function F(e){return e===void 0?`undefined`:typeof e==`string`?e:JSON.stringify(e)}function ie(e){try{return JSON.parse(e),!0}catch{return!1}}const ae={name:`externalize-deps`,setup(e){e.onResolve({filter:/.*/},({path:e})=>{if(e[0]!==`.`&&!S.isAbsolute(e))return{external:!0}})}},oe={name:`json5-loader`,setup(e){e.onLoad({filter:/\.json5$/},async({path:e})=>{let t=await w.readFile(e,`utf-8`);return{contents:`export default ${JSON.stringify(T.parse(t))}`,loader:`js`}})}},I={name:`json-loader`,setup(e){e.onLoad({filter:/\.json$/},async({path:e})=>({contents:`export default ${await w.readFile(e,`utf-8`)}`,loader:`js`}))}},L={name:`rename-plugin`,setup(e){e.onResolve({filter:/.*/},({path:e})=>e===`vite-plugin-mock-dev-server`?{path:`vite-plugin-mock-dev-server/helper`,external:!0}:null)}};function R(e){return{name:`alias-plugin`,setup(t){t.onResolve({filter:/.*/},async({path:n})=>{let r=e.find(({find:e})=>z(e,n));if(!r)return null;let{find:i,replacement:a}=r;return{path:(await t.resolve(n.replace(i,a),{kind:`import-statement`,resolveDir:a,namespace:`file`})).path,external:!1}})}}}function z(e,t){return e instanceof RegExp?e.test(t):t.length<e.length?!1:t===e?!0:t.startsWith(`${e}/`)}let B=null;async function V(){return B||=(await import(`esbuild`)).build,B}async function H(e,{isESM:t=!0,define:r,alias:i,cwd:a=_.cwd()}){let o=S.resolve(a,e),s=S.basename(e),c=S.dirname(o);try{let l=await(await V())({entryPoints:[e],outfile:`out.js`,write:!1,target:[`node18`],platform:`node`,bundle:!0,metafile:!0,format:t?`esm`:`cjs`,define:{...r,__dirname:JSON.stringify(c),__filename:JSON.stringify(s),...t?{}:{"import.meta.url":JSON.stringify(C(o))}},plugins:[R(i),L,ae,I,oe],absWorkingDir:a}),u=new Set,d=l.metafile?.inputs||{};return Object.keys(d).forEach(e=>d[e].imports.forEach(e=>u.add(n(e.path)))),{code:l.outputFiles[0].text,deps:Array.from(u)}}catch(e){console.error(e)}return{code:``,deps:[]}}async function U({filepath:e,code:t,isESM:n,cwd:r}){e=S.resolve(r,e);let i=n?`.mjs`:`.cjs`,a=`${e}.timestamp-${Date.now()}${i}`,o=C(a).toString();await D.writeFile(a,t,`utf8`);try{let e=await import(o);return e.default||e}finally{try{E.unlinkSync(a)}catch{}}}const W={name:`vite-mock:rename-plugin`,resolveId(e){if(e===`vite-plugin-mock-dev-server`)return{id:`vite-plugin-mock-dev-server/helper`,external:!0}}},G={name:`vite-mock:json5-plugin`,transform:{filter:{id:/\.json5$/},handler:e=>({code:`export default ${T.stringify(T.parse(e))}`})}};let K=null;async function se(){return K||={build:(await import(`rolldown`)).build,aliasPlugin:(await import(`rolldown/experimental`)).viteAliasPlugin},K}async function ce(e,{isESM:t=!0,define:r,alias:i,cwd:a=_.cwd()}){let o=S.resolve(a,e),s=S.basename(e),c=S.dirname(o),l=e=>!!i.find(({find:t})=>z(t,e));try{let{build:u,aliasPlugin:d}=await se(),f=await u({input:e,write:!1,cwd:a,output:{format:t?`esm`:`cjs`,sourcemap:!1,file:`out.js`},platform:`node`,transform:{define:{...r,__dirname:JSON.stringify(c),__filename:JSON.stringify(s),...t?{}:{"import.meta.url":JSON.stringify(C(o))}}},external(e){if(l(e))return!1;if(e[0]!==`.`&&!S.isAbsolute(e)&&e!==`vite-plugin-mock-dev-server`)return!0},plugins:[d({entries:i}),W,G],onLog(e,t,n){t.code===`PLUGIN_TIMINGS`&&t.message.includes(`vite-mock`)||n(e,t)}});return{code:f.output[0].code,deps:f.output[0].imports.map(n)}}catch(e){console.error(e)}return{code:``,deps:[]}}let q;async function J(e,t){if(q??=await r(`rolldown`)?`rolldown`:await r(`esbuild`)?`esbuild`:`none`,q===`rolldown`)return ce(e,t);if(q===`esbuild`)return H(e,t);throw Error(`rolldown or esbuild not found`)}async function le(e,t){let n=!1;n=/\.m[jt]s$/.test(e)?!0:/\.c[jt]s$/.test(e)?!1:t.isESM||!1;let{code:r,deps:i}=await J(e,{...t,isESM:n});return{data:await U({filepath:e,code:r,isESM:n,cwd:t.cwd||_.cwd()})||{},deps:i}}var ue=class extends O{moduleCache=new Map;moduleDeps=new Map;cwd;mockWatcher;depsWatcher;isESM=!1;_mockData={};options;constructor(e){super(),this.options=e,this.cwd=e.cwd||_.cwd();try{this.isESM=M(this.cwd)?.type===`module`}catch{}}get mockData(){return this._mockData}run(e){let{include:t,exclude:r}=this.options,{pattern:i,ignore:a,isMatch:o}=c(t,r);if(N(i,{ignore:a,cwd:S.join(this.cwd,this.options.dir)}).then(e=>e.map(e=>()=>this.load(n(S.join(this.options.dir,e))))).then(e=>y(e,64)).then(()=>this.updateMockData()),!e)return;this.watchMockEntry(o),this.watchDeps();let s=null;this.on(`mock:update`,async e=>{o(e)&&(await this.load(e),s&&clearImmediate(s),s=setImmediate(()=>{this.updateMockData(),this.emit(`mock:update-end`,n(e)),s=null}))}),this.on(`mock:unlink`,async e=>{o(e)&&(e=n(S.join(this.options.dir,e)),this.moduleCache.delete(e),this.updateMockData(),this.emit(`mock:update-end`,e))})}close(){this.mockWatcher?.close(),this.depsWatcher?.close()}async load(e){if(e)try{let{define:n,alias:r}=this.options,{data:i,deps:a}=await le(e,{cwd:this.cwd,isESM:this.isESM,define:n,alias:r});this.moduleCache.set(e,t(i,e)),this.updateModuleDeps(e,a)}catch(e){console.error(e)}}updateMockData(){this._mockData=u(this.moduleCache)}updateModuleDeps(e,t){for(let n of t)this.moduleDeps.has(n)||this.moduleDeps.set(n,new Set),this.moduleDeps.get(n).add(e);this.emit(`update:deps`)}watchMockEntry(e){let t=this.mockWatcher=k(this.options.dir,{ignoreInitial:!0,cwd:this.cwd,ignored:(t,r)=>t.includes(`node_modules`)?!0:!!r?.isFile()&&!e(n(t))});t.on(`add`,async e=>{e=n(e),this.emit(`mock:update`,e),f(`watcher:add`,e)}),t.on(`change`,async e=>{e=n(e),this.emit(`mock:update`,e),f(`watcher:change`,e)}),t.on(`unlink`,async e=>{e=n(e),this.emit(`mock:unlink`,e),f(`watcher:unlink`,e)})}watchDeps(){let e=[...this.moduleDeps.keys()],t=this.depsWatcher=k([...e],{ignoreInitial:!0,cwd:this.cwd});t.on(`change`,e=>{e=n(e),this.moduleDeps.get(e)?.forEach(e=>this.emit(`mock:update`,e))}),t.on(`unlink`,e=>{e=n(e),this.moduleDeps.delete(e)}),this.on(`update:deps`,()=>{let n=[...this.moduleDeps.keys()],r=n.filter(t=>!e.includes(t));e=n,r.length>0&&t.add(r)})}};function Y(e,t,n){let r=new ue(e);r.run(!!t),r.on(`mock:update-end`,()=>{e.reload&&n?.send({type:`full-reload`})}),t?.on(`close`,()=>r.close()),l(r,t,e);let a=[];return a.push(i(r,e)),a}function X({prefix:e=[],wsPrefix:t=[],cwd:n,dir:r=`mock`,include:i=[`**/*.mock.{js,ts,cjs,mjs,json,json5}`],exclude:a=[],reload:o=!1,log:s=`info`,cors:c=!0,formidableOptions:l={},build:u=!1,cookiesOptions:f={},bodyParserOptions:p={},priority:m={},record:h=!1,replay:g},y){let S=n||_.cwd(),C=d(`vite:mock`,v(s)?s?`info`:`error`:s),{httpProxies:w}=de(y.server.proxy||{}),T=x([...b(e),...w]),E=b(t);!T.length&&!E.length&&C.warn(`No proxy was configured, mock server will not work. See ${P.cyan(`https://vite-plugin-mock-dev-server.netlify.app/guide/usage`)}`);let D=c===!1?!1:y.server.cors!==!1,O={};D&&y.server.cors!==!1&&(O={...O,...typeof y.server.cors==`boolean`?{}:y.server.cors}),D&&c!==!1&&(O={...O,...typeof c==`boolean`?{}:c});let k=[],A=y.resolve.alias||[];ee(A)?k.push(...A):Object.entries(A).forEach(([e,t])=>{k.push({find:e,replacement:t})});let j=Z(S,r,h);return{enabled:!0,cwd:S,dir:r,include:i,exclude:a,context:y.root,reload:o,cors:D?O:!1,cookiesOptions:f,log:s,formidableOptions:{multiples:!0,...l},bodyParserOptions:p,priority:m,build:u?{serverPort:8080,dist:`mockServer`,log:`error`,includeRecord:g??j.enabled??!1,...typeof u==`object`?u:{}}:!1,proxies:T,wsProxies:E,logger:C,alias:k,define:ne(y),record:j,replay:g??j.enabled??!1}}function de(e={}){let t=[],n=[];return Object.keys(e).forEach(r=>{let i=e[r];typeof i==`string`||!i.ws&&!i.target?.toString().startsWith(`ws:`)&&!i.target?.toString().startsWith(`wss:`)?t.push(r):n.push(r)}),{httpProxies:t,wsProxies:n}}function Z(e,t,n){let r=typeof n==`boolean`?{enabled:n}:n,i=r?.expires??0;return{enabled:r?.enabled??!1,cwd:e,dir:S.join(t,r?.dir||`.recordings`),overwrite:r?.overwrite??!0,status:b(r?.status).map(Number),expires:i===0?2**53-1:i*1e3,gitignore:r?.gitignore??!0,filter:r?.filter||(()=>!0)}}async function fe(e,t,r,i){let{pattern:a,ignore:o}=c(r,i),s=await N(a,{ignore:o,cwd:S.join(e,t)}),l=``,u=[];return s.forEach((r,i)=>{let a=n(S.join(e,t,r));l+=`import * as m${i} from '${a}';\n`,u.push(`[m${i}, '${n(S.join(t,r))}']`)}),`import { processMockData, processRawData } from 'vite-plugin-mock-dev-server/server';
|
|
2
2
|
${l}
|
|
3
3
|
const exporters = [\n ${u.join(`,
|
|
4
4
|
`)}\n];
|
|
5
5
|
const mockList = exporters.map(([mod, filepath]) => processRawData(mod.default || mod, filepath));
|
|
6
|
-
export default processMockData(mockList);`}var Q=`vite-plugin-mock-dev-server`,pe=`2.1.
|
|
6
|
+
export default processMockData(mockList);`}var Q=`vite-plugin-mock-dev-server`,pe=`2.1.1`;function me(e,t){let n=new Set,r=[Q,`connect`,`cors`],i=e=>t.find(({find:t})=>z(t,e));return e.forEach(e=>{let t=he(e);t.startsWith(`<define:`)||i(t)||te(t)||t[0]===`/`||t.startsWith(`./`)||t.startsWith(`../`)||r.includes(t)||n.add(t)}),Array.from(n)}function he(e){let[t,n]=e.split(`/`);return t[0]===`@`?`${t}/${n}`:t}function ge(e,t){let{dependencies:n={},devDependencies:r={}}=e,i={...n,...r},a={name:`mock-server`,type:`module`,scripts:{start:`node index.js`},dependencies:{connect:`^3.7.0`,[Q]:`^${pe}`,cors:`^2.8.5`},pnpm:{peerDependencyRules:{ignoreMissing:[`vite`]}}},o=[`catalog:`,`file:`,`workspace:`];for(let e of t){let t=i[e];if(!t||o.some(e=>t.startsWith(e))){let t=A(e);a.dependencies[e]=t?.version?`^${t.version}`:`latest`}else a.dependencies[e]=`latest`}return JSON.stringify(a,null,2)}function $({proxies:e,wsProxies:t,cookiesOptions:n,bodyParserOptions:r,priority:i,build:a,cors:o,record:s,replay:c}){let{serverPort:l,log:u}=a;return`import { createServer } from 'node:http';
|
|
7
7
|
import process from 'node:process';
|
|
8
8
|
import connect from 'connect';
|
|
9
9
|
import { createMockMiddleware, createLogger, mockWebSocket } from 'vite-plugin-mock-dev-server/server';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { c as LogLevel, f as MockServerPluginOptions, n as MockOptions, o as MockHttpItem, p as ServerBuildOption, r as MockWebsocketItem, y as ResolvedRecordOptions } from "./index-HOrR1VyK.js";
|
|
2
2
|
import { Matcher } from "picomatch";
|
|
3
3
|
import EventEmitter from "node:events";
|
|
4
4
|
import { CorsOptions } from "cors";
|
|
@@ -117,13 +117,13 @@ declare class Compiler extends EventEmitter {
|
|
|
117
117
|
*
|
|
118
118
|
* Mock 文件监视器
|
|
119
119
|
*/
|
|
120
|
-
private mockWatcher
|
|
120
|
+
private mockWatcher!;
|
|
121
121
|
/**
|
|
122
122
|
* File watcher for dependency files
|
|
123
123
|
*
|
|
124
124
|
* 依赖文件监视器
|
|
125
125
|
*/
|
|
126
|
-
private depsWatcher
|
|
126
|
+
private depsWatcher!;
|
|
127
127
|
/**
|
|
128
128
|
* Whether the project uses ES modules
|
|
129
129
|
*
|
|
@@ -141,7 +141,7 @@ declare class Compiler extends EventEmitter {
|
|
|
141
141
|
*
|
|
142
142
|
* 解析后的插件配置项
|
|
143
143
|
*/
|
|
144
|
-
options
|
|
144
|
+
options!: ResolvedMockServerPluginOptions;
|
|
145
145
|
/**
|
|
146
146
|
* Constructor
|
|
147
147
|
*
|
package/dist/server.d.ts
CHANGED
|
@@ -1,3 +1,2 @@
|
|
|
1
|
-
import "./
|
|
2
|
-
import { a as processRawData, c as Logger, i as processMockData, l as createLogger, n as CreateMockMiddlewareOptions, o as sortByValidator, r as createMockMiddleware, t as mockWebSocket, u as logLevels } from "./index-x4QPVyiP.js";
|
|
1
|
+
import { a as processRawData, c as Logger, i as processMockData, l as createLogger, n as CreateMockMiddlewareOptions, o as sortByValidator, r as createMockMiddleware, t as mockWebSocket, u as logLevels } from "./server-ypJ-wM5S.js";
|
|
3
2
|
export { CreateMockMiddlewareOptions, Logger, createLogger, createMockMiddleware, logLevels, mockWebSocket, processMockData, processRawData, sortByValidator };
|
package/dist/server.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,i as t,l as n,n as r,r as i,s as a,t as o}from"./
|
|
1
|
+
import{c as e,i as t,l as n,n as r,r as i,s as a,t as o}from"./server-DnEpYtlk.js";export{o as createLogger,t as createMockMiddleware,r as logLevels,i as mockWebSocket,a as processMockData,e as processRawData,n as sortByValidator};
|
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,2 @@
|
|
|
1
|
-
import { C as
|
|
2
|
-
import formidable from "formidable";
|
|
3
|
-
|
|
4
|
-
//#region src/types/index.d.ts
|
|
5
|
-
type FormidableFile = formidable.File | formidable.File[];
|
|
6
|
-
//#endregion
|
|
1
|
+
import { C as MockRequest, D as GetCookieOption, E as CookiesOption, O as SetCookieOption, S as Method, T as ResponseBody, _ as RecordedRequest, a as MockErrorConfig, b as ExtraRequest, c as LogLevel, d as MockMatchSpecialPriority, f as MockServerPluginOptions, g as RecordedReq, h as RecordedMeta, i as WebSocketSetupContext, l as LogType, m as RecordOptions, n as MockOptions, o as MockHttpItem, p as ServerBuildOption, r as MockWebsocketItem, s as BodyParserOptions, t as FormidableFile, u as MockMatchPriority, v as RecordedRes, w as MockResponse, x as Headers, y as ResolvedRecordOptions } from "./index-HOrR1VyK.js";
|
|
7
2
|
export { BodyParserOptions, CookiesOption, ExtraRequest, FormidableFile, GetCookieOption, Headers, LogLevel, LogType, Method, MockErrorConfig, MockHttpItem, MockMatchPriority, MockMatchSpecialPriority, MockOptions, MockRequest, MockResponse, MockServerPluginOptions, MockWebsocketItem, RecordOptions, RecordedMeta, RecordedReq, RecordedRequest, RecordedRes, ResolvedRecordOptions, ResponseBody, ServerBuildOption, SetCookieOption, WebSocketSetupContext };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vite-plugin-mock-dev-server",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.1.
|
|
4
|
+
"version": "2.1.1",
|
|
5
5
|
"description": "Vite Plugin for API mock dev server.",
|
|
6
6
|
"author": "pengzhanbo <q942450674@outlook.com> (https://github.com/pengzhanbo)",
|
|
7
7
|
"license": "MIT",
|
|
@@ -77,14 +77,14 @@
|
|
|
77
77
|
"local-pkg": "^1.1.2",
|
|
78
78
|
"mime-types": "^3.0.2",
|
|
79
79
|
"path-to-regexp": "^8.3.0",
|
|
80
|
-
"picomatch": "^4.0.
|
|
80
|
+
"picomatch": "^4.0.4",
|
|
81
81
|
"tinyglobby": "^0.2.15",
|
|
82
|
-
"ws": "^8.
|
|
82
|
+
"ws": "^8.20.0"
|
|
83
83
|
},
|
|
84
84
|
"devDependencies": {
|
|
85
|
-
"esbuild": "^0.27.
|
|
86
|
-
"rolldown": "^1.0.0-rc.
|
|
87
|
-
"vite": "^8.0.
|
|
85
|
+
"esbuild": "^0.27.4",
|
|
86
|
+
"rolldown": "^1.0.0-rc.12",
|
|
87
|
+
"vite": "^8.0.2",
|
|
88
88
|
"zstd-codec": "^0.1.5"
|
|
89
89
|
},
|
|
90
90
|
"publishConfig": {
|
|
File without changes
|