MCPcopy Index your code
hub / github.com/MikaAK/angular-safeguard

github.com/MikaAK/angular-safeguard @v2.1.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.1.0 ↗ · + Follow
919 symbols 2,621 edges 48 files 0 documented · 0%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

angular-safeguard

Build Status

Code Climate

Note: This library was renamed from angular2-locker to angular-safeguard

Wrapper around sessionStorage, localStorage and cookies for angular. If both are unavailable will use an in memory storage.

Expiry is also implemented for all drivers not just cookies

Breaking Changes in 2.0:

With 2.0 this library supports AoT. As a result there was two options, one to create a storage type for each different storage, and two to change set/get and other methods to explicitly use a driver. The latter means we can still provide in-memory fallback without the hassle of you writing conditions everywhere. All methods on locker now have an extra param for storage type such as get(DRIVERS.SESSION, 'key')

Getting Started

$ npm i --save angular-safeguard
import {NgModule} from '@angular/core'
import {LockerModule, Locker, DRIVERS} from 'angular-safeguard'

@Component({
  selector: 'app',
  template: `...`
})
class App {
  constructor(locker: Locker) {
    locker.set(DRIVERS.SESSION, 'something', value)
  }
}

@NgModule({
  imports: [LockerModule],
  declarations: [App],
  bootstrap: [App]
})
class AppModule {
  constructor(private locker: Locker) {}
}

With Custom Config

import {LockerModule, LockerConfig, DRIVERS} from 'angular-safeguard'

// to set a single driver
const lockerConfig = {
  driverNamespace: 'nameSpace',
  driverFallback: DRIVERS.MEMORY,
  namespaceSeperator: '-'
}

// to set fallback drivers in order of preference, pass in an Array of Driver
const lockerConfig = {
  driverNamespace: 'nameSpace',
  driverFallback: [DRIVERS.LOCAL, DRIVERS.SESSION, DRIVERS.COOKIE],
  namespaceSeperator: '-'
}

@NgModule({
  imports: [LockerModule.withConfig(lockerConfig)]
  ...
})
class SomeModule {

}

Methods

get

locker.get(DRIVERS.SESSION, 'myKey')

set

locker.set(DRIVERS.SESSION, 'myKey', 'value')
locker.set(DRIVERS.SESSION, 'myKey', {object: 'value'})

const expiry = new Date()

expiry.setHours(expiry.getHours() + 1)

locker.set(DRIVERS.SESSION, 'myKey', 'value', {expiry}) // will work with every driver type

// You can also use set to pass options for cookies like maxAge and such

key

locker.set(DRIVERS.COOKIES, 'key', 'value')

locker.key(DRIVERS.COOKIES, 0) // 'key'

has

locker.has(DRIVERS.LOCAL, 'key')

setNamespace

locker.setNamespace('myName')
locker.setNamespace() // Resets to lockerConfig default

setSeparator

locker.setSeparator('myName')
locker.setSeparator() // Resets to lockerConfig default

remove

locker.remove(DRIVERS.SESSION, 'key')

clear

locker.clear(DRIVERS.SESSION)

Static Methods

DRIVERS

These are the types of drivers available. If you try to set it to a (single) driver that is unsupported it will fallback to the memory driver. To set fallback drivers, pass in an Array of drivers in the order or preference:

Again, if every driver in Array is unsupported, it will fall back to memory driver.

Types are available from import {DRIVERS} from 'angular-safeguard'

  • DRIVERS.SESSION - Session Cache
  • DRIVERS.LOCAL - Local Storage
  • DRIVERS.MEMORY - Memory Storage
  • DRIVERS.COOKIE - Cookies

FAQ

Why is my data getting set to {data: myDataHere} instead of just myDataHere?: angular-safeguard provides expiry on more than just cookies, to do this it's necessary to create a bit of a more complex object so we can store expiry and more

Extension points exported contracts — how you extend this code

ICustomStorage (Interface)
(no doc) [4 implementers]
src/metadata.ts
IStorage (Interface)
(no doc) [2 implementers]
src/metadata.ts
IStorageSetConfig (Interface)
(no doc)
src/metadata.ts
IWebStorage (Interface)
(no doc)
src/metadata.ts
ILockerConfig (Interface)
(no doc)
src/metadata.ts

Core symbols most depended-on inside this repo

e
called by 279
docs/js/libs/deep-iterator.js
hasOwnProperty
called by 170
src/metadata.ts
get
called by 94
src/Locker.ts
n
called by 84
docs/js/libs/deep-iterator.js
o
called by 56
docs/js/libs/deep-iterator.js
set
called by 55
src/Locker.ts
t
called by 38
docs/js/libs/prism.js
remove
called by 33
src/Locker.ts

Shape

Function 839
Method 56
Class 16
Interface 7
Enum 1

Languages

TypeScript100%

Modules by API surface

docs/js/libs/d3.v3.min.js383 symbols
docs/js/libs/vis.min.js232 symbols
docs/js/libs/es6-shim.min.js61 symbols
docs/js/libs/zepto.min.js42 symbols
docs/js/libs/deep-iterator.js27 symbols
src/Locker.ts17 symbols
src/metadata.ts14 symbols
src/helpers.ts11 symbols
src/MemoryStorage.ts10 symbols
src/Driver.ts10 symbols
docs/js/search/search.js10 symbols
docs/js/libs/svg-pan-zoom.min.js10 symbols

For agents

$ claude mcp add angular-safeguard \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact