feat: change types
This commit is contained in:
		
							
								
								
									
										213
									
								
								jest.config.ts
									
									
									
									
									
								
							
							
						
						
									
										213
									
								
								jest.config.ts
									
									
									
									
									
								
							@@ -1,213 +0,0 @@
 | 
			
		||||
// For a detailed explanation regarding each configuration property, visit:
 | 
			
		||||
// https://jestjs.io/docs/en/configuration.html
 | 
			
		||||
import type { Config } from 'jest';
 | 
			
		||||
import { defaults } from 'jest-config';
 | 
			
		||||
 | 
			
		||||
const config: Config = {
 | 
			
		||||
  // All imported modules in your tests should be mocked automatically
 | 
			
		||||
  // automock: false,
 | 
			
		||||
 | 
			
		||||
  // Stop running tests after `n` failures
 | 
			
		||||
  // bail: 0,
 | 
			
		||||
  globals: {
 | 
			
		||||
    window: {},
 | 
			
		||||
  },
 | 
			
		||||
  // The directory where Jest should store its cached dependency information
 | 
			
		||||
  // cacheDirectory: "/private/var/folders/y3/bq7hhg1x02x_3xqrx11sql840000gn/T/jest_dx",
 | 
			
		||||
 | 
			
		||||
  // Automatically clear mock calls and instances between every test
 | 
			
		||||
  clearMocks: true,
 | 
			
		||||
 | 
			
		||||
  // Indicates whether the coverage information should be collected while executing the test
 | 
			
		||||
  // collectCoverage: false,
 | 
			
		||||
 | 
			
		||||
  // An array of glob patterns indicating a set of files for which coverage information should be collected
 | 
			
		||||
  // collectCoverageFrom: undefined,
 | 
			
		||||
 | 
			
		||||
  // The directory where Jest should output its coverage files
 | 
			
		||||
  coverageDirectory: 'coverage',
 | 
			
		||||
 | 
			
		||||
  // An array of regexp pattern strings used to skip coverage collection
 | 
			
		||||
  // coveragePathIgnorePatterns: [
 | 
			
		||||
  //   "/node_modules/"
 | 
			
		||||
  // ],
 | 
			
		||||
 | 
			
		||||
  // Indicates which provider should be used to instrument code for coverage
 | 
			
		||||
  // coverageProvider: "babel",
 | 
			
		||||
 | 
			
		||||
  // A list of reporter names that Jest uses when writing coverage reports
 | 
			
		||||
  // coverageReporters: [
 | 
			
		||||
  //   "json",
 | 
			
		||||
  //   "text",
 | 
			
		||||
  //   "lcov",
 | 
			
		||||
  //   "clover"
 | 
			
		||||
  // ],
 | 
			
		||||
 | 
			
		||||
  // An object that configures minimum threshold enforcement for coverage results
 | 
			
		||||
  // coverageThreshold: undefined,
 | 
			
		||||
 | 
			
		||||
  // A path to a custom dependency extractor
 | 
			
		||||
  // dependencyExtractor: undefined,
 | 
			
		||||
 | 
			
		||||
  // Make calling deprecated APIs throw helpful error messages
 | 
			
		||||
  // errorOnDeprecated: false,
 | 
			
		||||
 | 
			
		||||
  // Force coverage collection from ignored files using an array of glob patterns
 | 
			
		||||
  // forceCoverageMatch: [],
 | 
			
		||||
 | 
			
		||||
  // A path to a module which exports an async function that is triggered once before all test suites
 | 
			
		||||
  // globalSetup: undefined,
 | 
			
		||||
 | 
			
		||||
  // A path to a module which exports an async function that is triggered once after all test suites
 | 
			
		||||
  // globalTeardown: undefined,
 | 
			
		||||
 | 
			
		||||
  // A set of global variables that need to be available in all test environments
 | 
			
		||||
  // globals: {},
 | 
			
		||||
 | 
			
		||||
  // The maximum amount of workers used to run your tests. Can be specified as % or a number. E.g. maxWorkers: 10% will use 10% of your CPU amount + 1 as the maximum worker number. maxWorkers: 2 will use a maximum of 2 workers.
 | 
			
		||||
  // maxWorkers: "50%",
 | 
			
		||||
 | 
			
		||||
  // An array of directory names to be searched recursively up from the requiring module's location
 | 
			
		||||
  // moduleDirectories: [
 | 
			
		||||
  //   "node_modules"
 | 
			
		||||
  // ],
 | 
			
		||||
 | 
			
		||||
  // An array of file extensions your modules use
 | 
			
		||||
  // moduleFileExtensions: [
 | 
			
		||||
  //   "js",
 | 
			
		||||
  //   "json",
 | 
			
		||||
  //   "jsx",
 | 
			
		||||
  //   "ts",
 | 
			
		||||
  //   "tsx",
 | 
			
		||||
  //   "node"
 | 
			
		||||
  // ],
 | 
			
		||||
 | 
			
		||||
  // A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
 | 
			
		||||
  // moduleNameMapper: {},
 | 
			
		||||
  // moduleNameMapper: {
 | 
			
		||||
  //   '(.*)': ['<rootDir>/$1', '<rootDir>/$1', '<rootDir>/$1'],
 | 
			
		||||
  // },
 | 
			
		||||
  // moduleNameMapper: {
 | 
			
		||||
  //   '@/(.*)': ['<rootDir>/$1', '<rootDir>/$1', '<rootDir>/$1'],
 | 
			
		||||
  // },
 | 
			
		||||
 | 
			
		||||
  // An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
 | 
			
		||||
  // modulePathIgnorePatterns: [],
 | 
			
		||||
 | 
			
		||||
  // Activates notifications for test results
 | 
			
		||||
  // notify: false,
 | 
			
		||||
 | 
			
		||||
  // An enum that specifies notification mode. Requires { notify: true }
 | 
			
		||||
  // notifyMode: "failure-change",
 | 
			
		||||
 | 
			
		||||
  // A preset that is used as a base for Jest's configuration
 | 
			
		||||
  // preset: undefined,
 | 
			
		||||
  // preset: 'ts-jest',
 | 
			
		||||
  preset: 'ts-jest/presets/default-esm',
 | 
			
		||||
  // transform: {
 | 
			
		||||
  //   '^.+\\.ts?$': 'babel-jest',
 | 
			
		||||
  // },
 | 
			
		||||
  transform: {
 | 
			
		||||
    // '^.+\\.(ts|js)x?$': 'ts-jest',
 | 
			
		||||
    '^.+\\.(ts|js)x?$': ['ts-jest', { useESM: true }],
 | 
			
		||||
  },
 | 
			
		||||
 | 
			
		||||
  // "testRegex": "/test/.*\\.(test|spec)\\.(ts)$",
 | 
			
		||||
 | 
			
		||||
  // Run tests from one or more projects
 | 
			
		||||
  // projects: undefined,
 | 
			
		||||
 | 
			
		||||
  // Use this configuration option to add custom reporters to Jest
 | 
			
		||||
  // reporters: undefined,
 | 
			
		||||
 | 
			
		||||
  // Automatically reset mock state between every test
 | 
			
		||||
  // resetMocks: false,
 | 
			
		||||
 | 
			
		||||
  // Reset the module registry before running each individual test
 | 
			
		||||
  // resetModules: false,
 | 
			
		||||
 | 
			
		||||
  // A path to a custom resolver
 | 
			
		||||
  // resolver: undefined,
 | 
			
		||||
 | 
			
		||||
  // Automatically restore mock state between every test
 | 
			
		||||
  // restoreMocks: false,
 | 
			
		||||
 | 
			
		||||
  // The root directory that Jest should scan for tests and modules within
 | 
			
		||||
  // rootDir: undefined,
 | 
			
		||||
 | 
			
		||||
  // A list of paths to directories that Jest should use to search for files in
 | 
			
		||||
  // roots: [
 | 
			
		||||
  //   "<rootDir>"
 | 
			
		||||
  // ],
 | 
			
		||||
 | 
			
		||||
  // Allows you to use a custom runner instead of Jest's default test runner
 | 
			
		||||
  // runner: "jest-runner",
 | 
			
		||||
 | 
			
		||||
  // The paths to modules that run some code to configure or set up the testing environment before each test
 | 
			
		||||
  // setupFiles: [],
 | 
			
		||||
 | 
			
		||||
  // A list of paths to modules that run some code to configure or set up the testing framework before each test
 | 
			
		||||
  // setupFilesAfterEnv: [],
 | 
			
		||||
 | 
			
		||||
  // The number of seconds after which a test is considered as slow and reported as such in the results.
 | 
			
		||||
  // slowTestThreshold: 5,
 | 
			
		||||
 | 
			
		||||
  // A list of paths to snapshot serializer modules Jest should use for snapshot testing
 | 
			
		||||
  // snapshotSerializers: [],
 | 
			
		||||
 | 
			
		||||
  // The test environment that will be used for testing
 | 
			
		||||
  // testEnvironment: 'node',
 | 
			
		||||
  testEnvironment: 'node',
 | 
			
		||||
 | 
			
		||||
  // Options that will be passed to the testEnvironment
 | 
			
		||||
  // testEnvironmentOptions: {},
 | 
			
		||||
 | 
			
		||||
  // Adds a location field to test results
 | 
			
		||||
  // testLocationInResults: false,
 | 
			
		||||
 | 
			
		||||
  // The glob patterns Jest uses to detect test files
 | 
			
		||||
  testMatch: ['**/__tests__/**/*.[jt]s?(x)', '**/?(*.)+(spec|test).[tj]s?(x)'],
 | 
			
		||||
 | 
			
		||||
  // An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
 | 
			
		||||
  testPathIgnorePatterns: [
 | 
			
		||||
    '/node_modules/',
 | 
			
		||||
    '<rootDir>/node_modules/(?!(quill-mention)/)',
 | 
			
		||||
  ],
 | 
			
		||||
 | 
			
		||||
  // The regexp pattern or array of patterns that Jest uses to detect test files
 | 
			
		||||
  // testRegex: [],
 | 
			
		||||
 | 
			
		||||
  // This option allows the use of a custom results processor
 | 
			
		||||
  // testResultsProcessor: undefined,
 | 
			
		||||
 | 
			
		||||
  // This option allows use of a custom test runner
 | 
			
		||||
  // testRunner: "jasmine2",
 | 
			
		||||
 | 
			
		||||
  // This option sets the URL for the jsdom environment. It is reflected in properties such as location.href
 | 
			
		||||
  // testURL: "http://localhost",
 | 
			
		||||
 | 
			
		||||
  // Setting this value to "fake" allows the use of fake timers for functions such as "setTimeout"
 | 
			
		||||
  // timers: "real",
 | 
			
		||||
 | 
			
		||||
  // A map from regular expressions to paths to transformers
 | 
			
		||||
  // transform: undefined,
 | 
			
		||||
 | 
			
		||||
  // An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
 | 
			
		||||
  // transformIgnorePatterns: [
 | 
			
		||||
  //   "/node_modules/",
 | 
			
		||||
  //   "\\.pnp\\.[^\\/]+$"
 | 
			
		||||
  // ],
 | 
			
		||||
 | 
			
		||||
  // An array of regexp pattern strings that are matched against all modules before the module loader will automatically return a mock for them
 | 
			
		||||
  // unmockedModulePathPatterns: undefined,
 | 
			
		||||
 | 
			
		||||
  // Indicates whether each individual test should be reported during the run
 | 
			
		||||
  // verbose: undefined,
 | 
			
		||||
 | 
			
		||||
  // An array of regexp patterns that are matched against all source file paths before re-running tests in watch mode
 | 
			
		||||
  // watchPathIgnorePatterns: [],
 | 
			
		||||
 | 
			
		||||
  // Whether to use watchman for file crawling
 | 
			
		||||
  // watchman: true,
 | 
			
		||||
};
 | 
			
		||||
