Skip to content

Commit

Permalink
push build files
Browse files Browse the repository at this point in the history
  • Loading branch information
cfl-bot committed May 31, 2024
1 parent 9ba872b commit cdc9d7b
Show file tree
Hide file tree
Showing 4 changed files with 173 additions and 116 deletions.
83 changes: 41 additions & 42 deletions lib/cjs/helpers/rtkQuery.d.ts
Original file line number Diff line number Diff line change
@@ -1,53 +1,52 @@
import type { FetchBaseQueryError } from '@reduxjs/toolkit/query/react';
export type Fields = Record<string, unknown>;
export type TagId = string | number;
export interface Tag<Type extends string> {
type: Type;
id: TagId;
}
/**
* A data model.
* ID: The type of ID.
* ReadAndWrite: The fields that can both be read from and written to.
* ReadOnly: The fields that can only be read from. 'id' is a mandatory
* read-only field.
* WriteOnly: The fields that can only be written to.
* Id: The type of Id.
* Data: The data fields.
*/
export type Model<ID, ReadAndWrite extends Fields = Fields, ReadOnly extends Fields = Fields, WriteOnly extends Fields = Fields> = ReadAndWrite & {
_readOnly: ReadOnly & {
id: ID;
};
_writeOnly: WriteOnly;
};
export type ID<M extends Model<any>> = M['_readOnly']['id'];
export type ReadFields<M extends Model<any>> = Omit<M, '_readOnly' | '_writeOnly'> & M['_readOnly'];
export type WriteFields<M extends Model<any>> = Omit<M, '_readOnly' | '_writeOnly'> & M['_writeOnly'];
export type ReadAndWriteFields<M extends Model<any>> = Omit<M, '_readOnly' | '_writeOnly'> & M['_readOnly'] & M['_writeOnly'];
export type TagArray<Type extends string, M extends Model<any>, LookupField extends keyof ReadFields<M> = 'id'> = Array<{
type: Type;
id: ReadFields<M>[LookupField];
}>;
export type CreateResult<M extends Model<any>> = ReadFields<M>;
export type CreateArg<M extends Model<any>> = WriteFields<M>;
export type BulkCreateResult<M extends Model<any>> = Array<CreateResult<M>>;
export interface BulkCreateArg<M extends Model<any>> {
data: Array<CreateArg<M>>;
}
export type RetrieveResult<M extends Model<any>> = ReadFields<M>;
export type RetrieveArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> = Pick<ReadAndWriteFields<M>, LookupField>;
export interface ListResult<M extends Model<any>> {
export type Model<Id extends TagId, MFields extends Fields = Fields> = {
id: Id;
} & Omit<MFields, 'id'>;
export type Result<M extends Model<any>, MFields extends keyof M = 'id'> = Pick<M, 'id' | MFields>;
export type Arg<M extends Model<any>, MFields extends keyof M> = Pick<M, MFields>;
export type CreateResult<M extends Model<any>, MFields extends keyof M = 'id'> = Result<M, MFields>;
export type CreateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>> = Arg<M, MFields>;
export type BulkCreateResult<M extends Model<any>, MFields extends keyof M = 'id', ExtraFields extends Fields = Fields> = Array<Result<M, MFields> & ExtraFields>;
export type BulkCreateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = Array<Arg<M, MFields> & ExtraFields>;
export type RetrieveResult<M extends Model<any>, MFields extends keyof M = 'id'> = Result<M, MFields>;
export type RetrieveArg<M extends Model<any>> = M['id'];
export interface ListResult<M extends Model<any>, MFields extends keyof M = 'id', ExtraFields extends Fields = Fields> {
count: number;
offset: number;
limit: number;
maxLimit: number;
data: Array<RetrieveResult<M>>;
}
export type ListArg<Filters extends Fields = Fields> = null | Partial<Filters>;
export type UpdateResult<M extends Model<any>> = ReadFields<M>;
export type UpdateArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> = Pick<ReadAndWriteFields<M>, LookupField> & Partial<WriteFields<M>>;
export type BulkUpdateResult<M extends Model<any>> = Array<UpdateResult<M>>;
export interface BulkUpdateArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> {
data: Array<UpdateArg<M, LookupField>>;
data: Array<Result<M, MFields> & ExtraFields>;
}
export type ListArg<Filters extends Fields = Fields> = {
limit: number;
offset: number;
} & Partial<Omit<Filters, 'limit' | 'offset'>>;
export type UpdateResult<M extends Model<any>, MFields extends keyof M = 'id'> = Result<M, MFields>;
export type UpdateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = [M['id'], Arg<M, MFields> & ExtraFields];
export type BulkUpdateResult<M extends Model<any>, MFields extends keyof M = 'id', ExtraFields extends Fields = Fields> = Array<Result<M, MFields> & ExtraFields>;
export type BulkUpdateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = Record<M['id'], Arg<M, MFields> & ExtraFields>;
export type PartialUpdateResult<M extends Model<any>, MFields extends keyof M = 'id'> = Result<M, MFields>;
export type PartialUpdateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = [M['id'], Partial<Arg<M, MFields> & ExtraFields>];
export type BulkPartialUpdateResult<M extends Model<any>, MFields extends keyof M = 'id', ExtraFields extends Fields = Fields> = Array<Result<M, MFields> & ExtraFields>;
export type BulkPartialUpdateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = Record<M['id'], Partial<Arg<M, MFields> & ExtraFields>>;
export type DestroyResult = null;
export type DestroyArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> = Pick<ReadAndWriteFields<M>, LookupField>;
export type DestroyArg<M extends Model<any>> = M['id'];
export type BulkDestroyResult = null;
export interface BulkDestroyArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> {
LookupField: Array<DestroyArg<M, LookupField>[LookupField]>;
}
export declare function searchParamsToString(arg: ListArg): string;
export declare function tagData<Type extends string, M extends Model<any>, LookupField extends keyof ReadFields<M> = 'id'>(result: ListResult<M> | BulkCreateResult<M>, type: Type, lookupField?: LookupField): TagArray<Type, M, LookupField>;
export type BulkDestroyArg<M extends Model<any>> = Array<M['id']>;
export declare function buildUrl(url: string, params: {
search?: Fields;
url?: Fields;
}): string;
export declare function isTagId(value: unknown): boolean;
export declare function tagData<Type extends string, M extends Model<any>>(type: Type): (result: Result<M, any> | Array<Result<M, any>> | ListResult<M, any> | null | undefined, error: FetchBaseQueryError | undefined, arg: Arg<M, any> | Array<Arg<M, any>> | [M['id'], Arg<M, any>] | Record<M['id'], Arg<M, any>> | ListArg<any> | Array<M['id']> | string | number | undefined) => Array<Tag<Type>>;
64 changes: 47 additions & 17 deletions lib/cjs/helpers/rtkQuery.js
Original file line number Diff line number Diff line change
@@ -1,15 +1,18 @@
"use strict";
// -----------------------------------------------------------------------------
// Model Types
// -----------------------------------------------------------------------------
Object.defineProperty(exports, "__esModule", { value: true });
exports.tagData = exports.searchParamsToString = void 0;
exports.tagData = exports.isTagId = exports.buildUrl = void 0;
// -----------------------------------------------------------------------------
// Functions
// -----------------------------------------------------------------------------
function searchParamsToString(arg) {
if (arg !== null) {
var searchParams = Object.entries(arg)
function buildUrl(url, params) {
if (params.url) {
Object.entries(params.url).forEach(function (_a) {
var key = _a[0], value = _a[1];
url = url.replace("<".concat(key, ">"), String(value));
});
}
if (params.search) {
var searchParams = Object.entries(params.search)
.filter(function (_a) {
var _ = _a[0], value = _a[1];
return value !== undefined;
Expand All @@ -19,18 +22,45 @@ function searchParamsToString(arg) {
return [key, String(value)];
});
if (searchParams.length !== 0) {
return "?".concat(new URLSearchParams(searchParams).toString());
url += "?".concat(new URLSearchParams(searchParams).toString());
}
}
return '';
return url;
}
exports.buildUrl = buildUrl;
function isTagId(value) {
return typeof value === 'number' || typeof value === 'string';
}
exports.searchParamsToString = searchParamsToString;
function tagData(result, type, lookupField) {
if (lookupField === void 0) { lookupField = 'id'; }
var data = 'data' in result ? result.data : result;
return data.map(function (result) { return ({
type: type,
id: result[lookupField]
}); });
exports.isTagId = isTagId;
function tagData(type) {
return function (result, error, arg) {
if (!error) {
if (arg) {
if (isTagId(arg))
return [{ type: type, id: arg }];
if (Array.isArray(arg) && arg.length > 0) {
if (isTagId(arg[0])) {
if (arg.length === 2 && !isTagId(arg[1])) {
return [{ type: type, id: arg[0] }];
}
return arg.map(function (id) { return ({ type: type, id: id }); });
}
}
}
if (result) {
if ('id' in result) {
return [{ type: type, id: result['id'] }];
}
if (Array.isArray(result)) {
return result.map(function (result) { return ({ type: type, id: result['id'] }); });
}
return result.data.map(function (result) { return ({
type: type,
id: result['id']
}); });
}
}
return [];
};
}
exports.tagData = tagData;
83 changes: 41 additions & 42 deletions lib/esm/helpers/rtkQuery.d.ts
Original file line number Diff line number Diff line change
@@ -1,53 +1,52 @@
import type { FetchBaseQueryError } from '@reduxjs/toolkit/query/react';
export type Fields = Record<string, unknown>;
export type TagId = string | number;
export interface Tag<Type extends string> {
type: Type;
id: TagId;
}
/**
* A data model.
* ID: The type of ID.
* ReadAndWrite: The fields that can both be read from and written to.
* ReadOnly: The fields that can only be read from. 'id' is a mandatory
* read-only field.
* WriteOnly: The fields that can only be written to.
* Id: The type of Id.
* Data: The data fields.
*/
export type Model<ID, ReadAndWrite extends Fields = Fields, ReadOnly extends Fields = Fields, WriteOnly extends Fields = Fields> = ReadAndWrite & {
_readOnly: ReadOnly & {
id: ID;
};
_writeOnly: WriteOnly;
};
export type ID<M extends Model<any>> = M['_readOnly']['id'];
export type ReadFields<M extends Model<any>> = Omit<M, '_readOnly' | '_writeOnly'> & M['_readOnly'];
export type WriteFields<M extends Model<any>> = Omit<M, '_readOnly' | '_writeOnly'> & M['_writeOnly'];
export type ReadAndWriteFields<M extends Model<any>> = Omit<M, '_readOnly' | '_writeOnly'> & M['_readOnly'] & M['_writeOnly'];
export type TagArray<Type extends string, M extends Model<any>, LookupField extends keyof ReadFields<M> = 'id'> = Array<{
type: Type;
id: ReadFields<M>[LookupField];
}>;
export type CreateResult<M extends Model<any>> = ReadFields<M>;
export type CreateArg<M extends Model<any>> = WriteFields<M>;
export type BulkCreateResult<M extends Model<any>> = Array<CreateResult<M>>;
export interface BulkCreateArg<M extends Model<any>> {
data: Array<CreateArg<M>>;
}
export type RetrieveResult<M extends Model<any>> = ReadFields<M>;
export type RetrieveArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> = Pick<ReadAndWriteFields<M>, LookupField>;
export interface ListResult<M extends Model<any>> {
export type Model<Id extends TagId, MFields extends Fields = Fields> = {
id: Id;
} & Omit<MFields, 'id'>;
export type Result<M extends Model<any>, MFields extends keyof M = 'id'> = Pick<M, 'id' | MFields>;
export type Arg<M extends Model<any>, MFields extends keyof M> = Pick<M, MFields>;
export type CreateResult<M extends Model<any>, MFields extends keyof M = 'id'> = Result<M, MFields>;
export type CreateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>> = Arg<M, MFields>;
export type BulkCreateResult<M extends Model<any>, MFields extends keyof M = 'id', ExtraFields extends Fields = Fields> = Array<Result<M, MFields> & ExtraFields>;
export type BulkCreateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = Array<Arg<M, MFields> & ExtraFields>;
export type RetrieveResult<M extends Model<any>, MFields extends keyof M = 'id'> = Result<M, MFields>;
export type RetrieveArg<M extends Model<any>> = M['id'];
export interface ListResult<M extends Model<any>, MFields extends keyof M = 'id', ExtraFields extends Fields = Fields> {
count: number;
offset: number;
limit: number;
maxLimit: number;
data: Array<RetrieveResult<M>>;
}
export type ListArg<Filters extends Fields = Fields> = null | Partial<Filters>;
export type UpdateResult<M extends Model<any>> = ReadFields<M>;
export type UpdateArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> = Pick<ReadAndWriteFields<M>, LookupField> & Partial<WriteFields<M>>;
export type BulkUpdateResult<M extends Model<any>> = Array<UpdateResult<M>>;
export interface BulkUpdateArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> {
data: Array<UpdateArg<M, LookupField>>;
data: Array<Result<M, MFields> & ExtraFields>;
}
export type ListArg<Filters extends Fields = Fields> = {
limit: number;
offset: number;
} & Partial<Omit<Filters, 'limit' | 'offset'>>;
export type UpdateResult<M extends Model<any>, MFields extends keyof M = 'id'> = Result<M, MFields>;
export type UpdateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = [M['id'], Arg<M, MFields> & ExtraFields];
export type BulkUpdateResult<M extends Model<any>, MFields extends keyof M = 'id', ExtraFields extends Fields = Fields> = Array<Result<M, MFields> & ExtraFields>;
export type BulkUpdateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = Record<M['id'], Arg<M, MFields> & ExtraFields>;
export type PartialUpdateResult<M extends Model<any>, MFields extends keyof M = 'id'> = Result<M, MFields>;
export type PartialUpdateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = [M['id'], Partial<Arg<M, MFields> & ExtraFields>];
export type BulkPartialUpdateResult<M extends Model<any>, MFields extends keyof M = 'id', ExtraFields extends Fields = Fields> = Array<Result<M, MFields> & ExtraFields>;
export type BulkPartialUpdateArg<M extends Model<any>, MFields extends keyof Omit<M, 'id'>, ExtraFields extends Fields = Fields> = Record<M['id'], Partial<Arg<M, MFields> & ExtraFields>>;
export type DestroyResult = null;
export type DestroyArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> = Pick<ReadAndWriteFields<M>, LookupField>;
export type DestroyArg<M extends Model<any>> = M['id'];
export type BulkDestroyResult = null;
export interface BulkDestroyArg<M extends Model<any>, LookupField extends keyof ReadAndWriteFields<M> = 'id'> {
LookupField: Array<DestroyArg<M, LookupField>[LookupField]>;
}
export declare function searchParamsToString(arg: ListArg): string;
export declare function tagData<Type extends string, M extends Model<any>, LookupField extends keyof ReadFields<M> = 'id'>(result: ListResult<M> | BulkCreateResult<M>, type: Type, lookupField?: LookupField): TagArray<Type, M, LookupField>;
export type BulkDestroyArg<M extends Model<any>> = Array<M['id']>;
export declare function buildUrl(url: string, params: {
search?: Fields;
url?: Fields;
}): string;
export declare function isTagId(value: unknown): boolean;
export declare function tagData<Type extends string, M extends Model<any>>(type: Type): (result: Result<M, any> | Array<Result<M, any>> | ListResult<M, any> | null | undefined, error: FetchBaseQueryError | undefined, arg: Arg<M, any> | Array<Arg<M, any>> | [M['id'], Arg<M, any>] | Record<M['id'], Arg<M, any>> | ListArg<any> | Array<M['id']> | string | number | undefined) => Array<Tag<Type>>;
59 changes: 44 additions & 15 deletions lib/esm/helpers/rtkQuery.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
// -----------------------------------------------------------------------------
// Model Types
// -----------------------------------------------------------------------------
// -----------------------------------------------------------------------------
// Functions
// -----------------------------------------------------------------------------
export function searchParamsToString(arg) {
if (arg !== null) {
var searchParams = Object.entries(arg)
export function buildUrl(url, params) {
if (params.url) {
Object.entries(params.url).forEach(function (_a) {
var key = _a[0], value = _a[1];
url = url.replace("<".concat(key, ">"), String(value));
});
}
if (params.search) {
var searchParams = Object.entries(params.search)
.filter(function (_a) {
var _ = _a[0], value = _a[1];
return value !== undefined;
Expand All @@ -16,16 +19,42 @@ export function searchParamsToString(arg) {
return [key, String(value)];
});
if (searchParams.length !== 0) {
return "?".concat(new URLSearchParams(searchParams).toString());
url += "?".concat(new URLSearchParams(searchParams).toString());
}
}
return '';
return url;
}
export function isTagId(value) {
return typeof value === 'number' || typeof value === 'string';
}
export function tagData(result, type, lookupField) {
if (lookupField === void 0) { lookupField = 'id'; }
var data = 'data' in result ? result.data : result;
return data.map(function (result) { return ({
type: type,
id: result[lookupField]
}); });
export function tagData(type) {
return function (result, error, arg) {
if (!error) {
if (arg) {
if (isTagId(arg))
return [{ type: type, id: arg }];
if (Array.isArray(arg) && arg.length > 0) {
if (isTagId(arg[0])) {
if (arg.length === 2 && !isTagId(arg[1])) {
return [{ type: type, id: arg[0] }];
}
return arg.map(function (id) { return ({ type: type, id: id }); });
}
}
}
if (result) {
if ('id' in result) {
return [{ type: type, id: result['id'] }];
}
if (Array.isArray(result)) {
return result.map(function (result) { return ({ type: type, id: result['id'] }); });
}
return result.data.map(function (result) { return ({
type: type,
id: result['id']
}); });
}
}
return [];
};
}

0 comments on commit cdc9d7b

Please sign in to comment.