1- import { get , set , each , isObject , isArray , isFunction , cloneDeep } from "lodash" ;
1+ import { get , set , each , isObject , isArray , isFunction , cloneDeep } from "lodash" ;
22
33// Create a new model by schema default values
4- module . exports . createDefaultObject = function ( schema , obj = { } ) {
4+ module . exports . createDefaultObject = function ( schema , obj = { } ) {
55 each ( schema . fields , ( field ) => {
66 if ( get ( obj , field . model ) === undefined && field . default !== undefined ) {
77 if ( isFunction ( field . default ) ) {
@@ -16,18 +16,18 @@ module.exports.createDefaultObject = function (schema, obj = {}){
1616} ;
1717
1818// Get a new model which contains only properties of multi-edit fields
19- module . exports . getMultipleFields = function ( schema ) {
19+ module . exports . getMultipleFields = function ( schema ) {
2020 let res = [ ] ;
2121 each ( schema . fields , ( field ) => {
22- if ( field . multi === true )
22+ if ( field . multi === true )
2323 res . push ( field ) ;
2424 } ) ;
2525
2626 return res ;
2727} ;
2828
2929// Merge many models to one 'work model' by schema
30- module . exports . mergeMultiObjectFields = function ( schema , objs ) {
30+ module . exports . mergeMultiObjectFields = function ( schema , objs ) {
3131 let model = { } ;
3232
3333 let fields = module . exports . getMultipleFields ( schema ) ;
@@ -54,7 +54,7 @@ module.exports.mergeMultiObjectFields = function(schema, objs) {
5454 return model ;
5555} ;
5656
57- module . exports . slugifyFormID = function ( schema , prefix = "" ) {
57+ module . exports . slugifyFormID = function ( schema , prefix = "" ) {
5858 // Try to get a reasonable default id from the schema,
5959 // then slugify it.
6060 if ( typeof schema . id !== "undefined" ) {
@@ -78,3 +78,21 @@ module.exports.slugifyFormID = function(schema, prefix = "") {
7878 . replace ( / ( [ ^ a - z A - Z 0 - 9 - ] + ) / g, "" ) ;
7979 }
8080} ;
81+
82+ module . exports . slugify = function ( name = "" ) {
83+ // Return the slugified version of either:
84+ return name
85+ // NB: This is a very simple, conservative, slugify function,
86+ // avoiding extra dependencies.
87+ . toString ( )
88+ . trim ( )
89+ //.toLowerCase()
90+ // Spaces & underscores to dashes
91+ . replace ( / | _ / g, "-" )
92+ // Multiple dashes to one
93+ . replace ( / - { 2 , } / g, "-" )
94+ // Remove leading & trailing dashes
95+ . replace ( / ^ - + | - + $ / g, "" )
96+ // Remove anything that isn't a (English/ASCII) letter, number or dash.
97+ . replace ( / ( [ ^ a - z A - Z 0 - 9 - ] + ) / g, "" ) ;
98+ } ;
0 commit comments