@enonic-types/lib-common 0.1.0

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.
Files changed (3) hide show
  1. package/README.md +73 -0
  2. package/common.d.ts +24 -0
  3. package/package.json +36 -0
package/README.md ADDED
@@ -0,0 +1,73 @@
1
+ # Enonic XP lib-common TS types
2
+
3
+ > TypeScript definitions for `lib-common` library of Enonic XP
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ npm i --save-dev @enonic/lib-common
9
+ ```
10
+
11
+ ## Use
12
+
13
+ Add the corresponding types to your `tsconfig.json` file that is used for application's server-side TypeScript code.
14
+
15
+ `tsconfig.json`
16
+ ```json
17
+ {
18
+ "compilerOptions": {
19
+ "types": [
20
+ "@enonic-types/lib-common"
21
+ ]
22
+ }
23
+ }
24
+ ```
25
+
26
+ ### Require and custom imports
27
+
28
+ To make `require` work out of box, you must install and add the `@enonic-types/global` types. Aside from providing definitions for XP global objects, e.g. `log`, `app`, `__`, etc, requiring library by the default path will return typed object.
29
+
30
+ `tsconfig.json`
31
+ ```diff
32
+ {
33
+ "compilerOptions": {
34
+ "types": [
35
+ + "@enonic-types/global"
36
+ "@enonic-types/lib-common"
37
+ ]
38
+ }
39
+ }
40
+ ```
41
+
42
+ `example.ts`
43
+ ```ts
44
+ const {sanitize} = require('/lib/xp/common');
45
+ ```
46
+
47
+ More detailed explanation on how it works and how to type custom import function can be found [here](https://github.com/enonic/xp/tree/master/modules/lib/typescript/README.md).
48
+
49
+ ### ES6-style import
50
+
51
+ If you are planning to use `import` in your code and transpile it with the default `tsc` TypeScript compiler, you'll need to add proper types mapping to your configuration.
52
+
53
+ `tsconfig.json`
54
+ ```diff
55
+ {
56
+ "compilerOptions": {
57
+ "types": [
58
+ "@enonic-types/lib-common"
59
+ ]
60
+ + "baseUrl": "./",
61
+ + "paths": {
62
+ + "/lib/xp/common": ["node_modules/@enonic-types/lib-common"],
63
+ + }
64
+ }
65
+ }
66
+ ```
67
+
68
+ `example.ts`
69
+ ```ts
70
+ import {sanitize} from '/lib/xp/common';
71
+ ```
72
+
73
+ Setting `baseUrl` and `paths` will allow the `tsc` to keep the valid paths in the resulting JavaScript files.
package/common.d.ts ADDED
@@ -0,0 +1,24 @@
1
+ declare global {
2
+ interface XpLibraries {
3
+ '/lib/xp/common': typeof import('./common');
4
+ }
5
+ }
6
+ /**
7
+ * Transform a text string so that it can be safely used in cases where the range of accepted characters is restricted.
8
+ *
9
+ * Some usage examples are: as an XP content or node name, as a principal name, in a URL or in a filesystem path.
10
+ *
11
+ * The following changes will be applied to the input text:
12
+ * - convert characters to lowercase (according to the rules of the default locale)
13
+ * - replace punctuation symbols and blank spaces with the hyphen character ('-')
14
+ * - remove some unsafe and invisible Unicode characters
15
+ * - strip duplicated hyphen characters
16
+ * - remove diacritic characters
17
+ * - map letters to the English alphabet (ASCII encoding)
18
+ *
19
+ * @example-ref examples/common/sanitize.js
20
+ *
21
+ * @param {string} text Text string to sanitize.
22
+ * @returns {string} Sanitized text.
23
+ */
24
+ export declare function sanitize(text: string): string;
package/package.json ADDED
@@ -0,0 +1,36 @@
1
+ {
2
+ "name": "@enonic-types/lib-common",
3
+ "version": "0.1.0",
4
+ "description": "Type definitions for lib-common.",
5
+ "types": "common.d.ts",
6
+ "files": [
7
+ "common.d.ts"
8
+ ],
9
+ "scripts": {
10
+ "pre": "npm run --prefix ../ pre",
11
+ "packlist": "npx npm-packlist"
12
+ },
13
+ "repository": {
14
+ "type": "git",
15
+ "url": "git+https://github.com/enonic/xp.git#master"
16
+ },
17
+ "keywords": [
18
+ "enonic",
19
+ "enonic-xp",
20
+ "lib-common",
21
+ "common",
22
+ "types",
23
+ "typescript"
24
+ ],
25
+ "contributors": [
26
+ "Mikita Taukachou <edloidas@gmail.com> (https://edloidas.github.io/)"
27
+ ],
28
+ "license": "Apache-2.0",
29
+ "bugs": {
30
+ "url": "https://github.com/enonic/xp/issues"
31
+ },
32
+ "homepage": "https://github.com/enonic/xp/tree/master#readme",
33
+ "publishConfig": {
34
+ "access": "public"
35
+ }
36
+ }