File tree Expand file tree Collapse file tree 3 files changed +36
-3
lines changed Expand file tree Collapse file tree 3 files changed +36
-3
lines changed Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import { issueFlagNotices } from './featureFlags.js'
1818
1919import hash from 'object-hash'
2020import log from './util/log'
21+ import { shared } from './util/disposables'
2122
2223let previousConfig = null
2324let processedPlugins = null
@@ -30,6 +31,7 @@ export default function (getConfig) {
3031 previousConfig = config
3132
3233 if ( configChanged ) {
34+ shared . dispose ( )
3335 if ( config . target ) {
3436 log . warn ( [
3537 'The `target` feature has been removed in Tailwind CSS v2.0.' ,
Original file line number Diff line number Diff line change 1+ export function disposables ( ) {
2+ let disposables = [ ]
3+
4+ let api = {
5+ add ( cb ) {
6+ disposables . push ( cb )
7+
8+ return ( ) => {
9+ let idx = disposables . indexOf ( cb )
10+ if ( idx !== - 1 ) disposables . splice ( idx , 1 )
11+ }
12+ } ,
13+ dispose ( ) {
14+ disposables . splice ( 0 ) . forEach ( ( dispose ) => dispose ( ) )
15+ } ,
16+ }
17+
18+ return api
19+ }
20+
21+ // A shared disposables collection
22+ export let shared = disposables ( )
Original file line number Diff line number Diff line change 1+ import { shared } from './disposables'
2+
13export function useMemo ( cb , keyResolver ) {
2- const cache = new Map ( )
4+ let cache = new Map ( )
5+
6+ function clearCache ( ) {
7+ cache . clear ( )
8+ shared . add ( clearCache )
9+ }
10+
11+ shared . add ( clearCache )
312
413 return ( ...args ) => {
5- const key = keyResolver ( ...args )
14+ let key = keyResolver ( ...args )
615
716 if ( cache . has ( key ) ) {
817 return cache . get ( key )
918 }
1019
11- const result = cb ( ...args )
20+ let result = cb ( ...args )
1221 cache . set ( key , result )
1322
1423 return result
You can’t perform that action at this time.
0 commit comments