@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.
- package/README.md +73 -0
- package/common.d.ts +24 -0
- 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
|
+
}
|