feat: replaceResource
This commit is contained in:
parent
8eda46cf4f
commit
5a44a0dfae
|
@ -1,4 +1,4 @@
|
||||||
import {patchJsonResource} from '@avocado/resource-persea';
|
import {patchJsonResource, replaceResource} from '@avocado/resource-persea';
|
||||||
import {Hooks} from '@flecks/core';
|
import {Hooks} from '@flecks/core';
|
||||||
|
|
||||||
import Persea from './components/persea';
|
import Persea from './components/persea';
|
||||||
|
@ -21,6 +21,9 @@ export default {
|
||||||
[patchJsonResource]: withSocket((store, action, socket) => {
|
[patchJsonResource]: withSocket((store, action, socket) => {
|
||||||
socket.send(['Action', action]);
|
socket.send(['Action', action]);
|
||||||
}),
|
}),
|
||||||
|
[replaceResource]: withSocket((store, action, socket) => {
|
||||||
|
socket.send(['Action', action]);
|
||||||
|
}),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
'@flecks/redux.slices': () => ({
|
'@flecks/redux.slices': () => ({
|
||||||
|
|
|
@ -11,6 +11,7 @@ export default {
|
||||||
[Hooks]: {
|
[Hooks]: {
|
||||||
'@flecks/core.starting': (flecks) => {
|
'@flecks/core.starting': (flecks) => {
|
||||||
flecks.set('$persea/core.patches', []);
|
flecks.set('$persea/core.patches', []);
|
||||||
|
flecks.set('$persea/core.replacements', []);
|
||||||
startFlush(flecks);
|
startFlush(flecks);
|
||||||
},
|
},
|
||||||
'@flecks/db/server.models': Flecks.provide(require.context('./models', false, /\.js$/)),
|
'@flecks/db/server.models': Flecks.provide(require.context('./models', false, /\.js$/)),
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import {patchJsonResource} from '@avocado/resource-persea';
|
import {patchJsonResource, replaceResource} from '@avocado/resource-persea';
|
||||||
|
|
||||||
export default (Action, flecks) => class ProjectAction extends Action {
|
export default (Action, flecks) => class ProjectAction extends Action {
|
||||||
|
|
||||||
|
@ -9,6 +9,10 @@ export default (Action, flecks) => class ProjectAction extends Action {
|
||||||
flecks.get('$persea/core.patches').push(payload);
|
flecks.get('$persea/core.patches').push(payload);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case replaceResource.toString(): {
|
||||||
|
flecks.get('$persea/core.replacements').push(payload);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
return super.respond(packet, socket);
|
return super.respond(packet, socket);
|
||||||
|
|
|
@ -42,6 +42,19 @@ const startFlush = (flecks) => {
|
||||||
setTimeout(flushPatches, 0);
|
setTimeout(flushPatches, 0);
|
||||||
};
|
};
|
||||||
setTimeout(flushPatches, 0);
|
setTimeout(flushPatches, 0);
|
||||||
|
const flushReplacements = async () => {
|
||||||
|
const replacements = flecks.get('$persea/core.replacements');
|
||||||
|
if (replacements.length > 0) {
|
||||||
|
while (replacements.length > 0) {
|
||||||
|
const {value, project, uri} = replacements.shift();
|
||||||
|
const path = join(process.cwd(), 'projects', project, uri);
|
||||||
|
// eslint-disable-next-line no-await-in-loop
|
||||||
|
await writeFile(path, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
setTimeout(flushReplacements, 0);
|
||||||
|
};
|
||||||
|
setTimeout(flushReplacements, 0);
|
||||||
};
|
};
|
||||||
|
|
||||||
export default startFlush;
|
export default startFlush;
|
||||||
|
|
Loading…
Reference in New Issue
Block a user