// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

// https://w3c.github.io/ServiceWorker/#cache-interface

[
    SecureContext,
    Exposed=(Window,Worker)
] interface Cache {
    [CallWith=ScriptState, RaisesException] Promise<any> match(RequestInfo request, optional CacheQueryOptions options);
    [CallWith=ScriptState, RaisesException] Promise<sequence<Response>> matchAll(optional RequestInfo request, optional CacheQueryOptions options);
    [CallWith=ScriptState, RaisesException] Promise<void> add(RequestInfo request);
    [CallWith=ScriptState, RaisesException] Promise<void> addAll(sequence<RequestInfo> requests);
    [CallWith=ScriptState, RaisesException] Promise<void> put(RequestInfo request, Response response);
    [CallWith=ScriptState, ImplementedAs=Delete, RaisesException] Promise<boolean> delete(RequestInfo request, optional CacheQueryOptions options);
    [CallWith=ScriptState, RaisesException] Promise<sequence<Request>> keys(optional RequestInfo request, optional CacheQueryOptions options);
};