module.exports = config;
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
{
 | 
			
		||||
  "name": "@kevisual/query",
 | 
			
		||||
  "version": "0.0.9",
 | 
			
		||||
  "version": "0.0.10",
 | 
			
		||||
  "main": "dist/index.js",
 | 
			
		||||
  "module": "dist/index.js",
 | 
			
		||||
  "types": "dist/index.d.ts",
 | 
			
		||||
 
 | 
			
		||||
@@ -14,7 +14,7 @@ type QueryOpts = {
 | 
			
		||||
/**
 | 
			
		||||
 * 前端调用后端QueryRouter
 | 
			
		||||
 */
 | 
			
		||||
export class QueryClient<R = any> extends Query<R> {
 | 
			
		||||
export class QueryClient extends Query {
 | 
			
		||||
  tokenName: string;
 | 
			
		||||
  storage: Storage;
 | 
			
		||||
  token: string;
 | 
			
		||||
 
 | 
			
		||||
@@ -55,7 +55,7 @@ type DataOpts = Partial<QueryOpts> & {
 | 
			
		||||
 *
 | 
			
		||||
 * U是参数 V是返回值
 | 
			
		||||
 */
 | 
			
		||||
export class Query<R = any> {
 | 
			
		||||
export class Query {
 | 
			
		||||
  adapter: typeof adapter;
 | 
			
		||||
  url: string;
 | 
			
		||||
  beforeRequest?: Fn;
 | 
			
		||||
@@ -78,7 +78,7 @@ export class Query<R = any> {
 | 
			
		||||
   * @param options 请求配置
 | 
			
		||||
   * @returns 请求结果
 | 
			
		||||
   */
 | 
			
		||||
  async get<T = any, S = any>(params: Record<string, any> & Data & T, options?: DataOpts): Promise<Result<R & S>> {
 | 
			
		||||
  async get<R = any, P = any>(params: Data & P, options?: DataOpts): Promise<Result<R>> {
 | 
			
		||||
    return this.post(params, options);
 | 
			
		||||
  }
 | 
			
		||||
  /**
 | 
			
		||||
@@ -89,7 +89,7 @@ export class Query<R = any> {
 | 
			
		||||
   * @param options 请求配置
 | 
			
		||||
   * @returns 请求结果
 | 
			
		||||
   */
 | 
			
		||||
  async post<T = any, S = any>(body: Record<string, any> & Data & T, options?: DataOpts): Promise<Result<R & S>> {
 | 
			
		||||
  async post<R = any, P = any>(body: Data & P, options?: DataOpts): Promise<Result<R>> {
 | 
			
		||||
    const url = options?.url || this.url;
 | 
			
		||||
    const headers = { ...this.headers, ...options?.headers };
 | 
			
		||||
    const adapter = options?.adapter || this.adapter;
 | 
			
		||||
 
 | 
			
		||||
@@ -1,12 +0,0 @@
 | 
			
		||||
import { adapter } from '../src/adapter';
 | 
			
		||||
const hostname = 'localhost:3002';
 | 
			
		||||
 | 
			
		||||
describe('Adapter', () => {
 | 
			
		||||
  // 编写一个测试用例
 | 
			
		||||
  // yarn test --testNamePattern='Adapter'
 | 
			
		||||
  test('Adapter:First', () => {
 | 
			
		||||
    adapter({ url: hostname + '/api/router' }).then((res) => {
 | 
			
		||||
      expect(res).toEqual({ id: 1 });
 | 
			
		||||
    });
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
@@ -1,7 +0,0 @@
 | 
			
		||||
describe('Hello', () => {
 | 
			
		||||
  // 编写一个测试用例
 | 
			
		||||
  // yarn test --testNamePattern='Hello'
 | 
			
		||||
  test('Hello World', () => {
 | 
			
		||||
    console.log('Hello World');
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
@@ -1,17 +0,0 @@
 | 
			
		||||
import { nodeAdapter } from "../src/node-adapter";
 | 
			
		||||
 | 
			
		||||
// tsx test/node-adapter.ts
 | 
			
		||||
const main = async () => {
 | 
			
		||||
  const res = await nodeAdapter({
 | 
			
		||||
    url: 'http://127.0.0.1/api/router',
 | 
			
		||||
    headers: {
 | 
			
		||||
      'Content-Type': 'application/json',
 | 
			
		||||
    },
 | 
			
		||||
    body: {
 | 
			
		||||
      path: 'demo',
 | 
			
		||||
      key: '1',
 | 
			
		||||
    },
 | 
			
		||||
  });
 | 
			
		||||
  console.log(res);
 | 
			
		||||
};
 | 
			
		||||
main();
 | 
			
		||||
@@ -1,25 +0,0 @@
 | 
			
		||||
import { Query } from './../src/index';
 | 
			
		||||
 | 
			
		||||
const query = new Query({ url: '/api/router' });
 | 
			
		||||
 | 
			
		||||
describe('Query', () => {
 | 
			
		||||
  // 编写一个测试用例
 | 
			
		||||
  // yarn test --testNamePattern='Query'
 | 
			
		||||
  test('Query:First', async () => {
 | 
			
		||||
    console.log('Query');
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
// test('query', async () => {
 | 
			
		||||
//   query.get({ id: 1 }).then((res) => {
 | 
			
		||||
//     expect(res).toEqual({ id: 1 });
 | 
			
		||||
//   });
 | 
			
		||||
// }
 | 
			
		||||
 | 
			
		||||
// describe('Hello', () => {
 | 
			
		||||
//   // 编写一个测试用例
 | 
			
		||||
//   // yarn test --testNamePattern='Hello'
 | 
			
		||||
//   test('Hello World', () => {
 | 
			
		||||
//     console.log('Hello World');
 | 
			
		||||
//   });
 | 
			
		||||
// });
 | 
			
		||||
@@ -1,13 +0,0 @@
 | 
			
		||||
import { QueryWs } from '../src/ws';
 | 
			
		||||
 | 
			
		||||
const queryWs = new QueryWs({ url: '/api/ws' });
 | 
			
		||||
 | 
			
		||||
queryWs.listenConnect(() => {
 | 
			
		||||
  console.log('Connected');
 | 
			
		||||
});
 | 
			
		||||
 | 
			
		||||
queryWs.store.getState().setConnected(true);
 | 
			
		||||
queryWs.store.getState().setConnected(false);
 | 
			
		||||
setTimeout(() => {
 | 
			
		||||
  queryWs.store.getState().setConnected(true);
 | 
			
		||||
}, 1000);
 | 
			
		||||
		Reference in New Issue
	
	Block a user