@defra/forms-model 3.0.276 → 3.0.278

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -25,13 +25,16 @@ export function filter(obj, predicate) {
25
25
  }
26
26
 
27
27
  /**
28
- * Replace spaces, en-dashes and em-dashes with hyphens
28
+ * Replace whitespace, en-dashes and em-dashes with spaces
29
29
  * before running through the slug package
30
30
  */
31
- export function slugify(input = '') {
32
- const string = input.trim().replace(/[\s–—]/g, '-');
31
+ export function slugify(input = '', options) {
32
+ const string = input.trimStart().replace(/[\s–—]/g, ' ');
33
33
  return slug(string, {
34
- lower: true
34
+ fallback: false,
35
+ lower: true,
36
+ trim: true,
37
+ ...options
35
38
  });
36
39
  }
37
40
  //# sourceMappingURL=helpers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","names":["slug","serialiseAndDeserialise","obj","JSON","parse","stringify","clone","filter","predicate","result","key","value","Object","entries","slugify","input","string","trim","replace","lower"],"sources":["../../../src/utils/helpers.ts"],"sourcesContent":["import slug from 'slug'\n\nexport const serialiseAndDeserialise = <T>(obj: T): T => {\n if (typeof obj === 'object' && obj !== null) {\n return JSON.parse(JSON.stringify(obj))\n }\n\n return obj\n}\n\nexport const clone = <T>(obj: T & { clone?: () => T }): T => {\n if (obj) {\n if (typeof obj.clone === 'function') {\n return obj.clone()\n }\n\n return serialiseAndDeserialise<T>(obj)\n }\n return obj\n}\n\nexport function filter<T extends Record<string, unknown>>(\n obj: T,\n predicate: (value: any) => boolean\n): Partial<T> {\n const result = {}\n\n for (const [key, value] of Object.entries(obj)) {\n if (value && predicate(value)) {\n result[key] = value\n }\n }\n\n return result\n}\n\n/**\n * Replace spaces, en-dashes and em-dashes with hyphens\n * before running through the slug package\n */\nexport function slugify(input = '') {\n const string = input.trim().replace(/[\\s–—]/g, '-')\n return slug(string, { lower: true })\n}\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AAEvB,OAAO,MAAMC,uBAAuB,GAAOC,GAAM,IAAQ;EACvD,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,EAAE;IAC3C,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,GAAG,CAAC,CAAC;EACxC;EAEA,OAAOA,GAAG;AACZ,CAAC;AAED,OAAO,MAAMI,KAAK,GAAOJ,GAA4B,IAAQ;EAC3D,IAAIA,GAAG,EAAE;IACP,IAAI,OAAOA,GAAG,CAACI,KAAK,KAAK,UAAU,EAAE;MACnC,OAAOJ,GAAG,CAACI,KAAK,CAAC,CAAC;IACpB;IAEA,OAAOL,uBAAuB,CAAIC,GAAG,CAAC;EACxC;EACA,OAAOA,GAAG;AACZ,CAAC;AAED,OAAO,SAASK,MAAMA,CACpBL,GAAM,EACNM,SAAkC,EACtB;EACZ,MAAMC,MAAM,GAAG,CAAC,CAAC;EAEjB,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACX,GAAG,CAAC,EAAE;IAC9C,IAAIS,KAAK,IAAIH,SAAS,CAACG,KAAK,CAAC,EAAE;MAC7BF,MAAM,CAACC,GAAG,CAAC,GAAGC,KAAK;IACrB;EACF;EAEA,OAAOF,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,OAAOA,CAACC,KAAK,GAAG,EAAE,EAAE;EAClC,MAAMC,MAAM,GAAGD,KAAK,CAACE,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;EACnD,OAAOlB,IAAI,CAACgB,MAAM,EAAE;IAAEG,KAAK,EAAE;EAAK,CAAC,CAAC;AACtC","ignoreList":[]}
1
+ {"version":3,"file":"helpers.js","names":["slug","serialiseAndDeserialise","obj","JSON","parse","stringify","clone","filter","predicate","result","key","value","Object","entries","slugify","input","options","string","trimStart","replace","fallback","lower","trim"],"sources":["../../../src/utils/helpers.ts"],"sourcesContent":["import slug from 'slug'\n\nexport const serialiseAndDeserialise = <T>(obj: T): T => {\n if (typeof obj === 'object' && obj !== null) {\n return JSON.parse(JSON.stringify(obj))\n }\n\n return obj\n}\n\nexport const clone = <T>(obj: T & { clone?: () => T }): T => {\n if (obj) {\n if (typeof obj.clone === 'function') {\n return obj.clone()\n }\n\n return serialiseAndDeserialise<T>(obj)\n }\n return obj\n}\n\nexport function filter<T extends Record<string, unknown>>(\n obj: T,\n predicate: (value: any) => boolean\n): Partial<T> {\n const result = {}\n\n for (const [key, value] of Object.entries(obj)) {\n if (value && predicate(value)) {\n result[key] = value\n }\n }\n\n return result\n}\n\n/**\n * Replace whitespace, en-dashes and em-dashes with spaces\n * before running through the slug package\n */\nexport function slugify(input = '', options?: slug.Options) {\n const string = input.trimStart().replace(/[\\s–—]/g, ' ')\n\n return slug(string, {\n fallback: false,\n lower: true,\n trim: true,\n ...options\n })\n}\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AAEvB,OAAO,MAAMC,uBAAuB,GAAOC,GAAM,IAAQ;EACvD,IAAI,OAAOA,GAAG,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,EAAE;IAC3C,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,GAAG,CAAC,CAAC;EACxC;EAEA,OAAOA,GAAG;AACZ,CAAC;AAED,OAAO,MAAMI,KAAK,GAAOJ,GAA4B,IAAQ;EAC3D,IAAIA,GAAG,EAAE;IACP,IAAI,OAAOA,GAAG,CAACI,KAAK,KAAK,UAAU,EAAE;MACnC,OAAOJ,GAAG,CAACI,KAAK,CAAC,CAAC;IACpB;IAEA,OAAOL,uBAAuB,CAAIC,GAAG,CAAC;EACxC;EACA,OAAOA,GAAG;AACZ,CAAC;AAED,OAAO,SAASK,MAAMA,CACpBL,GAAM,EACNM,SAAkC,EACtB;EACZ,MAAMC,MAAM,GAAG,CAAC,CAAC;EAEjB,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACX,GAAG,CAAC,EAAE;IAC9C,IAAIS,KAAK,IAAIH,SAAS,CAACG,KAAK,CAAC,EAAE;MAC7BF,MAAM,CAACC,GAAG,CAAC,GAAGC,KAAK;IACrB;EACF;EAEA,OAAOF,MAAM;AACf;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASK,OAAOA,CAACC,KAAK,GAAG,EAAE,EAAEC,OAAsB,EAAE;EAC1D,MAAMC,MAAM,GAAGF,KAAK,CAACG,SAAS,CAAC,CAAC,CAACC,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;EAExD,OAAOnB,IAAI,CAACiB,MAAM,EAAE;IAClBG,QAAQ,EAAE,KAAK;IACfC,KAAK,EAAE,IAAI;IACXC,IAAI,EAAE,IAAI;IACV,GAAGN;EACL,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -1,11 +1,12 @@
1
+ import slug from 'slug';
1
2
  export declare const serialiseAndDeserialise: <T>(obj: T) => T;
2
3
  export declare const clone: <T>(obj: T & {
3
4
  clone?: () => T;
4
5
  }) => T;
5
6
  export declare function filter<T extends Record<string, unknown>>(obj: T, predicate: (value: any) => boolean): Partial<T>;
6
7
  /**
7
- * Replace spaces, en-dashes and em-dashes with hyphens
8
+ * Replace whitespace, en-dashes and em-dashes with spaces
8
9
  * before running through the slug package
9
10
  */
10
- export declare function slugify(input?: string): string;
11
+ export declare function slugify(input?: string, options?: slug.Options): string;
11
12
  //# sourceMappingURL=helpers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,uBAAuB,GAAI,CAAC,OAAO,CAAC,KAAG,CAMnD,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,OAAO,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,KAAG,CASvD,CAAA;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtD,GAAG,EAAE,CAAC,EACN,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,GACjC,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,SAAK,UAGjC"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AAEvB,eAAO,MAAM,uBAAuB,GAAI,CAAC,OAAO,CAAC,KAAG,CAMnD,CAAA;AAED,eAAO,MAAM,KAAK,GAAI,CAAC,OAAO,CAAC,GAAG;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,KAAG,CASvD,CAAA;AAED,wBAAgB,MAAM,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACtD,GAAG,EAAE,CAAC,EACN,SAAS,EAAE,CAAC,KAAK,EAAE,GAAG,KAAK,OAAO,GACjC,OAAO,CAAC,CAAC,CAAC,CAUZ;AAED;;;GAGG;AACH,wBAAgB,OAAO,CAAC,KAAK,SAAK,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,OAAO,UASzD"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defra/forms-model",
3
- "version": "3.0.276",
3
+ "version": "3.0.278",
4
4
  "description": "A hapi plugin providing the model for Defra forms",
5
5
  "homepage": "https://github.com/DEFRA/forms-designer/tree/main/model#readme",
6
6
  "repository": {
@@ -35,10 +35,16 @@ export function filter<T extends Record<string, unknown>>(
35
35
  }
36
36
 
37
37
  /**
38
- * Replace spaces, en-dashes and em-dashes with hyphens
38
+ * Replace whitespace, en-dashes and em-dashes with spaces
39
39
  * before running through the slug package
40
40
  */
41
- export function slugify(input = '') {
42
- const string = input.trim().replace(/[\s–—]/g, '-')
43
- return slug(string, { lower: true })
41
+ export function slugify(input = '', options?: slug.Options) {
42
+ const string = input.trimStart().replace(/[\s–—]/g, ' ')
43
+
44
+ return slug(string, {
45
+ fallback: false,
46
+ lower: true,
47
+ trim: true,
48
+ ...options
49
+ })
44
50
  }