Skip to content

Commit dcd082a

Browse files
authored
refactor: use memoize and MemoizeCache from @netlify/dev-utils (#7427)
* Refactored all usages of memoize-build to use @netlify/dev-utils memoize * Npm format change * Moved new dev-utils imports to correct groupings
1 parent 5d6d5e4 commit dcd082a

File tree

5 files changed

+10
-53
lines changed

5 files changed

+10
-53
lines changed

src/lib/functions/memoized-build.ts

Lines changed: 0 additions & 43 deletions
This file was deleted.

src/lib/functions/netlify-function.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { basename, extname } from 'path'
33
import { version as nodeVersion } from 'process'
44

55
import type { ExtendedRoute, Route } from '@netlify/zip-it-and-ship-it'
6+
import type { MemoizeCache } from '@netlify/dev-utils'
67
import CronParser from 'cron-parser'
78
import semver from 'semver'
89

@@ -12,7 +13,6 @@ import { type BlobsContextWithEdgeAccess, getBlobsEventProperty } from '../blobs
1213
import type { ServerSettings } from '../../utils/types.js'
1314

1415
import type { BaseBuildResult, InvokeFunctionResult, Runtime } from './runtimes/index.js'
15-
import type { BuildCommandCache } from './memoized-build.js'
1616

1717
export interface InvocationError {
1818
errorMessage: string
@@ -181,7 +181,7 @@ export default class NetlifyFunction<BuildResult extends BaseBuildResult> {
181181
//
182182
// - `srcFilesDiff`: Files that were added and removed since the last time
183183
// the function was built.
184-
async build({ cache }: { cache?: BuildCommandCache<Record<string, unknown>> }) {
184+
async build({ cache }: { cache?: MemoizeCache<Record<string, unknown>> }) {
185185
const buildFunction = await this.runtime.getBuildFunction({
186186
config: this.config,
187187
directory: this.directory,

src/lib/functions/registry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { basename, extname, isAbsolute, join, resolve } from 'path'
44
import { env } from 'process'
55

66
import { type ListedFunction, listFunctions, type Manifest } from '@netlify/zip-it-and-ship-it'
7+
import type { MemoizeCache } from '@netlify/dev-utils'
78
import extractZip from 'extract-zip'
89

910
import {
@@ -26,7 +27,6 @@ import type { ServerSettings } from '../../utils/types.js'
2627

2728
import NetlifyFunction from './netlify-function.js'
2829
import runtimes, { type BaseBuildResult } from './runtimes/index.js'
29-
import type { BuildCommandCache } from './memoized-build.js'
3030

3131
export const DEFAULT_FUNCTION_URL_EXPRESSION = /^\/.netlify\/(functions|builders)\/([^/]+).*/
3232
const TYPES_PACKAGE = '@netlify/functions'
@@ -67,7 +67,7 @@ export class FunctionsRegistry {
6767
*/
6868
private blobsContext: BlobsContextWithEdgeAccess
6969

70-
private buildCommandCache?: BuildCommandCache<Record<string, unknown>>
70+
private buildCommandCache?: MemoizeCache<Record<string, unknown>>
7171
private capabilities: {
7272
backgroundFunctions?: boolean
7373
}

src/lib/functions/runtimes/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { ExtendedRoute, Route } from '@netlify/zip-it-and-ship-it'
2+
import type { MemoizeCache } from '@netlify/dev-utils'
23

3-
import type { BuildCommandCache } from '../memoized-build.js'
44
import type NetlifyFunction from '../netlify-function.js'
55
import type { NormalizedCachedConfigConfig } from '../../../utils/command-helpers.js'
66

@@ -37,7 +37,7 @@ export type GetBuildFunctionOpts<BuildResult extends BaseBuildResult> = {
3737
export type BuildFunction<
3838
BuildResult extends BaseBuildResult,
3939
CacheEntry extends Record<string, unknown> = Record<string, unknown>,
40-
> = ({ cache }: { cache?: BuildCommandCache<CacheEntry> }) => Promise<BuildResult>
40+
> = ({ cache }: { cache?: MemoizeCache<CacheEntry> }) => Promise<BuildResult>
4141
export type GetBuildFunction<
4242
BuildResult extends BaseBuildResult,
4343
CacheEntry extends Record<string, unknown> = Record<string, unknown>,

src/lib/functions/runtimes/js/builders/zisi.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import path from 'path'
55
import { ARCHIVE_FORMAT, zipFunction, listFunction, type FunctionResult } from '@netlify/zip-it-and-ship-it'
66
// TODO(serhalp): Export this type from zisi
77
import type { FeatureFlags } from '@netlify/zip-it-and-ship-it/dist/feature_flags.js'
8+
import { type MemoizeCache, memoize } from '@netlify/dev-utils'
89
import decache from 'decache'
910
import { readPackageUp } from 'read-package-up'
1011
import sourceMapSupport from 'source-map-support'
@@ -13,7 +14,6 @@ import { NETLIFYDEVERR, type NormalizedCachedConfigConfig } from '../../../../..
1314
import { SERVE_FUNCTIONS_FOLDER } from '../../../../../utils/functions/functions.js'
1415
import { getPathInProject } from '../../../../settings.js'
1516
import { type NormalizedFunctionsConfig, normalizeFunctionsConfig } from '../../../config.js'
16-
import { type BuildCommandCache, memoizedBuild } from '../../../memoized-build.js'
1717
import type NetlifyFunction from '../../../netlify-function.js'
1818
import type { BaseBuildResult } from '../../index.js'
1919
import type { JsBuildResult } from '../index.js'
@@ -46,7 +46,7 @@ const buildFunction = async ({
4646
projectRoot,
4747
targetDirectory,
4848
}: {
49-
cache: BuildCommandCache<FunctionResult>
49+
cache: MemoizeCache<FunctionResult>
5050
config: NormalizedFunctionsConfig
5151
directory?: string | undefined
5252
featureFlags: FeatureFlags
@@ -84,7 +84,7 @@ const buildFunction = async ({
8484
routes,
8585
runtimeAPIVersion,
8686
schedule,
87-
} = await memoizedBuild({
87+
} = await memoize({
8888
cache,
8989
cacheKey: `zisi-${entryPath}`,
9090
command: async () => {
@@ -229,7 +229,7 @@ export default async function detectZisiBuilder({
229229

230230
const targetDirectory = await getTargetDirectory({ projectRoot, errorExit })
231231

232-
const build = async ({ cache = {} }: { cache?: BuildCommandCache<FunctionResult> }) =>
232+
const build = async ({ cache = {} }: { cache?: MemoizeCache<FunctionResult> }) =>
233233
buildFunction({
234234
cache,
235235
config: functionsConfig,

0 commit comments

Comments
 (0)