refactor: 'coding
This commit is contained in:
parent
f77bd8b209
commit
0121059f90
|
@ -28,7 +28,10 @@ const projectResources = async (uuid, resourcePaths, latus) => {
|
|||
const {encode} = latus.get('%resource-controllers')(path);
|
||||
return ({
|
||||
...(await r),
|
||||
[join(uuid, path)]: encode(await readFile(join(process.cwd(), 'projects', uuid, path))),
|
||||
[join(uuid, path)]: await encode(
|
||||
await readFile(join(process.cwd(), 'projects', uuid, path)),
|
||||
latus,
|
||||
),
|
||||
});
|
||||
}, {});
|
||||
};
|
||||
|
|
|
@ -69,6 +69,16 @@ export default class EntityController extends JsonResourceController {
|
|||
);
|
||||
}
|
||||
|
||||
static decode(encoded, latus) {
|
||||
const {Entity} = latus.get('%resources');
|
||||
return super.decode(Entity.withoutDefaults(encoded));
|
||||
}
|
||||
|
||||
static encode(buffer, latus) {
|
||||
const {Entity} = latus.get('%resources');
|
||||
return Entity.withDefaults(super.encode(buffer));
|
||||
}
|
||||
|
||||
static get matcher() {
|
||||
return /\.entity\.json$/;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
import {join} from 'path';
|
||||
|
||||
import {Trait as BaseTrait} from '@avocado/traits';
|
||||
import {
|
||||
PropTypes,
|
||||
React,
|
||||
|
@ -65,18 +64,13 @@ const Traits = ({
|
|||
);
|
||||
const TraitRenderers = latus.get('%trait-renderers');
|
||||
const tabPanels = types.map((type) => {
|
||||
const Trait = Traits[type] || BaseTrait;
|
||||
const jsonWithDefaults = {
|
||||
params: Trait.defaultParamsWith(json[type].params || {}),
|
||||
state: Trait.defaultStateWith(json[type].state || {}),
|
||||
};
|
||||
const TraitRenderer = TraitRenderers[type]
|
||||
? TraitRenderers[type]
|
||||
: NoTraitRenderer;
|
||||
return (
|
||||
<TabPanel key={type}>
|
||||
<TraitRenderer
|
||||
json={jsonWithDefaults}
|
||||
json={json[type]}
|
||||
path={join(path, type)}
|
||||
/>
|
||||
</TabPanel>
|
||||
|
@ -122,7 +116,7 @@ const Traits = ({
|
|||
setIsSelecting(false);
|
||||
patch({
|
||||
path: join(path, type),
|
||||
value: {},
|
||||
value: Traits[type].withDefaults({}),
|
||||
});
|
||||
}}
|
||||
types={suggestible}
|
||||
|
|
|
@ -9,7 +9,7 @@ import {patchJsonResource} from '../../../state/json';
|
|||
const readFile = promisify(fs.readFile);
|
||||
const writeFile = promisify(fs.writeFile);
|
||||
|
||||
export default (Action) => class ProjectAction extends Action {
|
||||
export default (Action, latus) => class ProjectAction extends Action {
|
||||
|
||||
static async respond(packet, socket) {
|
||||
const {data: {type, payload}} = packet;
|
||||
|
@ -18,9 +18,10 @@ export default (Action) => class ProjectAction extends Action {
|
|||
const {patch, project, uri} = payload;
|
||||
const path = join(process.cwd(), 'projects', project, uri);
|
||||
const buffer = await readFile(path);
|
||||
const json = JSON.parse(buffer.toString('utf8'));
|
||||
const {decode, encode} = latus.get('%resource-controllers')(uri);
|
||||
const json = encode(buffer, latus);
|
||||
applyPatch(json, patch);
|
||||
writeFile(path, JSON.stringify(json, null, 2));
|
||||
writeFile(path, decode(json, latus));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
|
Loading…
Reference in New Issue
Block a user