2
0
mirror of https://github.com/frappe/books.git synced 2025-02-03 12:38:34 +00:00
books/model/boilerplate.js

46 lines
983 B
JavaScript
Raw Normal View History

2018-01-31 15:43:33 +05:30
const fs = require('fs');
const utils = require('frappejs/utils');
module.exports = {
make_model_files(name) {
// [doctype].json
fs.mkdirSync(`./models/doctype/${utils.slug(name)}`);
fs.writeFileSync(`./models/doctype/${utils.slug(name)}/${utils.slug(name)}.json`, `{
2018-01-31 18:26:21 +05:30
"name": "${name}",
"doctype": "DocType",
2018-02-12 17:31:31 +05:30
"isSingle": 0,
"isChild": 0,
"keywordFields": [],
2018-01-31 18:26:21 +05:30
"fields": [
{
"fieldname": "name",
"label": "Name",
"fieldtype": "Data",
2018-02-09 18:25:55 +05:30
"required": 1
2018-01-31 18:26:21 +05:30
}
]
2018-01-31 15:43:33 +05:30
}`);
// [doctype].js
let thinname = name.replace(/ /g, '');
fs.writeFileSync(`./models/doctype/${utils.slug(name)}/${utils.slug(name)}.js`, `const BaseMeta = require('frappejs/model/meta');
const BaseDocument = require('frappejs/model/document');
class ${thinname}Meta extends BaseMeta {
2018-02-08 17:58:51 +05:30
setupMeta() {
2018-01-31 18:26:21 +05:30
Object.assign(this, require('./${utils.slug(name)}.json'));
}
2018-01-31 15:43:33 +05:30
}
class ${thinname} extends BaseDocument {
}
module.exports = {
2018-01-31 18:26:21 +05:30
Document: ${thinname},
Meta: ${thinname}Meta
2018-01-31 15:43:33 +05:30
};`);
}
}