generate-ical 1.0.3 → 1.0.5

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 CHANGED
@@ -1,7 +1,43 @@
1
1
  # generate-ical
2
2
 
3
- This is a typed utility to generate Ical files.
3
+ This is a lightweight and typed utility to generate iCal files. With minimal dependencies and minimal code and complexity, this can be used almost everywhere.
4
+
5
+ It doesn't depend on the implementation, e.g Express, Koa, file system, etc. This will just generate the file content as a string for you to do whatever you want with.
4
6
 
5
7
  ## Install
6
8
 
7
9
  `npm install generate-ical`
10
+
11
+ ## Usage
12
+
13
+ ```typescript
14
+ const fileContent = generateIcal({
15
+ title: "My First Event",
16
+ description: {
17
+ plain: "My event description",
18
+ html: "<p>My event description <b>formatted with HTML</b></p>",
19
+ },
20
+ isAllDay: false,
21
+ startDate: new Date("2023-01-01T18:00:00.000Z"),
22
+ endDate: new Date("2023-01-01T22:00:00.000Z"),
23
+ location: { title: "My place" },
24
+ url: "https://optional-video-call.com",
25
+ organizer: { name: "Lukas Wiklund" },
26
+ })
27
+ ```
28
+
29
+ ## Examples
30
+
31
+ ### File System
32
+
33
+ ```typescript
34
+ fs.writeFileSync("./Event.ics", fileContent)
35
+ ```
36
+
37
+ ### Koa
38
+
39
+ ```typescript
40
+ context.response.set("Content-Type", "text/calendar")
41
+ context.response.set("Content-Disposition", `attachment; filename="Event.ics"`)
42
+ context.body = fileContent
43
+ ```
package/dist/index.js CHANGED
@@ -11,6 +11,10 @@ function generateIcal(data) {
11
11
  function addRow(row) {
12
12
  result += `${row}\r\n`;
13
13
  }
14
+ addRow("BEGIN:VCALENDAR");
15
+ addRow("VERSION:2.0");
16
+ addRow("PRODID://Hadermite//ical-generator//EN");
17
+ addRow("CALSCALE:GREGORIAN");
14
18
  addRow("BEGIN:VEVENT");
15
19
  addRow(`UID:${id}`);
16
20
  addRow(`SEQUENCE:0`);
@@ -60,6 +64,8 @@ function generateIcal(data) {
60
64
  if (data.url !== undefined) {
61
65
  addRow(`URL;VALUE=URI:${escape(data.url)}`);
62
66
  }
67
+ addRow("END:VEVENT");
68
+ addRow("END:VCALENDAR");
63
69
  return result;
64
70
  }
65
71
  exports.default = generateIcal;
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA8B;AAuB9B,SAAwB,YAAY,CAAC,IAAW;IAC/C,MAAM,EAAE,GAAG,IAAA,qBAAI,GAAE,CAAA;IACjB,IAAI,MAAM,GAAG,EAAE,CAAA;IAEf,SAAS,MAAM,CAAC,GAAW;QAC1B,MAAM,IAAI,GAAG,GAAG,MAAM,CAAA;IACvB,CAAC;IAED,MAAM,CAAC,iBAAiB,CAAC,CAAA;IACzB,MAAM,CAAC,aAAa,CAAC,CAAA;IACrB,MAAM,CAAC,wCAAwC,CAAC,CAAA;IAChD,MAAM,CAAC,oBAAoB,CAAC,CAAA;IAC5B,MAAM,CAAC,cAAc,CAAC,CAAA;IACtB,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAA;IACnB,MAAM,CAAC,YAAY,CAAC,CAAA;IACpB,MAAM,CAAC,WAAW,cAAc,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC,CAAA;IAC/C,MAAM,CAAC,WAAW,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IAEvC,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,EAAE;QACnC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,WAAW,CAAA;QACxC,MAAM,CAAC,eAAe,KAAK,EAAE,CAAC,CAAA;QAE9B,IAAI,IAAI,KAAK,SAAS,EAAE;YACvB,MAAM,CAAC,gCAAgC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;SACtD;KACD;IAED,IAAI,IAAI,CAAC,QAAQ,EAAE;QAClB,MAAM,CAAC,sBAAsB,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QAC1D,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;YAC/B,MAAM,CAAC,oBAAoB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;SACtD;KACD;SAAM;QACN,MAAM,CAAC,WAAW,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAA;QACnD,MAAM,CAAC,SAAS,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;KAC/C;IAED,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE;QAChC,MAAM,CAAC,YAAY,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QACjD,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE;YACxC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAA;SACrC;QAED,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,SAAS,EAAE;YACpC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAA;YACtC,MAAM,CAAC,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAA;SACjE;KACD;IAED,IAAI,IAAI,CAAC,SAAS,KAAK,SAAS,EAAE;QACjC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAA;QACtD,IAAI,MAAM,GAAG,gBAAgB,cAAc,CAAC,IAAI,CAAC,EAAE,CAAA;QACnD,IAAI,MAAM,KAAK,SAAS,EAAE;YACzB,MAAM,IAAI,oBAAoB,cAAc,CAAC,MAAM,CAAC,GAAG,CAAA;SACvD;QACD,IAAI,KAAK,KAAK,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE;YAChD,MAAM,IAAI,UAAU,MAAM,CAAC,KAAK,CAAC,EAAE,CAAA;SACnC;QACD,IAAI,KAAK,KAAK,SAAS,EAAE;YACxB,MAAM,IAAI,WAAW,MAAM,CAAC,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,KAAK,CAAC,EAAE,CAAA;SAC9C;QACD,MAAM,CAAC,MAAM,CAAC,CAAA;KACd;IAED,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,EAAE;QAC3B,MAAM,CAAC,iBAAiB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;KAC3C;IAED,MAAM,CAAC,YAAY,CAAC,CAAA;IACpB,MAAM,CAAC,eAAe,CAAC,CAAA;IAEvB,OAAO,MAAM,CAAA;AACd,CAAC;AAxED,+BAwEC;AAED,SAAgB,MAAM,CAAC,MAAc;IACpC,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;AAC1F,CAAC;AAFD,wBAEC;AAED,SAAgB,cAAc,CAAC,MAAc;IAC5C,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC,IAAI,GAAG,KAAK,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAA;AAC3F,CAAC;AAFD,wCAEC;AAED,SAAS,UAAU,CAAC,IAAU;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,EAAE,CAAA;IAC7C,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,GAAG,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1D,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACnD,OAAO,GAAG,IAAI,GAAG,KAAK,GAAG,GAAG,EAAE,CAAA;AAC/B,CAAC;AAED,SAAS,cAAc,CAAC,IAAU;IACjC,MAAM,KAAK,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACtD,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IAC1D,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,CAAA;AAC3D,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "generate-ical",
3
- "version": "1.0.3",
3
+ "version": "1.0.5",
4
4
  "author": {
5
5
  "name": "Lukas Wiklund",
6
6
  "email": "lukas@wiklund.se",
@@ -16,7 +16,8 @@
16
16
  "main": "./dist/index.js",
17
17
  "scripts": {
18
18
  "build": "tsc",
19
- "format": "prettier --write ."
19
+ "format": "prettier --write .",
20
+ "deploy": "npm run format && npm run build && npm publish"
20
21
  },
21
22
  "dependencies": {
22
23
  "uuid-random": "^1.3.2"