@delon/mock 19.1.0 → 20.0.0-beta.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/fesm2022/mock.mjs CHANGED
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, makeEnvironmentProviders, Injectable, Optional, Inject, inject } from '@angular/core';
3
- import * as i1 from '@delon/util/config';
4
- import { HttpErrorResponse, HttpResponseBase, HttpResponse } from '@angular/common/http';
5
- import { of, isObservable, from, map, switchMap, throwError, delay as delay$1 } from 'rxjs';
2
+ import { InjectionToken, makeEnvironmentProviders, inject, Injectable } from '@angular/core';
3
+ import { AlainConfigService } from '@delon/util/config';
4
+ import { HttpErrorResponse, HttpResponse, HttpResponseBase } from '@angular/common/http';
5
+ import { of, from, isObservable, map, switchMap, throwError, delay as delay$1 } from 'rxjs';
6
6
  import { deepCopy } from '@delon/util/other';
7
7
 
8
8
  class MockStatusError {
@@ -27,11 +27,13 @@ function provideMockConfig(config) {
27
27
  }
28
28
 
29
29
  class MockService {
30
+ cogSrv = inject(AlainConfigService);
31
+ options = inject(DELON_MOCK_CONFIG, { optional: true });
30
32
  cached = [];
31
33
  config;
32
- constructor(cogSrv, options) {
33
- this.config = cogSrv.merge('mock', MOCK_DEFULAT_CONFIG);
34
- this.setData(options?.data);
34
+ constructor() {
35
+ this.config = this.cogSrv.merge('mock', MOCK_DEFULAT_CONFIG);
36
+ this.setData(this.options?.data);
35
37
  }
36
38
  /**
37
39
  * Reset request data
@@ -154,18 +156,13 @@ class MockService {
154
156
  ngOnDestroy() {
155
157
  this.clearCache();
156
158
  }
157
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: MockService, deps: [{ token: i1.AlainConfigService }, { token: DELON_MOCK_CONFIG, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
158
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: MockService, providedIn: 'root' });
159
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: MockService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
160
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: MockService, providedIn: 'root' });
159
161
  }
160
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.1", ngImport: i0, type: MockService, decorators: [{
162
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.4", ngImport: i0, type: MockService, decorators: [{
161
163
  type: Injectable,
162
164
  args: [{ providedIn: 'root' }]
163
- }], ctorParameters: () => [{ type: i1.AlainConfigService }, { type: undefined, decorators: [{
164
- type: Optional
165
- }, {
166
- type: Inject,
167
- args: [DELON_MOCK_CONFIG]
168
- }] }] });
165
+ }], ctorParameters: () => [] });
169
166
 
170
167
  const mockInterceptor = (req, next) => {
171
168
  const src = inject(MockService);
@@ -1 +1 @@
1
- {"version":3,"file":"mock.mjs","sources":["../../../../packages/mock/src/status.error.ts","../../../../packages/mock/src/mock.config.ts","../../../../packages/mock/src/provide.ts","../../../../packages/mock/src/mock.service.ts","../../../../packages/mock/src/mock.interceptor.ts","../../../../packages/mock/src/utils.ts","../../../../packages/mock/mock.ts"],"sourcesContent":["export class MockStatusError {\n statusText?: string;\n\n constructor(\n public status: number,\n public error?: any\n ) {}\n}\n","import type { AlainMockConfig } from '@delon/util/config';\n\nexport const MOCK_DEFULAT_CONFIG: AlainMockConfig = {\n delay: 300,\n force: false,\n log: true\n};\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nimport { MockOptions } from './interface';\n\nexport const DELON_MOCK_CONFIG = new InjectionToken<MockOptions>('alain-mock-config');\n\nexport function provideMockConfig(config?: MockOptions): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: DELON_MOCK_CONFIG, useValue: config }]);\n}\n","import { Inject, Injectable, OnDestroy, Optional } from '@angular/core';\n\nimport { AlainConfigService, AlainMockConfig } from '@delon/util/config';\n\nimport { MockCachedRule, MockOptions, MockRule } from './interface';\nimport { MOCK_DEFULAT_CONFIG } from './mock.config';\nimport { DELON_MOCK_CONFIG } from './provide';\n\n@Injectable({ providedIn: 'root' })\nexport class MockService implements OnDestroy {\n private cached: MockCachedRule[] = [];\n readonly config: AlainMockConfig;\n\n constructor(cogSrv: AlainConfigService, @Optional() @Inject(DELON_MOCK_CONFIG) options?: MockOptions) {\n this.config = cogSrv.merge('mock', MOCK_DEFULAT_CONFIG)!;\n this.setData(options?.data);\n }\n\n /**\n * Reset request data\n *\n * 重新设置请求数据\n */\n setData(data: any): void {\n this.applyMock(data);\n }\n\n // #region parse rule\n\n private applyMock(data: any): void {\n this.cached = [];\n try {\n this.realApplyMock(data);\n } catch (e) {\n this.outputError(e);\n }\n }\n\n private realApplyMock(data: any): void {\n if (!data) return;\n Object.keys(data).forEach((key: string) => {\n const rules = data[key];\n if (!rules) return;\n Object.keys(rules).forEach((ruleKey: string) => {\n const value = rules[ruleKey];\n if (!(typeof value === 'function' || typeof value === 'object' || typeof value === 'string')) {\n throw Error(\n `mock value of [${key}-${ruleKey}] should be function or object or string, but got ${typeof value}`\n );\n }\n const rule = this.genRule(ruleKey, value);\n if (['GET', 'POST', 'PUT', 'HEAD', 'DELETE', 'PATCH', 'OPTIONS'].indexOf(rule.method) === -1) {\n throw Error(`method of ${key}-${ruleKey} is not valid`);\n }\n const item = this.cached.find(w => w.url === rule.url && w.method === rule.method);\n if (item) {\n item.callback = rule.callback;\n } else {\n this.cached.push(rule);\n }\n });\n });\n // regular ordering\n this.cached.sort((a, b) => (b.martcher || '').toString().length - (a.martcher || '').toString().length);\n }\n\n private genRule(key: string, callback: any): MockCachedRule {\n let method = 'GET';\n let url = key;\n\n if (key.indexOf(' ') > -1) {\n const splited = key.split(' ');\n method = splited[0].toLowerCase();\n url = splited[1];\n }\n\n let martcher: RegExp | null = null;\n let segments: string[] = [];\n if (~url.indexOf(':')) {\n segments = url!\n .split('/')\n .filter(segment => segment.startsWith(':'))\n .map(v => v.substring(1));\n const reStr = url!\n .split('/')\n .map(segment => (segment.startsWith(':') ? `([^/]+)` : segment))\n .join('/');\n martcher = new RegExp(`^${reStr}`, 'i');\n } else if (/(\\([^)]+\\))/i.test(url)) {\n martcher = new RegExp(url, 'i');\n }\n\n return {\n url,\n martcher,\n segments,\n callback,\n method: method.toUpperCase()\n };\n }\n\n private outputError(error: any): void {\n const filePath = error.message.split(': ')[0];\n const errors = (error.stack as string)\n .split('\\n')\n .filter(line => line.trim().indexOf('at ') !== 0)\n .map(line => line.replace(`${filePath}: `, ''));\n errors.splice(1, 0, '');\n\n console.group();\n console.warn(`==========Failed to parse mock config.==========`);\n console.log(errors.join('\\n'));\n console.groupEnd();\n\n throw error;\n }\n\n // #endregion\n\n getRule(method: string, url: string): MockRule | null {\n method = (method || 'GET').toUpperCase();\n const params: any = {};\n const list = this.cached.filter(w => w.method === method && (w.martcher ? w.martcher.test(url) : w.url === url));\n if (list.length === 0) return null;\n const ret = list.find(w => w.url === url) || list[0];\n if (ret.martcher) {\n const execArr = ret.martcher.exec(url);\n execArr!.slice(1).map((value: string, index: number) => {\n params[ret.segments[index]] = value;\n });\n }\n return {\n url,\n method: ret.method,\n params,\n callback: ret.callback\n };\n }\n\n clearCache(): void {\n this.cached = [];\n }\n\n get rules(): MockCachedRule[] {\n return this.cached;\n }\n\n ngOnDestroy(): void {\n this.clearCache();\n }\n}\n","import { HttpErrorResponse, HttpResponse, HttpResponseBase, HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Observable, of, throwError, delay, isObservable, from, map, switchMap } from 'rxjs';\n\nimport { deepCopy } from '@delon/util/other';\n\nimport { MockRequest } from './interface';\nimport { MockService } from './mock.service';\nimport { MockStatusError } from './status.error';\n\nexport const mockInterceptor: HttpInterceptorFn = (req, next) => {\n const src = inject(MockService);\n const config = src.config;\n const rule = src.getRule(req.method, req.url.split('?')[0]);\n if (!rule && !config.force) {\n return next(req);\n }\n\n let res$: Observable<any>;\n switch (typeof rule!.callback) {\n case 'function': {\n const mockRequest: MockRequest = {\n original: req,\n body: req.body,\n queryString: {},\n headers: {},\n params: rule!.params\n };\n const urlParams = req.url.split('?');\n if (urlParams.length > 1) {\n urlParams[1].split('&').forEach(item => {\n const itemArr = item.split('=');\n const key = itemArr[0];\n const value = itemArr[1];\n // is array\n if (Object.keys(mockRequest.queryString).includes(key)) {\n if (!Array.isArray(mockRequest.queryString[key])) {\n mockRequest.queryString[key] = [mockRequest.queryString[key]];\n }\n mockRequest.queryString[key].push(value);\n } else {\n mockRequest.queryString[key] = value;\n }\n });\n }\n req.params.keys().forEach(key => (mockRequest.queryString[key] = req.params.get(key)));\n req.headers.keys().forEach(key => (mockRequest.headers[key] = req.headers.get(key)));\n\n try {\n const fnRes = rule!.callback.call(this, mockRequest);\n res$ = isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes));\n } catch (e: any) {\n res$ = of(\n new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: e instanceof MockStatusError ? e.status : 400,\n statusText: e.statusText || 'Unknown Error',\n error: e.error\n })\n );\n }\n break;\n }\n default:\n res$ = of(rule!.callback);\n break;\n }\n\n res$ = res$.pipe(\n map(res => {\n return res instanceof HttpResponseBase\n ? res\n : new HttpResponse({\n status: 200,\n url: req.url,\n body: deepCopy(res)\n });\n }),\n map((res: HttpResponseBase) => {\n const anyRes: any = res;\n if (anyRes.body) {\n anyRes.body = deepCopy(anyRes.body);\n }\n if (config.log) {\n console.log(`%c👽${req.method}->${req.urlWithParams}->request`, 'background:#000;color:#bada55', req);\n console.log(`%c👽${req.method}->${req.urlWithParams}->response`, 'background:#000;color:#bada55', res);\n }\n return res;\n }),\n switchMap((res: HttpResponseBase) => (res instanceof HttpErrorResponse ? throwError(() => res) : of(res)))\n );\n\n return res$.pipe(delay(config.delay!));\n};\n","/**\n * Used to simulate delays\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\n/**\n * Return a random number\n */\nexport function r(min = 1, max = 100): number {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["this","delay"],"mappings":"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"}
1
+ {"version":3,"file":"mock.mjs","sources":["../../../../packages/mock/src/status.error.ts","../../../../packages/mock/src/mock.config.ts","../../../../packages/mock/src/provide.ts","../../../../packages/mock/src/mock.service.ts","../../../../packages/mock/src/mock.interceptor.ts","../../../../packages/mock/src/utils.ts","../../../../packages/mock/mock.ts"],"sourcesContent":["export class MockStatusError {\n statusText?: string;\n\n constructor(\n public status: number,\n public error?: any\n ) {}\n}\n","import type { AlainMockConfig } from '@delon/util/config';\n\nexport const MOCK_DEFULAT_CONFIG: AlainMockConfig = {\n delay: 300,\n force: false,\n log: true\n};\n","import { EnvironmentProviders, InjectionToken, makeEnvironmentProviders } from '@angular/core';\n\nimport { MockOptions } from './interface';\n\nexport const DELON_MOCK_CONFIG = new InjectionToken<MockOptions>('alain-mock-config');\n\nexport function provideMockConfig(config?: MockOptions): EnvironmentProviders {\n return makeEnvironmentProviders([{ provide: DELON_MOCK_CONFIG, useValue: config }]);\n}\n","import { inject, Injectable, OnDestroy } from '@angular/core';\n\nimport { AlainConfigService, AlainMockConfig } from '@delon/util/config';\n\nimport { MockCachedRule, MockRule } from './interface';\nimport { MOCK_DEFULAT_CONFIG } from './mock.config';\nimport { DELON_MOCK_CONFIG } from './provide';\n\n@Injectable({ providedIn: 'root' })\nexport class MockService implements OnDestroy {\n private readonly cogSrv = inject(AlainConfigService);\n private readonly options = inject(DELON_MOCK_CONFIG, { optional: true });\n private cached: MockCachedRule[] = [];\n readonly config: AlainMockConfig;\n\n constructor() {\n this.config = this.cogSrv.merge('mock', MOCK_DEFULAT_CONFIG)!;\n this.setData(this.options?.data);\n }\n\n /**\n * Reset request data\n *\n * 重新设置请求数据\n */\n setData(data: any): void {\n this.applyMock(data);\n }\n\n // #region parse rule\n\n private applyMock(data: any): void {\n this.cached = [];\n try {\n this.realApplyMock(data);\n } catch (e) {\n this.outputError(e);\n }\n }\n\n private realApplyMock(data: any): void {\n if (!data) return;\n Object.keys(data).forEach((key: string) => {\n const rules = data[key];\n if (!rules) return;\n Object.keys(rules).forEach((ruleKey: string) => {\n const value = rules[ruleKey];\n if (!(typeof value === 'function' || typeof value === 'object' || typeof value === 'string')) {\n throw Error(\n `mock value of [${key}-${ruleKey}] should be function or object or string, but got ${typeof value}`\n );\n }\n const rule = this.genRule(ruleKey, value);\n if (['GET', 'POST', 'PUT', 'HEAD', 'DELETE', 'PATCH', 'OPTIONS'].indexOf(rule.method) === -1) {\n throw Error(`method of ${key}-${ruleKey} is not valid`);\n }\n const item = this.cached.find(w => w.url === rule.url && w.method === rule.method);\n if (item) {\n item.callback = rule.callback;\n } else {\n this.cached.push(rule);\n }\n });\n });\n // regular ordering\n this.cached.sort((a, b) => (b.martcher || '').toString().length - (a.martcher || '').toString().length);\n }\n\n private genRule(key: string, callback: any): MockCachedRule {\n let method = 'GET';\n let url = key;\n\n if (key.indexOf(' ') > -1) {\n const splited = key.split(' ');\n method = splited[0].toLowerCase();\n url = splited[1];\n }\n\n let martcher: RegExp | null = null;\n let segments: string[] = [];\n if (~url.indexOf(':')) {\n segments = url!\n .split('/')\n .filter(segment => segment.startsWith(':'))\n .map(v => v.substring(1));\n const reStr = url!\n .split('/')\n .map(segment => (segment.startsWith(':') ? `([^/]+)` : segment))\n .join('/');\n martcher = new RegExp(`^${reStr}`, 'i');\n } else if (/(\\([^)]+\\))/i.test(url)) {\n martcher = new RegExp(url, 'i');\n }\n\n return {\n url,\n martcher,\n segments,\n callback,\n method: method.toUpperCase()\n };\n }\n\n private outputError(error: any): void {\n const filePath = error.message.split(': ')[0];\n const errors = (error.stack as string)\n .split('\\n')\n .filter(line => line.trim().indexOf('at ') !== 0)\n .map(line => line.replace(`${filePath}: `, ''));\n errors.splice(1, 0, '');\n\n console.group();\n console.warn(`==========Failed to parse mock config.==========`);\n console.log(errors.join('\\n'));\n console.groupEnd();\n\n throw error;\n }\n\n // #endregion\n\n getRule(method: string, url: string): MockRule | null {\n method = (method || 'GET').toUpperCase();\n const params: any = {};\n const list = this.cached.filter(w => w.method === method && (w.martcher ? w.martcher.test(url) : w.url === url));\n if (list.length === 0) return null;\n const ret = list.find(w => w.url === url) || list[0];\n if (ret.martcher) {\n const execArr = ret.martcher.exec(url);\n execArr!.slice(1).map((value: string, index: number) => {\n params[ret.segments[index]] = value;\n });\n }\n return {\n url,\n method: ret.method,\n params,\n callback: ret.callback\n };\n }\n\n clearCache(): void {\n this.cached = [];\n }\n\n get rules(): MockCachedRule[] {\n return this.cached;\n }\n\n ngOnDestroy(): void {\n this.clearCache();\n }\n}\n","import { HttpErrorResponse, HttpResponse, HttpResponseBase, HttpInterceptorFn } from '@angular/common/http';\nimport { inject } from '@angular/core';\nimport { Observable, of, throwError, delay, isObservable, from, map, switchMap } from 'rxjs';\n\nimport { deepCopy } from '@delon/util/other';\n\nimport { MockRequest } from './interface';\nimport { MockService } from './mock.service';\nimport { MockStatusError } from './status.error';\n\nexport const mockInterceptor: HttpInterceptorFn = (req, next) => {\n const src = inject(MockService);\n const config = src.config;\n const rule = src.getRule(req.method, req.url.split('?')[0]);\n if (!rule && !config.force) {\n return next(req);\n }\n\n let res$: Observable<any>;\n switch (typeof rule!.callback) {\n case 'function': {\n const mockRequest: MockRequest = {\n original: req,\n body: req.body,\n queryString: {},\n headers: {},\n params: rule!.params\n };\n const urlParams = req.url.split('?');\n if (urlParams.length > 1) {\n urlParams[1].split('&').forEach(item => {\n const itemArr = item.split('=');\n const key = itemArr[0];\n const value = itemArr[1];\n // is array\n if (Object.keys(mockRequest.queryString).includes(key)) {\n if (!Array.isArray(mockRequest.queryString[key])) {\n mockRequest.queryString[key] = [mockRequest.queryString[key]];\n }\n mockRequest.queryString[key].push(value);\n } else {\n mockRequest.queryString[key] = value;\n }\n });\n }\n req.params.keys().forEach(key => (mockRequest.queryString[key] = req.params.get(key)));\n req.headers.keys().forEach(key => (mockRequest.headers[key] = req.headers.get(key)));\n\n try {\n const fnRes = rule!.callback.call(this, mockRequest);\n res$ = isObservable(fnRes) ? fnRes : from(Promise.resolve(fnRes));\n } catch (e: any) {\n res$ = of(\n new HttpErrorResponse({\n url: req.url,\n headers: req.headers,\n status: e instanceof MockStatusError ? e.status : 400,\n statusText: e.statusText || 'Unknown Error',\n error: e.error\n })\n );\n }\n break;\n }\n default:\n res$ = of(rule!.callback);\n break;\n }\n\n res$ = res$.pipe(\n map(res => {\n return res instanceof HttpResponseBase\n ? res\n : new HttpResponse({\n status: 200,\n url: req.url,\n body: deepCopy(res)\n });\n }),\n map((res: HttpResponseBase) => {\n const anyRes: any = res;\n if (anyRes.body) {\n anyRes.body = deepCopy(anyRes.body);\n }\n if (config.log) {\n console.log(`%c👽${req.method}->${req.urlWithParams}->request`, 'background:#000;color:#bada55', req);\n console.log(`%c👽${req.method}->${req.urlWithParams}->response`, 'background:#000;color:#bada55', res);\n }\n return res;\n }),\n switchMap((res: HttpResponseBase) => (res instanceof HttpErrorResponse ? throwError(() => res) : of(res)))\n );\n\n return res$.pipe(delay(config.delay!));\n};\n","/**\n * Used to simulate delays\n */\nexport function delay(ms: number): Promise<void> {\n return new Promise(resolve => setTimeout(resolve, ms));\n}\n\n/**\n * Return a random number\n */\nexport function r(min = 1, max = 100): number {\n return Math.floor(Math.random() * (max - min + 1) + min);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["this","delay"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,5 +1,84 @@
1
+ import { HttpRequest, HttpInterceptorFn } from '@angular/common/http';
2
+ import { Observable } from 'rxjs';
3
+ import * as i0 from '@angular/core';
4
+ import { OnDestroy, InjectionToken, EnvironmentProviders } from '@angular/core';
5
+ import { AlainMockConfig } from '@delon/util/config';
6
+
7
+ type MockCallback = any | Observable<any> | Promise<any>;
8
+ interface MockOptions {
9
+ data?: any;
10
+ }
11
+ interface MockCachedRule {
12
+ [key: string]: any;
13
+ method: string;
14
+ url: string;
15
+ martcher: RegExp | null;
16
+ segments: string[];
17
+ callback(req: MockRequest): MockCallback;
18
+ }
19
+ interface MockRule {
20
+ [key: string]: any;
21
+ method: string;
22
+ url: string;
23
+ /** 路由参数 */
24
+ params?: any;
25
+ callback(req: MockRequest): MockCallback;
26
+ }
27
+ interface MockRequest {
28
+ /** 路由参数 */
29
+ params?: any;
30
+ /** URL参数 */
31
+ queryString?: any;
32
+ headers?: any;
33
+ body?: any;
34
+ /** 原始 `HttpRequest` */
35
+ original: HttpRequest<any>;
36
+ }
37
+
38
+ declare class MockStatusError {
39
+ status: number;
40
+ error?: any | undefined;
41
+ statusText?: string;
42
+ constructor(status: number, error?: any | undefined);
43
+ }
44
+
45
+ declare class MockService implements OnDestroy {
46
+ private readonly cogSrv;
47
+ private readonly options;
48
+ private cached;
49
+ readonly config: AlainMockConfig;
50
+ constructor();
51
+ /**
52
+ * Reset request data
53
+ *
54
+ * 重新设置请求数据
55
+ */
56
+ setData(data: any): void;
57
+ private applyMock;
58
+ private realApplyMock;
59
+ private genRule;
60
+ private outputError;
61
+ getRule(method: string, url: string): MockRule | null;
62
+ clearCache(): void;
63
+ get rules(): MockCachedRule[];
64
+ ngOnDestroy(): void;
65
+ static ɵfac: i0.ɵɵFactoryDeclaration<MockService, never>;
66
+ static ɵprov: i0.ɵɵInjectableDeclaration<MockService>;
67
+ }
68
+
69
+ declare const mockInterceptor: HttpInterceptorFn;
70
+
71
+ declare const DELON_MOCK_CONFIG: InjectionToken<MockOptions>;
72
+ declare function provideMockConfig(config?: MockOptions): EnvironmentProviders;
73
+
1
74
  /**
2
- * Generated bundle index. Do not edit.
75
+ * Used to simulate delays
3
76
  */
4
- /// <amd-module name="@delon/mock" />
5
- export * from './public_api';
77
+ declare function delay(ms: number): Promise<void>;
78
+ /**
79
+ * Return a random number
80
+ */
81
+ declare function r(min?: number, max?: number): number;
82
+
83
+ export { DELON_MOCK_CONFIG, MockService, MockStatusError, delay, mockInterceptor, provideMockConfig, r };
84
+ export type { MockCachedRule, MockCallback, MockOptions, MockRequest, MockRule };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@delon/mock",
3
- "version": "19.1.0",
3
+ "version": "20.0.0-beta.0",
4
4
  "author": "cipchk<cipchk@qq.com>",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -28,7 +28,7 @@
28
28
  "dependencies": {
29
29
  "mockjs": "^1.1.0",
30
30
  "@types/mockjs": "^1.0.10",
31
- "@delon/util": "^19.1.0",
31
+ "@delon/util": "^20.0.0-beta.0",
32
32
  "tslib": "^2.3.0"
33
33
  },
34
34
  "module": "fesm2022/mock.mjs",
package/public_api.d.ts DELETED
@@ -1,6 +0,0 @@
1
- export * from './src/interface';
2
- export * from './src/status.error';
3
- export * from './src/mock.service';
4
- export * from './src/mock.interceptor';
5
- export * from './src/provide';
6
- export * from './src/utils';
@@ -1,32 +0,0 @@
1
- import { type HttpRequest } from '@angular/common/http';
2
- import type { Observable } from 'rxjs';
3
- export type MockCallback = any | Observable<any> | Promise<any>;
4
- export interface MockOptions {
5
- data?: any;
6
- }
7
- export interface MockCachedRule {
8
- [key: string]: any;
9
- method: string;
10
- url: string;
11
- martcher: RegExp | null;
12
- segments: string[];
13
- callback(req: MockRequest): MockCallback;
14
- }
15
- export interface MockRule {
16
- [key: string]: any;
17
- method: string;
18
- url: string;
19
- /** 路由参数 */
20
- params?: any;
21
- callback(req: MockRequest): MockCallback;
22
- }
23
- export interface MockRequest {
24
- /** 路由参数 */
25
- params?: any;
26
- /** URL参数 */
27
- queryString?: any;
28
- headers?: any;
29
- body?: any;
30
- /** 原始 `HttpRequest` */
31
- original: HttpRequest<any>;
32
- }
@@ -1,2 +0,0 @@
1
- import type { AlainMockConfig } from '@delon/util/config';
2
- export declare const MOCK_DEFULAT_CONFIG: AlainMockConfig;
@@ -1,2 +0,0 @@
1
- import { HttpInterceptorFn } from '@angular/common/http';
2
- export declare const mockInterceptor: HttpInterceptorFn;
@@ -1,25 +0,0 @@
1
- import { OnDestroy } from '@angular/core';
2
- import { AlainConfigService, AlainMockConfig } from '@delon/util/config';
3
- import { MockCachedRule, MockOptions, MockRule } from './interface';
4
- import * as i0 from "@angular/core";
5
- export declare class MockService implements OnDestroy {
6
- private cached;
7
- readonly config: AlainMockConfig;
8
- constructor(cogSrv: AlainConfigService, options?: MockOptions);
9
- /**
10
- * Reset request data
11
- *
12
- * 重新设置请求数据
13
- */
14
- setData(data: any): void;
15
- private applyMock;
16
- private realApplyMock;
17
- private genRule;
18
- private outputError;
19
- getRule(method: string, url: string): MockRule | null;
20
- clearCache(): void;
21
- get rules(): MockCachedRule[];
22
- ngOnDestroy(): void;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<MockService, [null, { optional: true; }]>;
24
- static ɵprov: i0.ɵɵInjectableDeclaration<MockService>;
25
- }
package/src/provide.d.ts DELETED
@@ -1,4 +0,0 @@
1
- import { EnvironmentProviders, InjectionToken } from '@angular/core';
2
- import { MockOptions } from './interface';
3
- export declare const DELON_MOCK_CONFIG: InjectionToken<MockOptions>;
4
- export declare function provideMockConfig(config?: MockOptions): EnvironmentProviders;
@@ -1,6 +0,0 @@
1
- export declare class MockStatusError {
2
- status: number;
3
- error?: any | undefined;
4
- statusText?: string;
5
- constructor(status: number, error?: any | undefined);
6
- }
package/src/utils.d.ts DELETED
@@ -1,8 +0,0 @@
1
- /**
2
- * Used to simulate delays
3
- */
4
- export declare function delay(ms: number): Promise<void>;
5
- /**
6
- * Return a random number
7
- */
8
- export declare function r(min?: number, max?: number): number;