UNPKG

@frontitude/cli

Version:

The Frontitude CLI enables product teams to integrate their code with Frontitude (frontitude.com), thus creating a single source of truth for their product copy, from design to development.

1 lines 1.28 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.getDryRunResult=exports.getFileDiff=exports.updateFileWithData=exports.getDataAndFileCombinedResult=void 0;const files_1=require("../../../../utils/files"),object_1=require("../../../../utils/object"),readFileAsJson=async e=>{if(!e||!(0,files_1.isPathOrFileExists)(e))return{};const t=await(0,files_1.readFile)(e,{encoding:"utf8"})||"{}";return JSON.parse(t.toString())},getDataAndFileCombinedResult=async(e,t)=>{const s=await readFileAsJson(e),i=Object.assign(s,t);return(0,object_1.sortObjectByKeys)(i)};exports.getDataAndFileCombinedResult=getDataAndFileCombinedResult;const updateFileWithData=async(e,t)=>{const s=await readFileAsJson(e),i=await(0,exports.getDataAndFileCombinedResult)(e,t);return await(0,files_1.writeFile)(e,JSON.stringify(i,null,2)),(0,exports.getFileDiff)(s,i)};exports.updateFileWithData=updateFileWithData;const getFileDiff=(e,t)=>{const s=[],i=[];for(const s of Object.keys(e))t[s]&&e[s]!==t[s]&&i.push(s);for(const i of Object.keys(t))e[i]||s.push(i);return{added:s.length,edited:i.length}};exports.getFileDiff=getFileDiff;const getDryRunResult=async(e,t)=>{const s=await(0,exports.getDataAndFileCombinedResult)(e,t);return s&&s.source};exports.getDryRunResult=getDryRunResult;