@lightdash/common 0.1610.0 → 0.1610.1
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.
- package/dist/cjs/types/promotion.d.ts +3 -1
- package/dist/cjs/types/promotion.d.ts.map +1 -1
- package/dist/cjs/utils/slug.test.js +78 -58
- package/dist/cjs/utils/slug.test.js.map +1 -1
- package/dist/cjs/utils/slugs.d.ts +4 -28
- package/dist/cjs/utils/slugs.d.ts.map +1 -1
- package/dist/cjs/utils/slugs.js +37 -40
- package/dist/cjs/utils/slugs.js.map +1 -1
- package/dist/esm/types/promotion.d.ts +3 -1
- package/dist/esm/types/promotion.d.ts.map +1 -1
- package/dist/esm/utils/slug.test.js +79 -59
- package/dist/esm/utils/slug.test.js.map +1 -1
- package/dist/esm/utils/slugs.d.ts +4 -28
- package/dist/esm/utils/slugs.d.ts.map +1 -1
- package/dist/esm/utils/slugs.js +32 -36
- package/dist/esm/utils/slugs.js.map +1 -1
- package/dist/tsconfig.types.tsbuildinfo +1 -1
- package/dist/types/types/promotion.d.ts +3 -1
- package/dist/types/types/promotion.d.ts.map +1 -1
- package/dist/types/utils/slugs.d.ts +4 -28
- package/dist/types/utils/slugs.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/esm/utils/slugs.js
CHANGED
@@ -18,42 +18,38 @@ export const generateSlug = (name) => {
|
|
18
18
|
}
|
19
19
|
return sanitizedSlug;
|
20
20
|
};
|
21
|
-
/**
|
22
|
-
* Get all slugs with hierarchy for a given slug
|
23
|
-
* For example, "parent-space/child-space" will return ["parent-space", "parent-space/child-space"]
|
24
|
-
* @param slug - The slug to get the hierarchy for
|
25
|
-
* @returns An array of slugs with hierarchy
|
26
|
-
*/
|
27
|
-
export const getSlugsWithHierarchy = (slug) => slug.split('/').reduce((acc, s) => {
|
28
|
-
if (acc.length === 0) {
|
29
|
-
return [s];
|
30
|
-
}
|
31
|
-
return [...acc, `${acc[acc.length - 1]}/${s}`];
|
32
|
-
}, []);
|
33
|
-
/**
|
34
|
-
* Get the parent slug from a slug with hierarchy
|
35
|
-
* For example, "parent-space/child-space" will return "parent-space"
|
36
|
-
* @param slug - The slug to get the parent slug from
|
37
|
-
* @returns The parent slug
|
38
|
-
*/
|
39
|
-
export const getParentSlug = (slug) => slug.split('/').slice(0, -1).join('/');
|
40
|
-
/**
|
41
|
-
* Get the label from a slug with hierarchy
|
42
|
-
* For example, "parent-space/child-space" will return "child-space"
|
43
|
-
* @param slug - The slug to get the label from
|
44
|
-
* @returns The label
|
45
|
-
*/
|
46
|
-
export const getLabelFromSlug = (slug) => slug.split('/').pop() ?? slug;
|
47
|
-
/**
|
48
|
-
* Get the ltree path from a slug with hierarchy
|
49
|
-
* For example, "parent-space/child-space" will return "parent_space.child_space"
|
50
|
-
* Verifies that each slug is a valid PostgreSQL ltree label (A-Za-z0-9_)
|
51
|
-
* @param slug - The slug to get the ltree path from
|
52
|
-
* @returns The ltree path
|
53
|
-
*/
|
54
21
|
export const getLtreePathFromSlug = (slug) => {
|
55
|
-
|
56
|
-
|
57
|
-
|
22
|
+
let path = slug;
|
23
|
+
// This is for backwards compatibility with the old slug format that contained hierarchy
|
24
|
+
if (path.includes('/')) {
|
25
|
+
path = path.split('/').join('___');
|
26
|
+
}
|
27
|
+
return path.replace(/-/g, '_');
|
28
|
+
};
|
29
|
+
export const getLtreePathFromContentAsCodePath = (path) => path.replace(/-/g, '_').replace(/\//g, '.');
|
30
|
+
export const getContentAsCodePathFromLtreePath = (path) => path.replace(/_/g, '-').replace(/\./g, '/');
|
31
|
+
export const getDeepestPaths = (paths) => {
|
32
|
+
const uniquePaths = Array.from(new Set(paths));
|
33
|
+
const result = [];
|
34
|
+
for (const path of uniquePaths) {
|
35
|
+
const pathSegments = path.split('.');
|
36
|
+
const isPrefix = uniquePaths.some((otherPath) => {
|
37
|
+
if (path === otherPath)
|
38
|
+
return false;
|
39
|
+
const otherSegments = otherPath.split('.');
|
40
|
+
if (pathSegments.length < otherSegments.length) {
|
41
|
+
const potentialPrefix = otherSegments
|
42
|
+
.slice(0, pathSegments.length)
|
43
|
+
.join('.');
|
44
|
+
return potentialPrefix === path;
|
45
|
+
}
|
46
|
+
return false;
|
47
|
+
});
|
48
|
+
if (!isPrefix) {
|
49
|
+
result.push(path);
|
50
|
+
}
|
51
|
+
}
|
52
|
+
return result;
|
58
53
|
};
|
54
|
+
export const isSubPath = (path, subPath) => subPath.startsWith(path) && subPath[path.length] === '.';
|
59
55
|
//# sourceMappingURL=slugs.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/utils/slugs.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,WAAW,GAAG,IAAI,EAAE,EAAE;IACtD,IAAI,aAAa,GAAG,IAAI;SACnB,WAAW,EAAE;QACd,kEAAkE;SACjE,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAEjC,IAAI,WAAW,EAAE,CAAC;QACd,oCAAoC;QACpC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,qCAAqC;QACrC,sDAAsD;QACtD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF
|
1
|
+
{"version":3,"file":"slugs.js","sourceRoot":"","sources":["../../../src/utils/slugs.ts"],"names":[],"mappings":"AAAA,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,WAAW,GAAG,IAAI,EAAE,EAAE;IACtD,IAAI,aAAa,GAAG,IAAI;SACnB,WAAW,EAAE;QACd,kEAAkE;SACjE,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;IAEjC,IAAI,WAAW,EAAE,CAAC;QACd,oCAAoC;QACpC,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAY,EAAE,EAAE;IACzC,MAAM,aAAa,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACzC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC7B,qCAAqC;QACrC,sDAAsD;QACtD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,aAAa,CAAC;AACzB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,IAAY,EAAE,EAAE;IACjD,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,wFAAwF;IACxF,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IAED,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;AACnC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,IAAY,EAAE,EAAE,CAC9D,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AAEhD,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAe,EAAY,EAAE;IACzD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAa,EAAE,CAAC;IAE5B,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAErC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;YAC5C,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,KAAK,CAAC;YAErC,MAAM,aAAa,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAE3C,IAAI,YAAY,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC;gBAC7C,MAAM,eAAe,GAAG,aAAa;qBAChC,KAAK,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC;qBAC7B,IAAI,CAAC,GAAG,CAAC,CAAC;gBACf,OAAO,eAAe,KAAK,IAAI,CAAC;YACpC,CAAC;YAED,OAAO,KAAK,CAAC;QACjB,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;YACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IAED,OAAO,MAAM,CAAC;AAClB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE,CACvD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,CAAC"}
|