Skip to content

Commit

Permalink
Avoid default param initialization (#1848)
Browse files Browse the repository at this point in the history
  • Loading branch information
fubhy authored Jan 2, 2024
1 parent 389a8b1 commit 04fb8b4
Show file tree
Hide file tree
Showing 12 changed files with 57 additions and 47 deletions.
10 changes: 10 additions & 0 deletions .changeset/kind-cooks-sparkle.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
"@effect/platform-node": patch
"@effect/platform": patch
"effect": patch
"@effect/schema": patch
"@effect/cli": patch
"@effect/rpc": patch
---

Avoid default parameter initilization
46 changes: 23 additions & 23 deletions packages/cli/src/internal/args.ts
Original file line number Diff line number Diff line change
Expand Up @@ -174,40 +174,40 @@ export const all: <
}

/** @internal */
export const boolean = (config: Args.Args.BaseArgsConfig = {}): Args.Args<boolean> =>
makeSingle(Option.fromNullable(config.name), InternalPrimitive.boolean(Option.none()))
export const boolean = (config?: Args.Args.BaseArgsConfig): Args.Args<boolean> =>
makeSingle(Option.fromNullable(config?.name), InternalPrimitive.boolean(Option.none()))

/** @internal */
export const choice = <A>(
choices: ReadonlyArray.NonEmptyReadonlyArray<[string, A]>,
config: Args.Args.BaseArgsConfig = {}
): Args.Args<A> => makeSingle(Option.fromNullable(config.name), InternalPrimitive.choice(choices))
config?: Args.Args.BaseArgsConfig
): Args.Args<A> => makeSingle(Option.fromNullable(config?.name), InternalPrimitive.choice(choices))

/** @internal */
export const date = (config: Args.Args.BaseArgsConfig = {}): Args.Args<globalThis.Date> =>
makeSingle(Option.fromNullable(config.name), InternalPrimitive.date)
export const date = (config?: Args.Args.BaseArgsConfig): Args.Args<globalThis.Date> =>
makeSingle(Option.fromNullable(config?.name), InternalPrimitive.date)

/** @internal */
export const directory = (config: Args.Args.PathArgsConfig = {}): Args.Args<string> =>
export const directory = (config?: Args.Args.PathArgsConfig): Args.Args<string> =>
makeSingle(
Option.fromNullable(config.name),
InternalPrimitive.path("directory", config.exists || "either")
Option.fromNullable(config?.name),
InternalPrimitive.path("directory", config?.exists || "either")
)

/** @internal */
export const file = (config: Args.Args.PathArgsConfig = {}): Args.Args<string> =>
export const file = (config?: Args.Args.PathArgsConfig): Args.Args<string> =>
makeSingle(
Option.fromNullable(config.name),
InternalPrimitive.path("file", config.exists || "either")
Option.fromNullable(config?.name),
InternalPrimitive.path("file", config?.exists || "either")
)

/** @internal */
export const float = (config: Args.Args.BaseArgsConfig = {}): Args.Args<number> =>
makeSingle(Option.fromNullable(config.name), InternalPrimitive.float)
export const float = (config?: Args.Args.BaseArgsConfig): Args.Args<number> =>
makeSingle(Option.fromNullable(config?.name), InternalPrimitive.float)

/** @internal */
export const integer = (config: Args.Args.BaseArgsConfig = {}): Args.Args<number> =>
makeSingle(Option.fromNullable(config.name), InternalPrimitive.integer)
export const integer = (config?: Args.Args.BaseArgsConfig): Args.Args<number> =>
makeSingle(Option.fromNullable(config?.name), InternalPrimitive.integer)

