57 lines
2.6 KiB
JavaScript
57 lines
2.6 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.stripIndent = exports.setKeyNotNull = exports.setInterfaceModel = exports.setDefaultNeedPropertyValue = exports.setDefaultNull = exports.firstLetterCap = exports.isObjectOrArray = exports.isObject = exports.isArray = exports.isNullOrUndefined = exports.isUndefined = exports.isNull = void 0;
|
|
const isNull = (val) => val === null;
|
|
exports.isNull = isNull;
|
|
const isUndefined = (val) => val === undefined;
|
|
exports.isUndefined = isUndefined;
|
|
const isNullOrUndefined = (val) => (0, exports.isNull)(val) || (0, exports.isUndefined)(val);
|
|
exports.isNullOrUndefined = isNullOrUndefined;
|
|
const isArray = (val) => Array.isArray(val);
|
|
exports.isArray = isArray;
|
|
const isObject = (val) => (0, exports.isNull)(val) ? false : val.constructor === Object;
|
|
exports.isObject = isObject;
|
|
const isObjectOrArray = (val) => (0, exports.isObject)(val) || (0, exports.isArray)(val);
|
|
exports.isObjectOrArray = isObjectOrArray;
|
|
const firstLetterCap = (val) => {
|
|
let splitArr = val.split("_");
|
|
return splitArr.map(v => v.charAt(0).toUpperCase() + v.slice(1)).join("");
|
|
};
|
|
exports.firstLetterCap = firstLetterCap;
|
|
const setDefaultNull = (options) => options?.nullAlias ? options?.nullAlias : "string";
|
|
exports.setDefaultNull = setDefaultNull;
|
|
const setDefaultNeedPropertyValue = (options, key) => {
|
|
options.needProperty = options.needProperty || false;
|
|
return options?.needProperty
|
|
? options?.interfaceModel
|
|
? null
|
|
: options?.needPropertyValue
|
|
? `\t\n@property("${key}")`
|
|
: `@property()`
|
|
: null;
|
|
};
|
|
exports.setDefaultNeedPropertyValue = setDefaultNeedPropertyValue;
|
|
const setInterfaceModel = (options) => options?.interfaceModel ? 'export interface' : `export class`;
|
|
exports.setInterfaceModel = setInterfaceModel;
|
|
const setKeyNotNull = (options, key) => `${key}${options?.interfaceModel ? '' : '!'}`;
|
|
exports.setKeyNotNull = setKeyNotNull;
|
|
const stripIndent = (template, ...expressions) => {
|
|
let result = template.reduce((prev, next, i) => {
|
|
let expression = expressions[i - 1];
|
|
if ((0, exports.isArray)(expression)) {
|
|
expression = expression.join('');
|
|
}
|
|
return prev + expression + next;
|
|
});
|
|
const match = result.match(/^[^\S\n]*(?=\S)/gm);
|
|
const indent = match && Math.min(...match.map(el => el.length));
|
|
if (indent) {
|
|
const regexp = new RegExp(`^.{${indent}}`, 'gm');
|
|
result = result.replace(regexp, '');
|
|
}
|
|
result = result.replace(/^[^\S\n]+/gm, ' ');
|
|
result = result.trim();
|
|
return result;
|
|
};
|
|
exports.stripIndent = stripIndent;
|