Skip to content

Commit 4dc0a83

Browse files
committed
chore(typescript): utils/serialize-cookie
1 parent d976b53 commit 4dc0a83

File tree

6 files changed

+42
-6
lines changed

6 files changed

+42
-6
lines changed

packages/ember-cookies/src/services/cookies.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { get } from '@ember/object';
33
import { assert } from '@ember/debug';
44
import { getOwner } from '@ember/application';
55
import Service from '@ember/service';
6-
import { serializeCookie } from '../utils/serialize-cookie';
6+
import { serializeCookie } from '../utils/serialize-cookie.ts';
77
const { keys } = Object;
88
const DEFAULTS = { raw: false };
99
const MAX_COOKIE_BYTE_LENGTH = 4096;

packages/ember-cookies/src/test-support/clear-all-cookies.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { assert } from '@ember/debug';
22
import { isEmpty } from '@ember/utils';
3-
import { serializeCookie } from '../utils/serialize-cookie';
3+
import { serializeCookie } from '../utils/serialize-cookie.ts';
44

55
export default function clearAllCookies(options = {}) {
66
assert('Cookies cannot be set to be HTTP-only from a browser!', !options.httpOnly);

packages/ember-cookies/src/utils/serialize-cookie.js renamed to packages/ember-cookies/src/utils/serialize-cookie.ts

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,23 @@
11
import { typeOf, isEmpty } from '@ember/utils';
22

3-
export const serializeCookie = (name, value, options = {}) => {
3+
interface Options {
4+
maxAge?: number | string;
5+
domain?: string;
6+
expires?: Date;
7+
secure?: boolean;
8+
httpOnly?: boolean;
9+
path?: string;
10+
sameSite?: string;
11+
partitioned?: boolean;
12+
}
13+
14+
export const serializeCookie = (name: string, value: string, options: Options = {}) => {
415
let cookie = `${name}=${value}`;
516

617
if (!isEmpty(options.domain)) {
718
cookie = `${cookie}; domain=${options.domain}`;
819
}
9-
if (typeOf(options.expires) === 'date') {
20+
if (options.expires && typeOf(options.expires) === 'date') {
1021
cookie = `${cookie}; expires=${options.expires.toUTCString()}`;
1122
}
1223
if (!isEmpty(options.maxAge)) {
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import '@types/ember__utils';

packages/test-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,4 @@
8989
"ember": {
9090
"edition": "octane"
9191
}
92-
}
92+
}

pnpm-lock.yaml

Lines changed: 25 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)