server-act
Advanced tools
Comparing version 1.1.3 to 1.1.4
import { z } from 'zod'; | ||
declare const unsetMarker: unique symbol; | ||
type UnsetMarker = typeof unsetMarker; | ||
type Prettify<T> = { | ||
[P in keyof T]: T[P]; | ||
} & {}; | ||
declare const unsetMarker: unique symbol; | ||
type UnsetMarker = typeof unsetMarker; | ||
type OptionalizeUndefined<T> = undefined extends T ? [param?: T] : [param: T]; | ||
type InferParserType<TParser, TType extends 'in' | 'out'> = TParser extends UnsetMarker ? undefined : TParser extends z.ZodType ? TParser[TType extends 'in' ? '_input' : '_output'] : never; | ||
type InferParserType<T, TType extends 'in' | 'out'> = T extends z.ZodEffects<infer I, any, any> ? I[TType extends 'in' ? '_input' : '_output'] : T extends z.ZodType ? T[TType extends 'in' ? '_input' : '_output'] : never; | ||
type InferInputType<T, TType extends 'in' | 'out'> = T extends UnsetMarker ? undefined : InferParserType<T, TType>; | ||
type InferContextType<T> = T extends UnsetMarker ? undefined : T; | ||
@@ -35,4 +36,4 @@ interface ActionParams<TInput = unknown, TContext = unknown> { | ||
ctx: InferContextType<TParams['_context']>; | ||
input: InferParserType<TParams['_input'], 'out'>; | ||
}) => Promise<TOutput>) => (...[input]: OptionalizeUndefined<InferParserType<TParams['_input'], 'in'>>) => Promise<TOutput>; | ||
input: InferInputType<TParams['_input'], 'out'>; | ||
}) => Promise<TOutput>) => (...[input]: OptionalizeUndefined<InferInputType<TParams['_input'], 'in'>>) => Promise<TOutput>; | ||
/** | ||
@@ -45,7 +46,7 @@ * Create an action for React `useFormState` | ||
} & ({ | ||
input: InferParserType<TParams['_input'], 'out'>; | ||
input: InferInputType<TParams['_input'], 'out'>; | ||
formErrors?: undefined; | ||
} | { | ||
input?: undefined; | ||
formErrors: z.ZodError<TParams['_input'] extends z.ZodEffects<infer T, unknown, unknown> ? InferParserType<T, 'in'> : InferParserType<TParams['_input'], 'in'>>; | ||
formErrors: z.ZodError<InferInputType<TParams['_input'], 'in'>>; | ||
})>) => Promise<TState>) => (prevState: TState, formData: FormData) => Promise<TState>; | ||
@@ -52,0 +53,0 @@ } |
@@ -1,74 +0,108 @@ | ||
"use strict"; | ||
var __defProp = Object.defineProperty; | ||
var __getOwnPropDesc = Object.getOwnPropertyDescriptor; | ||
var __getOwnPropNames = Object.getOwnPropertyNames; | ||
var __hasOwnProp = Object.prototype.hasOwnProperty; | ||
var __export = (target, all) => { | ||
for (var name in all) | ||
__defProp(target, name, { get: all[name], enumerable: true }); | ||
}; | ||
var __copyProps = (to, from, except, desc) => { | ||
if (from && typeof from === "object" || typeof from === "function") { | ||
for (let key of __getOwnPropNames(from)) | ||
if (!__hasOwnProp.call(to, key) && key !== except) | ||
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); | ||
} | ||
return to; | ||
}; | ||
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); | ||
Object.defineProperty(exports, '__esModule', { value: true }); | ||
// src/index.ts | ||
var src_exports = {}; | ||
__export(src_exports, { | ||
serverAct: () => serverAct | ||
}); | ||
module.exports = __toCommonJS(src_exports); | ||
var unsetMarker = Symbol("unsetMarker"); | ||
var createNewServerActionBuilder = (def) => { | ||
return createServerActionBuilder(def); | ||
/* eslint-disable @typescript-eslint/no-unsafe-assignment */ /* eslint-disable @typescript-eslint/no-explicit-any */ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { | ||
try { | ||
var info = gen[key](arg); | ||
var value = info.value; | ||
} catch (error) { | ||
reject(error); | ||
return; | ||
} | ||
if (info.done) { | ||
resolve(value); | ||
} else { | ||
Promise.resolve(value).then(_next, _throw); | ||
} | ||
} | ||
function _async_to_generator(fn) { | ||
return function() { | ||
var self = this, args = arguments; | ||
return new Promise(function(resolve, reject) { | ||
var gen = fn.apply(self, args); | ||
function _next(value) { | ||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); | ||
} | ||
function _throw(err) { | ||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); | ||
} | ||
_next(undefined); | ||
}); | ||
}; | ||
} | ||
function _extends() { | ||
_extends = Object.assign || function(target) { | ||
for(var i = 1; i < arguments.length; i++){ | ||
var source = arguments[i]; | ||
for(var key in source){ | ||
if (Object.prototype.hasOwnProperty.call(source, key)) { | ||
target[key] = source[key]; | ||
} | ||
} | ||
} | ||
return target; | ||
}; | ||
return _extends.apply(this, arguments); | ||
} | ||
const createNewServerActionBuilder = (def)=>{ | ||
return createServerActionBuilder(def); | ||
}; | ||
var createServerActionBuilder = (initDef = {}) => { | ||
const _def = { | ||
input: void 0, | ||
middleware: void 0, | ||
...initDef | ||
}; | ||
return { | ||
middleware: (middleware) => createServerActionBuilder({ ..._def, middleware }), | ||
input: (input) => createNewServerActionBuilder({ ..._def, input }), | ||
action: (action) => { | ||
return async (input) => { | ||
var _a; | ||
const ctx = await ((_a = _def.middleware) == null ? void 0 : _a.call(_def)); | ||
if (_def.input) { | ||
const result = _def.input.safeParse(input); | ||
if (!result.success) { | ||
console.error("\u274C Input validation error:", result.error.errors); | ||
throw new Error("Input validation error"); | ||
} | ||
const createServerActionBuilder = (initDef = {})=>{ | ||
const _def = _extends({ | ||
input: undefined, | ||
middleware: undefined | ||
}, initDef); | ||
return { | ||
middleware: (middleware)=>createNewServerActionBuilder(_extends({}, _def, { | ||
middleware | ||
})), | ||
input: (input)=>createNewServerActionBuilder(_extends({}, _def, { | ||
input | ||
})), | ||
action: (action)=>{ | ||
return /*#__PURE__*/ _async_to_generator(function*(input) { | ||
const ctx = yield _def.middleware == null ? void 0 : _def.middleware.call(_def); | ||
if (_def.input) { | ||
const result = _def.input.safeParse(input); | ||
if (!result.success) { | ||
console.error('❌ Input validation error:', result.error.errors); | ||
throw new Error('Input validation error'); | ||
} | ||
} | ||
return yield action({ | ||
ctx, | ||
input | ||
}); | ||
}); | ||
}, | ||
formAction: (action)=>{ | ||
return /*#__PURE__*/ _async_to_generator(function*(prevState, formData) { | ||
const ctx = yield _def.middleware == null ? void 0 : _def.middleware.call(_def); | ||
if (_def.input) { | ||
const result = _def.input.safeParse(formData); | ||
if (!result.success) { | ||
return yield action({ | ||
ctx, | ||
prevState, | ||
formErrors: result.error | ||
}); | ||
} | ||
return yield action({ | ||
ctx, | ||
prevState, | ||
input: result.data | ||
}); | ||
} | ||
return yield action({ | ||
ctx, | ||
prevState, | ||
input: undefined | ||
}); | ||
}); | ||
} | ||
return await action({ ctx, input }); | ||
}; | ||
}, | ||
formAction: (action) => { | ||
return async (prevState, formData) => { | ||
var _a; | ||
const ctx = await ((_a = _def.middleware) == null ? void 0 : _a.call(_def)); | ||
if (_def.input) { | ||
const result = _def.input.safeParse(formData); | ||
if (!result.success) { | ||
return await action({ ctx, prevState, formErrors: result.error }); | ||
} | ||
return await action({ ctx, prevState, input: result.data }); | ||
} | ||
return await action({ ctx, prevState, input: void 0 }); | ||
}; | ||
} | ||
}; | ||
}; | ||
}; | ||
var serverAct = createServerActionBuilder(); | ||
// Annotate the CommonJS export names for ESM import in node: | ||
0 && (module.exports = { | ||
serverAct | ||
}); | ||
//# sourceMappingURL=index.js.map | ||
/** | ||
* Server action builder | ||
*/ const serverAct = createServerActionBuilder(); | ||
exports.serverAct = serverAct; |
{ | ||
"name": "server-act", | ||
"version": "1.1.3", | ||
"version": "1.1.4", | ||
"homepage": "https://github.com/chungweileong94/server-act#readme", | ||
@@ -14,11 +14,21 @@ "repository": { | ||
"module": "dist/index.mjs", | ||
"types": "dist/index.d.ts", | ||
"types": "./dist/index.d.ts", | ||
"exports": { | ||
".": { | ||
"types": "./dist/index.d.ts", | ||
"import": "./dist/index.mjs", | ||
"require": "./dist/index.js" | ||
}, | ||
"./package.json": "./package.json" | ||
"import": { | ||
"types": "./dist/index.d.mts", | ||
"default": "./dist/index.mjs" | ||
}, | ||
"require": { | ||
"types": "./dist/index.d.ts", | ||
"default": "./dist/index.js" | ||
} | ||
} | ||
}, | ||
"files": [ | ||
"dist", | ||
"package.json", | ||
"LICENSE", | ||
"README.md" | ||
], | ||
"keywords": [ | ||
@@ -38,6 +48,6 @@ "next", | ||
"devDependencies": { | ||
"bunchee": "^4.3.3", | ||
"eslint": "^8.49.0", | ||
"eslint-config-whiteroom": "^3.3.0", | ||
"prettier": "^3.0.3", | ||
"tsup": "^7.2.0", | ||
"typescript": "^5.2.2", | ||
@@ -57,3 +67,4 @@ "zod": "^3.22.2", | ||
"scripts": { | ||
"build": "tsup", | ||
"build": "bunchee", | ||
"dev": "bunchee -w", | ||
"test": "vitest run", | ||
@@ -60,0 +71,0 @@ "lint": "eslint src --ext .ts" |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
No README
QualityPackage does not have a README. This may indicate a failed publish or a low quality package.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
14470
6
269
2
0
1