2
0
mirror of https://github.com/frappe/books.git synced 2024-09-20 03:29:00 +00:00

incr: remove utils, format from common

This commit is contained in:
18alantom 2022-03-21 11:28:52 +05:30
parent f243326126
commit 807a5d2da7
4 changed files with 61 additions and 86 deletions

View File

@ -1,11 +1,7 @@
export default async function initLibs(frappe) {
const utils = await import('../utils');
const format = await import('../utils/format');
const BaseMeta = await import('frappe/model/meta');
const BaseDocument = await import('frappe/model/document');
Object.assign(frappe, utils.default);
Object.assign(frappe, format.default);
frappe.BaseDocument = BaseDocument.default;
frappe.BaseMeta = BaseMeta.default;
}

View File

@ -2,17 +2,21 @@ import initLibs from 'frappe/common';
import { getMoneyMaker } from 'pesa';
import { markRaw } from 'vue';
import * as errors from './common/errors';
import utils from './utils';
import { asyncHandler, getDuplicates, getRandomString } from './utils';
import {
DEFAULT_DISPLAY_PRECISION,
DEFAULT_INTERNAL_PRECISION,
} from './utils/consts';
import { format } from './utils/format';
import Observable from './utils/observable';
import { t, T } from './utils/translation';
class Frappe {
t = t;
T = T;
format = format;
getRandomString = getRandomString;
errors = errors;
isElectron = false;
isServer = false;
@ -114,7 +118,7 @@ class Frappe {
let fieldnames = (metaDefinition.fields || [])
.map((df) => df.fieldname)
.sort();
let duplicateFieldnames = utils.getDuplicates(fieldnames);
let duplicateFieldnames = getDuplicates(fieldnames);
if (duplicateFieldnames.length > 0) {
throw new Error(
`Duplicate fields in ${doctype}: ${duplicateFieldnames.join(', ')}`
@ -144,7 +148,7 @@ class Frappe {
// add to router if client-server
this.app.post(
`/api/method/${method}`,
this.asyncHandler(async function (request, response) {
asyncHandler(async function (request, response) {
let data = await handler(request.body);
if (data === undefined) {
data = {};

View File

@ -2,55 +2,51 @@ import frappe from 'frappe';
import { DateTime } from 'luxon';
import { DEFAULT_DISPLAY_PRECISION, DEFAULT_LOCALE } from './consts';
export default {
format(value, df, doc) {
if (!df) {
return value;
}
if (typeof df === 'string') {
df = { fieldtype: df };
}
if (df.fieldtype === 'Currency') {
const currency = getCurrency(df, doc);
value = formatCurrency(value, currency);
} else if (df.fieldtype === 'Date') {
let dateFormat;
if (!frappe.SystemSettings) {
dateFormat = 'yyyy-MM-dd';
} else {
dateFormat = frappe.SystemSettings.dateFormat;
}
if (typeof value === 'string') {
// ISO String
value = DateTime.fromISO(value);
} else if (Object.prototype.toString.call(value) === '[object Date]') {
// JS Date
value = DateTime.fromJSDate(value);
}
value = value.toFormat(dateFormat);
if (value === 'Invalid DateTime') {
value = '';
}
} else if (df.fieldtype === 'Check') {
typeof parseInt(value) === 'number'
? (value = parseInt(value))
: (value = Boolean(value));
} else {
if (value === null || value === undefined) {
value = '';
} else {
value = value + '';
}
}
export function format(value, df, doc) {
if (!df) {
return value;
},
formatCurrency,
formatNumber,
};
}
if (typeof df === 'string') {
df = { fieldtype: df };
}
if (df.fieldtype === 'Currency') {
const currency = getCurrency(df, doc);
value = formatCurrency(value, currency);
} else if (df.fieldtype === 'Date') {
let dateFormat;
if (!frappe.SystemSettings) {
dateFormat = 'yyyy-MM-dd';
} else {
dateFormat = frappe.SystemSettings.dateFormat;
}
if (typeof value === 'string') {
// ISO String
value = DateTime.fromISO(value);
} else if (Object.prototype.toString.call(value) === '[object Date]') {
// JS Date
value = DateTime.fromJSDate(value);
}
value = value.toFormat(dateFormat);
if (value === 'Invalid DateTime') {
value = '';
}
} else if (df.fieldtype === 'Check') {
typeof parseInt(value) === 'number'
? (value = parseInt(value))
: (value = Boolean(value));
} else {
if (value === null || value === undefined) {
value = '';
} else {
value = value + '';
}
}
return value;
}
function formatCurrency(value, currency) {
let valueString;

View File

@ -1,15 +1,6 @@
const { pesa } = require('pesa');
import { pesa } from 'pesa';
Array.prototype.equals = function (array) {
return (
this.length == array.length &&
this.every(function (item, i) {
return item == array[i];
})
);
};
function slug(str) {
export function slug(str) {
return str
.replace(/(?:^\w|[A-Z]|\b\w)/g, function (letter, index) {
return index == 0 ? letter.toLowerCase() : letter.toUpperCase();
@ -17,17 +8,17 @@ function slug(str) {
.replace(/\s+/g, '');
}
function getRandomString() {
export function getRandomString() {
return Math.random().toString(36).substr(3);
}
async function sleep(seconds) {
export async function sleep(seconds) {
return new Promise((resolve) => {
setTimeout(resolve, seconds * 1000);
});
}
function getQueryString(params) {
export function getQueryString(params) {
if (!params) return '';
let parts = [];
for (let key in params) {
@ -40,7 +31,7 @@ function getQueryString(params) {
return parts.join('&');
}
function asyncHandler(fn) {
export function asyncHandler(fn) {
return (req, res, next) =>
Promise.resolve(fn(req, res, next)).catch((err) => {
console.log(err);
@ -53,13 +44,13 @@ function asyncHandler(fn) {
* Returns array from 0 to n - 1
* @param {Number} n
*/
function range(n) {
export function range(n) {
return Array(n)
.fill()
.map((_, i) => i);
}
function unique(list, key = (it) => it) {
export function unique(list, key = (it) => it) {
var seen = {};
return list.filter((item) => {
var k = key(item);
@ -67,7 +58,7 @@ function unique(list, key = (it) => it) {
});
}
function getDuplicates(array) {
export function getDuplicates(array) {
let duplicates = [];
for (let i in array) {
let previous = array[i - 1];
@ -82,18 +73,6 @@ function getDuplicates(array) {
return duplicates;
}
function isPesa(value) {
export function isPesa(value) {
return value instanceof pesa().constructor;
}
module.exports = {
slug,
getRandomString,
sleep,
getQueryString,
asyncHandler,
range,
unique,
getDuplicates,
isPesa,
};