MCPcopy Index your code
hub / github.com/knockout/knockout

github.com/knockout/knockout @v3.5.3 sqlite

repository ↗ · DeepWiki ↗ · release v3.5.3 ↗
401 symbols 907 edges 130 files 0 documented · 0% 2 cross-repo links
README

Knockout

Knockout is a JavaScript MVVM (a modern variant of MVC) library that makes it easier to create rich, desktop-like user interfaces with JavaScript and HTML. It uses observers to make your UI automatically stay in sync with an underlying data model, along with a powerful and extensible set of declarative bindings to enable productive development.

Getting started

Join the chat at https://gitter.im/knockout/knockout

Totally new to Knockout? The most fun place to start is the online interactive tutorials.

For more details, see

Downloading Knockout

You can download released versions of Knockout from the project's website.

For Node.js developers, Knockout is also available from npm - just run npm install knockout.

Building Knockout from sources

If you prefer to build the library yourself:

  1. Clone the repo from GitHub

sh git clone https://github.com/knockout/knockout.git cd knockout

  1. Acquire build dependencies.

Make sure you have Node.js and Java installed on your workstation. These are only needed to build Knockout from sources. Knockout itself has no dependency on Node.js or Java once it is built (it works with any server technology or none). Now run:

sh npm install

  1. Run the build tool

sh npm run grunt

Now you'll find the built files in build/output/.

To run a single task, use --

sh npm run grunt -- build:debug

Running the tests

npm test              # All tests (Node.js + headless Chrome)
npm run test:node     # Node.js non-DOM specs only
npm run test:browser  # Headless Chrome specs only
npm run grunt         # Build and test against production output

For interactive debugging, open spec/runner.html in your browser.

License

MIT license - https://www.opensource.org/licenses/mit-license.php

Extension points exported contracts — how you extend this code

BindingHandlers (Interface)
(no doc)
spec/types/module/test-module.ts
ObservableArrayFunctions (Interface)
(no doc)
spec/types/module/test-module.ts
ExtendersOptions (Interface)
(no doc)
spec/types/module/test-module.ts
SubscribableFunctions (Interface)
(no doc)
spec/types/module/test-module.ts
TemplateOptions (Interface)
(no doc)
spec/types/module/test-module.ts

Core symbols most depended-on inside this repo

expect
called by 3207
spec/lib/jasmine-1.2.0/jasmine.js
observable
called by 236
src/subscribables/observable.js
beforeEach
called by 53
spec/lib/jasmine-1.2.0/jasmine.js
callback
called by 28
spec/domNodeDisposalBehaviors.js
runs
called by 27
spec/lib/jasmine-1.2.0/jasmine.js
onEvent
called by 18
src/binding/defaultBindings/textInput.js
testConfigObject
called by 18
spec/components/defaultLoaderBehaviors.js
callback
called by 17
spec/defaultBindings/foreachBehaviors.js

Shape

Function 292
Class 54
Method 41
Interface 14

Languages

TypeScript100%

Modules by API surface

spec/types/module/test-module.ts76 symbols
spec/types/global/test-global.ts67 symbols
spec/lib/jasmine-1.2.0/jasmine.js18 symbols
src/binding/bindingAttributeSyntax.js15 symbols
src/templating/templating.js12 symbols
src/components/defaultLoader.js9 symbols
spec/types/global/_references.d.ts9 symbols
spec/templatingBehaviors.js8 symbols
spec/components/componentBindingBehaviors.js8 symbols
src/utils.js7 symbols
src/binding/defaultBindings/textInput.js7 symbols
spec/components/defaultLoaderBehaviors.js7 symbols

Used by 2 indexed graphs manifest dependencies, hub-wide

Dependencies from manifests, versioned

closure-compiler0.2.1 · 1×
grunt1.6.1 · 1×
grunt-cli1.5.0 · 1×
puppeteer24.3.1 · 1×
typescript5.7.3 · 1×

For agents

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

⬇ download graph artifact