dawn-interfaces
Version:
Dawn application interfaces
49 lines (43 loc) • 1.46 kB
JavaScript
//node ./node_modules/intermock/build/src/cli/index.js --files ./example-file.ts --interfaces "Admin"
const fs = require('fs');
const faker = require("faker");
const { Generator, Configuration } = require("@mangm/ts-mock-generator");
const generator = new Generator("./tsconfig.json");
const mocker = async () =>{
console.log("Mocking...")
let data = null;
try {
data = fs.readFileSync('./src/index.ts', 'utf8').toString();
} catch(e) {
console.log('Error:', e.stack);
}
const interfaceNames = data.replace(/["\n"]/g, "").split("export interface ").
filter(u=>u !== "").map(u=>{
const brace1 = u.indexOf("{");
return u.substring(0,brace1).replace(/[" "]/g, "");
});
const generations = interfaceNames.map(interf=>
`export const Mock${interf} = ${JSON.stringify(
generator.generate(interf,{
includeAllProps:true,
primitiveValues:{
string:"string",
number:987654
},
maxRecursiveLoop:3
})
)}`
).join("\n") ;
const exportAll = `\n export default {${interfaceNames.map(ifn=>
`Mock${ifn}`
).join(",")}}`;
fs.writeFileSync("./src/mocks/index.ts",generations + exportAll);
console.log("Done Mocking.")
}
mocker();
// string[] ["MOCK"]
// string "MOCK"
// number[] [-1]
// number -1
// boolean[] [true]
// boolean true