Skip to content

policy

Configures a file or repository policy with defaults and instance options.

policy<C>(policyDef, config?, options?): ConfiguredRepositoryPolicy<C>

Defined in: makePolicy.ts:103

Configure a policy for use in repopo.

C = void

RepositoryPolicyDefinition<C>

Repository policy to configure.

C

Configuration override; omitted or nullish values use the definition’s defaults.

PolicyOptions

Instance identity and repo-relative file exclusions.

ConfiguredRepositoryPolicy<C>

A configured repository policy.

This function takes a policy definition and returns a configured policy instance that can be added to the policies array in repopo.config.ts.

Handlers are automatically normalized: async functions are wrapped for Effection compatibility, while generator functions are used directly.

The second argument is policy configuration. Pass instance options as the third argument, using undefined for configuration to retain the policy’s defaults.

// Policy with no config, just options
policy(NoJsFileExtensions, undefined, { exclude: ["^bin/"] })
// Policy with config
policy(PackageJsonProperties, { verbatim: { license: "MIT" } })
// Policy with config and options
policy(PackageJsonProperties, { verbatim: { license: "MIT" } }, { exclude: ["^vendor/"] })
// Duplicate policies need stable instance IDs
policy(PackageJsonProperties, sourceConfig, { instanceId: "source-packages" })
policy(PackageJsonProperties, testConfig, { instanceId: "test-packages" })

policy<C>(policyDef, config?, options?): ConfiguredFilePolicy<C>

Defined in: makePolicy.ts:118

Configures a file policy and normalizes its handler for Effection.

C = void

PolicyShape<C>

File policy to configure.

C

Configuration override; omitted or nullish values use the definition’s defaults.

PolicyOptions

Instance identity and repo-relative file exclusions.

ConfiguredFilePolicy<C>

A configured file policy.