/** @internal */
export const none: Args.Args<void> = (() => {
Expand All @@ -217,20 +217,20 @@ export const none: Args.Args<void> = (() => {
})()

/** @internal */
export const path = (config: Args.Args.PathArgsConfig = {}): Args.Args<string> =>
export const path = (config?: Args.Args.PathArgsConfig): Args.Args<string> =>
makeSingle(
Option.fromNullable(config.name),
InternalPrimitive.path("either", config.exists || "either")
Option.fromNullable(config?.name),
InternalPrimitive.path("either", config?.exists || "either")
)

/** @internal */
export const secret = (
config: Args.Args.BaseArgsConfig = {}
): Args.Args<Secret.Secret> => makeSingle(Option.fromNullable(config.name), InternalPrimitive.secret)
config?: Args.Args.BaseArgsConfig
): Args.Args<Secret.Secret> => makeSingle(Option.fromNullable(config?.name), InternalPrimitive.secret)

/** @internal */
export const text = (config: Args.Args.BaseArgsConfig = {}): Args.Args<string> =>
makeSingle(Option.fromNullable(config.name), InternalPrimitive.text)
export const text = (config?: Args.Args.BaseArgsConfig): Args.Args<string> =>
makeSingle(Option.fromNullable(config?.name), InternalPrimitive.text)

// =============================================================================
// Combinators
Expand Down
4 changes: 2 additions & 2 deletions packages/cli/src/internal/cliConfig.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import * as Layer from "effect/Layer"
import type * as CliConfig from "../CliConfig.js"

/** @internal */
export const make = (params: Partial<CliConfig.CliConfig> = {}): CliConfig.CliConfig => ({
export const make = (params?: Partial<CliConfig.CliConfig>): CliConfig.CliConfig => ({
...defaultConfig,
...params
})
Expand All @@ -30,7 +30,7 @@ export const defaultLayer: Layer.Layer<never, never, CliConfig.CliConfig> = Laye

/** @internal */
export const layer = (
config: Partial<CliConfig.CliConfig> = {}
config?: Partial<CliConfig.CliConfig>
): Layer.Layer<never, never, CliConfig.CliConfig> => Layer.succeed(Tag, make(config))

/** @internal */
Expand Down
10 changes: 5 additions & 5 deletions packages/cli/src/internal/options.ts
Original file line number Diff line number Diff line change
Expand Up @@ -216,7 +216,7 @@ const defaultBooleanOptions = {
/** @internal */
export const boolean = (
name: string,
options: Options.Options.BooleanOptionsConfig = {}
options?: Options.Options.BooleanOptionsConfig
): Options.Options<boolean> => {
const { aliases, ifPresent, negationNames } = { ...defaultBooleanOptions, ...options }
const option = makeSingle(
Expand Down Expand Up @@ -264,23 +264,23 @@ export const date = (name: string): Options.Options<Date> =>
/** @internal */
export const directory = (
name: string,
config: Options.Options.PathOptionsConfig = {}
config?: Options.Options.PathOptionsConfig
): Options.Options<string> =>
makeSingle(
name,
ReadonlyArray.empty(),
InternalPrimitive.path("directory", config.exists || "either")
InternalPrimitive.path("directory", config?.exists ?? "either")
)

/** @internal */
export const file = (
name: string,
config: Options.Options.PathOptionsConfig = {}
config?: Options.Options.PathOptionsConfig
): Options.Options<string> =>
makeSingle(
name,
ReadonlyArray.empty(),
InternalPrimitive.path("file", config.exists || "either")
InternalPrimitive.path("file", config?.exists ?? "either")
)

/** @internal */
Expand Down
4 changes: 2 additions & 2 deletions packages/effect/src/internal/configProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ export const fromFlat = (flat: ConfigProvider.ConfigProvider.Flat): ConfigProvid

/** @internal */
export const fromEnv = (
config: Partial<ConfigProvider.ConfigProvider.FromEnvConfig> = {}
config?: Partial<ConfigProvider.ConfigProvider.FromEnvConfig>
): ConfigProvider.ConfigProvider => {
const { pathDelim, seqDelim } = Object.assign({}, { pathDelim: "_", seqDelim: "," }, config)
const makePathString = (path: ReadonlyArray<string>): string => pipe(path, ReadonlyArray.join(pathDelim))
Expand Down Expand Up @@ -149,7 +149,7 @@ export const fromEnv = (
/** @internal */
export const fromMap = (
map: Map<string, string>,
config: Partial<ConfigProvider.ConfigProvider.FromMapConfig> = {}
config?: Partial<ConfigProvider.ConfigProvider.FromMapConfig>
): ConfigProvider.ConfigProvider => {
const { pathDelim, seqDelim } = Object.assign({ seqDelim: ",", pathDelim: "." }, config)
const makePathString = (path: ReadonlyArray<string>): string => pipe(path, ReadonlyArray.join(pathDelim))
Expand Down
10 changes: 5 additions & 5 deletions packages/effect/src/internal/string-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ const pascalCaseTransform = (input: string, index: number): string => {
}

/** @internal */
export const pascalCase = (input: string, options: Options = {}): string =>
export const pascalCase = (input: string, options?: Options): string =>
noCase(input, {
delimiter: "",
transform: pascalCaseTransform,
Expand All @@ -78,29 +78,29 @@ const camelCaseTransform = (input: string, index: number): string =>
: pascalCaseTransform(input, index)

/** @internal */
export const camelCase = (input: string, options: Options = {}): string =>
export const camelCase = (input: string, options?: Options): string =>
pascalCase(input, {
transform: camelCaseTransform,
...options
})

/** @internal */
export const constantCase = (input: string, options: Options = {}): string =>
export const constantCase = (input: string, options?: Options): string =>
noCase(input, {
delimiter: "_",
transform: upperCase,
...options
})

/** @internal */
export const kebabCase = (input: string, options: Options = {}) =>
export const kebabCase = (input: string, options?: Options) =>
noCase(input, {
delimiter: "-",
...options
})

/** @internal */
export const snakeCase = (input: string, options: Options = {}) =>
export const snakeCase = (input: string, options?: Options) =>
noCase(input, {
delimiter: "_",
...options
Expand Down
4 changes: 2 additions & 2 deletions packages/platform-node/src/internal/sink.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@ import { writeInput } from "./stream.js"
export const fromWritable = <E, A = Uint8Array | string>(
evaluate: LazyArg<Writable | NodeJS.WritableStream>,
onError: (error: unknown) => E,
options: FromWritableOptions = {}
options?: FromWritableOptions
): Sink.Sink<never, E, A, never, void> => Sink.fromChannel(fromWritableChannel(evaluate, onError, options))

/** @internal */
export const fromWritableChannel = <IE, OE, A>(
writable: LazyArg<Writable | NodeJS.WritableStream>,
onError: (error: unknown) => OE,
options: FromWritableOptions = {}
options?: FromWritableOptions
): Channel.Channel<never, IE, Chunk.Chunk<A>, unknown, IE | OE, Chunk.Chunk<never>, void> =>
Channel.flatMap(
Effect.zip(
Expand Down
2 changes: 1 addition & 1 deletion packages/platform-node/src/internal/stream.ts
Original file line number Diff line number Diff line change
Expand Up @@ -220,7 +220,7 @@ export const fromReadableChannel = <E, A = Uint8Array>(
export const writeInput = <IE, A>(
writable: Writable | NodeJS.WritableStream,
onFailure: (cause: Cause.Cause<IE>) => Effect.Effect<never, never, void>,
{ encoding, endOnDone = true }: FromWritableOptions,
{ encoding, endOnDone = true }: FromWritableOptions = {},
onDone = Effect.unit
): AsyncInput.AsyncInputProducer<IE, Chunk.Chunk<A>, unknown> => {
const write = writeEffect(writable, encoding)
Expand Down
4 changes: 2 additions & 2 deletions packages/platform/src/internal/http/client.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ export const Fetch = Context.Tag<Client.Fetch, typeof globalThis.fetch>(
)

/** @internal */
export const fetch = (options: RequestInit = {}): Client.Client.Default =>
export const fetch = (options?: RequestInit): Client.Client.Default =>
makeDefault((request) =>
Effect.flatMap(
UrlParams.makeUrl(request.url, request.urlParams, (_) =>
Expand Down Expand Up @@ -138,7 +138,7 @@ const convertBody = (body: Body.Body): BodyInit | undefined => {
}

/** @internal */
export const fetchOk = (options: RequestInit = {}): Client.Client.Default => filterStatusOk(fetch(options))
export const fetchOk = (options?: RequestInit): Client.Client.Default => filterStatusOk(fetch(options))

/** @internal */
export const layer = Layer.succeed(tag, fetch())
Expand Down
4 changes: 2 additions & 2 deletions packages/rpc/src/internal/router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ export const make = <
>(
schema: S,
handlers: H,
optionsPartial: Partial<RpcRouter.Options> = {}
optionsPartial?: Partial<RpcRouter.Options>
): RpcRouter<S, H> => {
const options: RpcRouter.Options = {
spanPrefix: optionsPartial.spanPrefix ?? "RpcServer"
spanPrefix: optionsPartial?.spanPrefix ?? "RpcServer"
}
return {
schema,
Expand Down
4 changes: 2 additions & 2 deletions packages/rpc/src/internal/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -238,10 +238,10 @@ export const router = <
>(
schema: S,
handlers: H,
optionsPartial: Partial<RpcRouter.Options> = {}
optionsPartial?: Partial<RpcRouter.Options>
): RpcRouter<S, H> => {
const options: RpcRouter.Options = {
spanPrefix: optionsPartial.spanPrefix ?? "RpcServer"
spanPrefix: optionsPartial?.spanPrefix ?? "RpcServer"
}
return {
schema,
Expand Down
2 changes: 1 addition & 1 deletion packages/schema/src/Schema.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4396,7 +4396,7 @@ const makeClass = <I, A>(
const validator = Parser.validateSync(selfSchema)
return class extends Base {
constructor(props: any = {}, disableValidation = false) {
constructor(props?: any, disableValidation = false) {
if (disableValidation !== true) {
props = validator(additionalProps ? { ...props, ...additionalProps } : props)
}
Expand Down

0 comments on commit 04fb8b4

Please sign in to comment.